2018 revision to classic DataBus AVC code.
Dependencies: LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell
Diff: Ublox6.cpp
- Revision:
- 20:043987d06f8d
- Parent:
- 19:0d1728091519
- Child:
- 23:5e61cf4a8c34
--- a/Ublox6.cpp Sat Dec 15 21:38:11 2018 +0000 +++ b/Ublox6.cpp Sun Dec 16 04:18:42 2018 +0000 @@ -46,7 +46,7 @@ latest = tmp; } -int Ublox6::parse(unsigned char cc) +int Ublox6::parse(int cc) { //unsigned char cc = buf[out++]; //out &= (MAX_LENGTH-1); @@ -61,16 +61,13 @@ checkOk = false; if (cc == SYNC1) { state++; - puts("SYNC1"); } break; case 1: // wait for sync 2 (0x62) if (cc == SYNC2) { state++; - puts("SYNC2"); } else { state = 0; - puts("NO SYNC2"); } break; case 2: // wait for class code @@ -92,9 +89,7 @@ state++; break; case 5: // wait for length uint8_t 2 - length |= (unsigned int) cc << 8; - printf("len=%d\n", length); - ck1 += cc; + length |= (unsigned int) cc << 8; ck1 += cc; ck2 += ck1; idx = 0; state++; @@ -116,9 +111,7 @@ case 8: { // wait for checksum 2 chk2 = cc; checkOk = ck1 == chk1 && ck2 == chk2; - if (!checkOk) { - puts("BAD CHKSUM\n"); - } else { + if (checkOk) { switch (code) { case 0x01: // NAV- switch (id) { @@ -128,14 +121,12 @@ // vAcc = ULONG(24); // mm // hAcc = ULONG(20); // mm _ready |= POSLLH_BIT; - puts("LAT/LON"); break; case DOP_MSG: // NAV-DOP //gDOP = ((float) UINT(4))/100.0; //tDOP = ((float) UINT(8))/100.0; //vDOP = ((float) UINT(10))/100.0; tmp.hdop = ((float) UINT(12))/100.0; - puts("HDOP"); _ready |= DOP_BIT; break; case SOL_MSG: // NAV-SOL @@ -144,7 +135,6 @@ //pAcc = ULONG(24); tmp.svcount = data[47]; _ready |= SOL_BIT; - puts("SVCOUNT"); break; case VELNED_MSG: // NAV-VELNED tmp.speed = ULONG(20)/100.0; @@ -152,14 +142,10 @@ tmp.course = ((float) LONG(24))/100000.0; //cAcc = ((float) LONG(32))/100000.0; _ready |= VELNED_BIT; - puts("SPD/COURSE"); break; default: - printf("OTHER=0x%04x\n", id); break; } - if (_ready) - printf("_ready = 0x%04x 0x%04x\n", _ready, READY_BITS); break; case 0x05: // ACK- switch (id) { @@ -180,15 +166,16 @@ if ((_ready & READY_BITS) == READY_BITS) { latest = tmp; + _ready = 0; + status = 1; + + // clear tmp tmp.lat = 0; tmp.lon = 0; tmp.speed = 0; tmp.course = 0; tmp.hdop = 0; tmp.svcount = 0; - _ready = 0; - status = 1; - _available = true; } return status;