Code:
int main(void)
{
/*******program to register a device using serial port RS-232 in a local system******************/
////////////////////declaring variables///////////////////
unsigned char buff[100]={0};
unsigned char command1[100]="Registration";
unsigned char command2[100]="Close";
unsigned char a[8]={0};
unsigned char m[100]={0};
unsigned char string[32]={0};
unsigned int i,im,j;
//int id;
////////////////////declaring variables complete///////////////////
ReadSN(a);//read device serial no.
DelayMs(200);
ScrCls();
printf("Open Port....");
DelayMs(2000);
ScrCls();
///////////////////////////Opening of port/////////////////////////////
if(PortOpen(0,"9600,8,n,1")!=0) //0=com1,baudrate, 8 data bits,no parity ,1 stop bit.
{
printf("Port Open Fail..");
DelayMs(2000);
return(0);
}
printf("Port Open succes..");
DelayMs(2000);
///////////////////////////Opening of port/////////////////////////////
if(PortSends(0,"New Device Registration",23)!=0) ///////send device id start
{
printf("Send Fail..");
DelayMs(1000);
return(0);
}
printf("Port Send success..");
DelayMs(1000);
////////////////////////Receive data as Registation ////////////////////////////
while(1)
{
ScrCls();
if(PortRecvs(0,buff,12,10000)<0)
{
ScrCls();
printf("Receive Fail..");
DelayMs(1000);
//return(0);
}
ScrCls();
printf("Receive Data:\n%s\n",buff);
DelayMs(1000);
////////////////////////Receive data as Registation completed ////////////////////////////
im=0;
i=0;
while(im<12) ///////loop for checking Registration command
{
m[im]=buff[i];
i++;
im++;
}
im=0;
j=0;
while(m[im]==command1[im])
{
im++;
j++;
} ///////loop for completed
printf(" j = %d ",j);
DelayMs(1000);
if(j==100)
{
int length = sizeof(a);
if(PortSends(0,a,length)!=0) ///////send device id start
{
printf("Send Fail..");
DelayMs(1000);
return(0);
}
printf("Port Send success.."); ///////send device id complete
//DelayMs(1000);
ScrCls();
printf("Waiting for dat receive..");
memset(buff,0,sizeof(buff));
ScrCls();
if(PortRecvs(0,buff,12,10000)<0) /////Receive Registration id starts
{
ScrCls();
printf("Receive Fail..");
DelayMs(1000);
//return(0);
}
ScrCls();
printf("Receive Registration id:\n%s\n",buff); /////Receive Registration id ends
DelayMs(1000);
id=open("Registration",O_CREATE); ///////Store Registration Id in "Registration"File starts
write(id,buff,sizeof(buff));
if(id>=0)
{
printf("Id Success");
}
else
{
printf("Id Failure");
}
DelayMs(2000);
close(id); ////Store Registration Id in "Registration"File ends
ScrCls();
if(PortSends(0,"Registration Completed",22)!=0) ///////send device id start
{
printf("Send Fail..");
DelayMs(1000);
return(0);
}
printf("Port Send success..");
DelayMs(1000);
}
ScrCls(); //////////////////Receive close command
if(PortRecvs(0,buff,12,10000)<0)
{
ScrCls();
printf("Receive Fail..");
DelayMs(1000);
}
printf("Receive Data:\n%s\n",buff);
DelayMs(1000);
j=0;
im=0;
i=0;
while(im<5) ///////loop for checking Close command
{
m[im]=buff[i];
i++;
im++;
}
im=0;
j=0;
while(m[im]==command2[im])
{
im++;
j++;
} ///////loop for completed
ScrCls();
printf(" j = %d \n",j);
DelayMs(1000);
if(j==6)
{
break;
}
}
PortClose(0);
ScrCls();
printf("Registration Completed");
DelayMs(1000);
while(1);
return(0);
}OTE][/QUOTE]