Code:
while(1){
logfile = fopen(filename, "a+");
gpslogfile = fopen(filename2, "a+");
if ((rs232res=read(rs232fd,rs232buf,MAXBUFLEN)) != -1)
{
rs232buf[rs232res]='\0';
fprintf(gpslogfile, "%s\n", rs232buf);
strncpy(temp, rs232buf, 6);
temp[6] = '\0';
if(strcmp(temp, "$GPRMC") == 0)
{
strtok(rs232buf, ",");
xtime = strtok(NULL, ",");
strtok(NULL, ",");
xlat = strtok(NULL, ",");
xns = strtok(NULL, ",");
xlong = strtok(NULL, ",");
xew = strtok(NULL, ",");
fprintf(logfile, "--> %s - %s%s, %s%s\n", xtime, xlat, xns, xlong, xew);
printf("--> %s - %s%s, %s%s\n", xtime, xlat, xns, xlong, xew);
strncpy(lastxtime, xtime, 10);
lastxtime[10] = '\0';
}
rs232buf[0] = '\0';
}
/* PACKET CREATED BY THE CLIENT AND BROADCASTED */
sprintf(buf, "ID %d - time %s", msgID, lastxtime);
// usleep(100000);
time++;
if (time >= WAITTIME)
{
sendto(sockfdTX, buf, strlen(buf)*sizeof(char), 0, (struct sockaddr *)&their_addr, sizeof their_addr);
fprintf(logfile, "TX: ID %d - time %s - dest %s\n", msgID, lastxtime, inet_ntoa(their_addr.sin_addr));
printf("TX: ID %d - time %s - dest %s\n", msgID, lastxtime, inet_ntoa(their_addr.sin_addr));
msgID++;
time = 0;
}
fclose(logfile);
fclose(gpslogfile);
}