From 219967f800012d5414b37aa887acff044441148c Mon Sep 17 00:00:00 2001 From: Tom Early Date: Mon, 30 Mar 2020 15:13:04 -0700 Subject: [PATCH] again another try --- QnetGateway.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/QnetGateway.cpp b/QnetGateway.cpp index b0bc331..d1d0ec9 100644 --- a/QnetGateway.cpp +++ b/QnetGateway.cpp @@ -640,17 +640,17 @@ void CQnetGateway::ProcessG2Msg(const unsigned char *data, const int mod) static unsigned int part[3] = { 0 }; static char txt[3][21]; if ((data[0] != 0x55u) || (data[1] != 0x2du) || (data[2] != 0x16u)) { - unsigned int c[3]; - c[0] = data[0] ^ 0x70u; - c[1] = data[1] ^ 0x4fu; - c[2] = data[2] ^ 0x93u; // unscramble - printf("c=0x%02x 0x%02x 0x%02x\n", c[0], c[1], c[2]); + const unsigned int c[3] = { + data[0] ^ 0x70u, + data[1] ^ 0x4fu, + data[2] ^ 0x93u + }; // unscramble if (part[mod]) { // we are in a message if (part[mod] % 2) { // true when part[mod] = 1, 3, 5 or 7 // this is the second part of the 2-frame pair memcpy(txt[mod]+(5u*(part[mod]/2u)+2u), c, 3); // offset is 2, 7, 12 or 17 - printf("part[%d]=%u Msg='%s'\n", mod, part[mod], txt[mod]); + printf("c=0x%02x 0x%02x 0x%02x part[%d]=%u Msg='%s'\n", c[0], c[1], c[2], mod, part[mod], txt[mod]); if (++part[mod] > 7) { // we've got everything! part[mod] = 0; // now we can start over @@ -658,7 +658,7 @@ void CQnetGateway::ProcessG2Msg(const unsigned char *data, const int mod) } else { // we'll get here when part[mod] = 2, 4 or 6 unsigned int sequence = part[mod]++ / 2; // this is the sequency we are expecting, 1, 2 or 3 if ((sequence | 0x40u) == c[0]) { - printf("part[%d]=%u Msg='%s'\n", mod, part[mod]-1u, txt[mod]); + printf("c=0x%02x 0x%02x 0x%02x part[%d]=%u Msg='%s'\n", c[0], c[1], c[2], mod, part[mod]-1u, txt[mod]); memcpy(txt[mod]+(5u*sequence), c+1, 2); // got it! get the copy the two chars } else { part[mod] = 0; // unexpected @@ -666,9 +666,9 @@ void CQnetGateway::ProcessG2Msg(const unsigned char *data, const int mod) } } else if (0x40u == c[0]) { // start of new message + memset(txt[mod], 0, 21); memcpy(txt[mod], c+1, 2); - memset(txt[mod]+2, 0, 19); - printf("part[%d]=%u Msg='%s'\n", mod, part[mod], txt[mod]); + printf("c=0x%02x 0x%02x 0x%02x part[%d]=%u Msg='%s'\n", c[0], c[1], c[2], mod, part[mod], txt[mod]); part[mod] = 1; } } else {