From 88867baa656a1a57444e4929fdda2777e245fc26 Mon Sep 17 00:00:00 2001 From: Tom Early Date: Wed, 10 Jun 2020 10:06:21 -0700 Subject: [PATCH] gps sd changes --- QnetGateway.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/QnetGateway.cpp b/QnetGateway.cpp index 7f11585..927102d 100644 --- a/QnetGateway.cpp +++ b/QnetGateway.cpp @@ -1000,12 +1000,12 @@ void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt) if (sd.size + sd.ig < 255) { memcpy(sd.gps+sd.ig, c+1, size); sd.ig += size; + sd.size -= size; if (c[1]=='\r' || c[2]=='\r') { sd.gps[sd.ig + (c[1] == '\r') ? 0 : 1] = '\0'; - printf("GPS String=%s\n", sd.gps); + printf("GPS String='%s'\n", sd.gps); sd.ig = sd.size = 0; - } else - sd.size -= size; + } } else { printf("GPS string is too large at %d bytes\n", sd.ig + sd.size); sd.ig = sd.size = 0; @@ -1050,7 +1050,6 @@ void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt) switch (sd.type) { case 0x30U: // GPS memcpy(sd.gps+sd.ig, c, sd.size); - sd.ig += sd.size; if (c[0]=='\r' || c[1]=='\r' || c[2]=='\r') { if (c[0]=='\r') sd.gps[sd.ig] = '\0'; @@ -1058,8 +1057,10 @@ void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt) sd.gps[sd.ig+1] = '\0'; else sd.gps[sd.ig+2] = '\0'; - printf("GPS string=%s\n", sd.gps); + printf("GPS string='%s'\n", sd.gps); sd.ig = 0; + } else { + sd.ig += sd.size; } break; case 0x40U: // message