ds gps capture

pull/14/head
Tom Early 6 years ago
parent c7b29c5389
commit 90d52b40ec

@ -999,12 +999,14 @@ void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt)
case 0x30U: // GPS data case 0x30U: // GPS data
if (sd.size + sd.ig < 255) { if (sd.size + sd.ig < 255) {
memcpy(sd.gps+sd.ig, c+1, size); memcpy(sd.gps+sd.ig, c+1, size);
sd.ig += size;
sd.size -= size;
if (c[1]=='\r' || c[2]=='\r') { if (c[1]=='\r' || c[2]=='\r') {
sd.gps[sd.ig + (c[1] == '\r') ? 0 : 1] = '\0'; sd.gps[sd.ig + (c[1] == '\r') ? 0 : 1] = '\0';
printf("GPS[%d] String='%s'\n", i, sd.gps); printf("GPS[%d] String='%s'\n", i, sd.gps);
memset(sd.gps, 0, 256);
sd.ig = sd.size = 0; sd.ig = sd.size = 0;
} else {
sd.ig += size;
sd.size -= size;
} }
} else { } else {
printf("GPS string is too large at %d bytes\n", sd.ig + sd.size); printf("GPS string is too large at %d bytes\n", sd.ig + sd.size);
@ -1058,6 +1060,7 @@ void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt)
else else
sd.gps[sd.ig+2] = '\0'; sd.gps[sd.ig+2] = '\0';
printf("GPS[%d] string='%s'\n", i, sd.gps); printf("GPS[%d] string='%s'\n", i, sd.gps);
memset(sd.gps, 0, 256);
sd.ig = 0; sd.ig = 0;
} else { } else {
sd.ig += sd.size; sd.ig += sd.size;

Loading…
Cancel
Save

Powered by TurnKey Linux.