|
|
|
|
@ -970,7 +970,6 @@ void CQnetGateway::ProcessSlowData(unsigned char *data, const unsigned short sid
|
|
|
|
|
|
|
|
|
|
void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt)
|
|
|
|
|
{
|
|
|
|
|
static unsigned char hold[6];
|
|
|
|
|
int i;
|
|
|
|
|
for (i=0; i<3; i++) {
|
|
|
|
|
if (Rptr.mod[i].defined && (toRptr[i].streamid == dsvt.streamid))
|
|
|
|
|
@ -984,10 +983,10 @@ void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt)
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const char c[3] = {
|
|
|
|
|
static_cast<char>(char(dsvt.vasd.text[0]) ^ '\160'),
|
|
|
|
|
static_cast<char>(char(dsvt.vasd.text[1]) ^ '\117'),
|
|
|
|
|
static_cast<char>(char(dsvt.vasd.text[2]) ^ '\223')
|
|
|
|
|
const unsigned char c[3] = {
|
|
|
|
|
static_cast<unsigned char>(dsvt.vasd.text[0] ^ 0x70u),
|
|
|
|
|
static_cast<unsigned char>(dsvt.vasd.text[1] ^ 0x4fu),
|
|
|
|
|
static_cast<unsigned char>(dsvt.vasd.text[2] ^ 0x93u)
|
|
|
|
|
}; // unscramble
|
|
|
|
|
|
|
|
|
|
if (sd.first) {
|
|
|
|
|
@ -1001,11 +1000,9 @@ void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt)
|
|
|
|
|
switch (sd.type) {
|
|
|
|
|
case 0x30U: // GPS data
|
|
|
|
|
if (sd.size + sd.ig < 255) {
|
|
|
|
|
memset(hold, 0, 6);
|
|
|
|
|
memcpy(hold, c, 3);
|
|
|
|
|
memcpy(sd.gps+sd.ig, c+1, size);
|
|
|
|
|
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);
|
|
|
|
|
sd.ig = sd.size = 0;
|
|
|
|
|
} else {
|
|
|
|
|
@ -1055,8 +1052,6 @@ void CQnetGateway::ProcessIncomingSD(const SDSVT &dsvt)
|
|
|
|
|
return;
|
|
|
|
|
switch (sd.type) {
|
|
|
|
|
case 0x30U: // GPS
|
|
|
|
|
memcpy(hold+3, c, 3);
|
|
|
|
|
printf("hold=%02x%02x%02x%02x%02x%02x\n", hold[0], hold[1], hold[2], hold[3], hold[4], hold[5]);
|
|
|
|
|
memcpy(sd.gps+sd.ig, c, sd.size);
|
|
|
|
|
if (c[0]=='\r' || c[1]=='\r' || c[2]=='\r') {
|
|
|
|
|
if (c[0]=='\r')
|
|
|
|
|
|