/** * Verify the checksum for the given data and length. */ uint8_t _gps_verify_checksum(uint8_t* data, uint8_t len) { uint8_t a, b; gps_ubx_checksum(data, len, &a, &b); if( a != *(data + len) || b != *(data + len + 1)) return 0; else return 1; }
u8 gps_bad_checksum(u8* msg, u8 length) { u8 rx_chk_a = msg[length - 2]; u8 rx_chk_b = msg[length - 1]; u16 calc_chk = gps_ubx_checksum(&msg[2], length - 4); u8 calc_chk_a = calc_chk >> 8; u8 calc_chk_b = calc_chk & 0xFF; if(calc_chk_a != rx_chk_a || calc_chk_b != rx_chk_b) return 1; return 0; }