From 171a4a369cbba3e84c742b1b787e69089a271b71 Mon Sep 17 00:00:00 2001 From: Thomas Kolb Date: Sat, 30 Mar 2024 22:07:08 +0100 Subject: [PATCH] rx: fix header checksum verification --- impl/src/layer1/rx.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/impl/src/layer1/rx.c b/impl/src/layer1/rx.c index ac98843..3143697 100644 --- a/impl/src/layer1/rx.c +++ b/impl/src/layer1/rx.c @@ -217,7 +217,8 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t modem_demodulate(rx->hdr_demod, mixed_sample, &sym_demod); float phase_error = modem_get_demodulator_phase_error(rx->hdr_demod); - //DEBUG_LOG("Sym: %d; Phase error: %f\n", sym_demod, phase_error); + DEBUG_LOG("Sym: %d; Phase error: %f %s\n", sym_demod, phase_error, + (fabs(phase_error) > 0.3) ? "!!!" : ""); update_nco_pll(rx->carrier_fine_nco, phase_error, PLL_BW_HEADER); @@ -243,8 +244,10 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t } // CRC check - if(crc_check_key(LIQUID_CRC_8, header, HEADER_SIZE_BYTES-1) != LIQUID_OK) { - DEBUG_LOG("Header CRC check failed!\n"); + if(crc_check_key(LIQUID_CRC_8, header, HEADER_SIZE_BYTES) != LIQUID_OK) { + uint8_t expected_crc = crc_generate_key(LIQUID_CRC_8, header, 4); + DEBUG_LOG("Header CRC check failed! Expected: 0x%02x, received: 0x%02x\n", + expected_crc, header[4]); rx->state = RX_STATE_ACQUISITION; rx->callback(RX_EVT_HEADER_ERROR, NULL, 0); break;