From aa99b21b4037bb33818700fca8babc8fca7b853e Mon Sep 17 00:00:00 2001 From: Tom Early Date: Thu, 28 Jun 2018 21:13:56 -0700 Subject: [PATCH] swapped r1,r2 in dvap and SDSTR --- DVAPDongle.h | 4 ++-- QnetDVAP.cpp | 16 +++++++++------- QnetTypeDefs.h | 4 ++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/DVAPDongle.h b/DVAPDongle.h index b4d0636..78f6fce 100644 --- a/DVAPDongle.h +++ b/DVAPDongle.h @@ -18,7 +18,7 @@ */ #include - + enum REPLY_TYPE { RT_TIMEOUT, RT_ERR, @@ -66,8 +66,8 @@ typedef struct dvp_register_tag { union { struct { unsigned char flag[3]; - unsigned char rpt1[8]; unsigned char rpt2[8]; + unsigned char rpt1[8]; unsigned char urcall[8]; unsigned char mycall[8]; unsigned char sfx[4]; diff --git a/QnetDVAP.cpp b/QnetDVAP.cpp index 540e97a..57c7266 100644 --- a/QnetDVAP.cpp +++ b/QnetDVAP.cpp @@ -402,12 +402,12 @@ static void readFrom20000() } /* check the module and gateway */ - if (net_buf.vpkt.hdr.r2[7] != RPTR_MOD) { + if (net_buf.vpkt.hdr.r1[7] != RPTR_MOD) { FD_CLR(insock, &readfd); break; } - memcpy(net_buf.vpkt.hdr.r1, OWNER, 7); - net_buf.vpkt.hdr.r1[7] = 'G'; + memcpy(net_buf.vpkt.hdr.r2, OWNER, 7); + net_buf.vpkt.hdr.r2[7] = 'G'; if (memcmp(RPTR, OWNER, RPTR_SIZE) != 0) { // restriction mode @@ -447,7 +447,7 @@ static void readFrom20000() net_buf.vpkt.streamid, net_buf.vpkt.hdr.flag[0], net_buf.vpkt.hdr.flag[1], net_buf.vpkt.hdr.flag[2], net_buf.vpkt.hdr.my, net_buf.vpkt.hdr.nm, net_buf.vpkt.hdr.ur, - net_buf.vpkt.hdr.r2, net_buf.vpkt.hdr.r1); + net_buf.vpkt.hdr.r1, net_buf.vpkt.hdr.r2); /* save the streamid that is winning */ streamid = net_buf.vpkt.streamid; @@ -945,7 +945,7 @@ static void ReadDVAPThread() printf("From DVAP: flags=%02x:%02x:%02x, my=%.8s, sfx=%.4s, ur=%.8s, rpt1=%.8s, rpt2=%.8s\n", dr.frame.hdr.flag[0], dr.frame.hdr.flag[1], dr.frame.hdr.flag[2], dr.frame.hdr.mycall, dr.frame.hdr.sfx, dr.frame.hdr.urcall, - dr.frame.hdr.rpt2, dr.frame.hdr.rpt1); + dr.frame.hdr.rpt1, dr.frame.hdr.rpt2); ok = true; @@ -971,12 +971,14 @@ static void ReadDVAPThread() } } - memcpy(&net_buf.vpkt.hdr, dr.frame.hdr.flag, 41); // copy the header + memcpy(&net_buf.vpkt.hdr, dr.frame.hdr.flag, 41); // copy the header, but... + memcpy(net_buf.vpkt.hdr.r1, dr.frame.hdr.rpt1, 8); // swap r1 <--> r2 + memcpy(net_buf.vpkt.hdr.r2, dr.frame.hdr.rpt2, 8); // Internet Labs DVAP Dongle Tech. Ref. V 1.01 has it backwards! /* RPT1 must always be the repeater + module */ memcpy(net_buf.vpkt.hdr.r1, RPTR_and_MOD, 8); /* copy RPT2 */ - memcpy(net_buf.vpkt.hdr.r2, dr.frame.hdr.rpt1, 8); + memcpy(net_buf.vpkt.hdr.r2, dr.frame.hdr.rpt2, 8); /* RPT2 must also be valid */ if ((net_buf.vpkt.hdr.r2[7] == 'A') || diff --git a/QnetTypeDefs.h b/QnetTypeDefs.h index 6ff7668..0e9b392 100644 --- a/QnetTypeDefs.h +++ b/QnetTypeDefs.h @@ -39,8 +39,8 @@ typedef struct dstr_tag { union { struct { unsigned char flag[3]; // 17 - unsigned char r2[8]; // 20 - unsigned char r1[8]; // 28 + unsigned char r1[8]; // 20 + unsigned char r2[8]; // 28 unsigned char ur[8]; // 36 unsigned char my[8]; // 44 unsigned char nm[4]; // 52