Code:
$GPGGA,123519,0.12343,N,0.19607,W,1,08,0.9,545.4,M,46.9,M,,*47"
Code:
void *MTSerialRxThread()
{
unsigned char *resp;
char a='$';// For Comparsion of Last CHAR GPS Data i.e.(New Line)
unsigned char RMsg[74];
unsigned char tmp[6],val[1];
int first =1;
int rc = 0;
int n=0;
tmp[0]='$';
readfd = open("/dev/ttyUSB0", O_RDONLY);
if (readfd == -1)
{
perror("READ: open_port: Unable to open /dev/ttyUSB0- \n");
return 1;
}
else
{ printf("PORT OPENED\n");
fcntl(readfd, F_SETFL, 0);
}
initport(readfd);
cfsetispeed(&options, B9600); /// Set the baud rates
while(a!=sResult)
{
if(read(readfd,sResult,1))
{
val[0]=sResult[n];
if(tmp[0]==val[0]) //For First Char $ ,if not $ read next char till its not equal to $
{
rc=1;
RMsg[rc] = sResult[n];
}
else
{
RMsg[rc] = sResult[n];
rc++;
}
tmp[3]=RMsg[3];
tmp[4]=RMsg[4];
tmp[5]=RMsg[5];
printf("%s",sResult); //STRING IS CORRECT
} //printf("\nTMP VAR:%c %c %c\n ",tmp[3],tmp[4],tmp[5]);
if((tmp[3]=='G')&&(tmp[4]=='G')&&(tmp[5]=='A'))value is correct
{
memset(gpsFrame,0,74);
memcpy(gpsFrame,sResult,flength);flength is 75
printf("\n %s",gpsFrame);//STRING IS NOT CORRECT
}
}
}
Code:
OUTPUT OF gpsFRAME is A,123519,0.12343,N,0.19607,W,1,08,0.9,545.4,M,46.9,M,,*4

