WIP: Layer 2-Implementierung #6

Draft
thomas wants to merge 14 commits from layer2_dev into main
Showing only changes of commit eb802629a1 - Show all commits

View file

@ -265,6 +265,8 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
static float complex samples2dump_s[8192]; static float complex samples2dump_s[8192];
static size_t nsamples2dump_s = 0; static size_t nsamples2dump_s = 0;
static float evm;
// cache configuration flags // cache configuration flags
bool is_central_node = options_is_flag_set(OPTIONS_FLAG_IS_CENTRAL_NODE); bool is_central_node = options_is_flag_set(OPTIONS_FLAG_IS_CENTRAL_NODE);
@ -344,6 +346,7 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
// go on with decoding the header // go on with decoding the header
rx->state = RX_STATE_HEADER; rx->state = RX_STATE_HEADER;
symbol_counter = 0; symbol_counter = 0;
evm = 0.0f;
} }
break; break;
@ -361,6 +364,7 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
LOG(LVL_DUMP, "@%zu: Sym: %d; Phase error: %f %s", rx->sample_index, sym_demod, phase_error, LOG(LVL_DUMP, "@%zu: Sym: %d; Phase error: %f %s", rx->sample_index, sym_demod, phase_error,
(fabs(phase_error) > 0.3) ? "!!!" : ""); (fabs(phase_error) > 0.3) ? "!!!" : "");
evm += modem_get_demodulator_evm(rx->hdr_demod);
update_nco_pll(rx->carrier_fine_nco, phase_error, PLL_BW_HEADER); update_nco_pll(rx->carrier_fine_nco, phase_error, PLL_BW_HEADER);
@ -378,7 +382,7 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
// store debug info about the header // store debug info about the header
rx->packet_debug_info.noise_floor_level = rx->noise_floor_level; rx->packet_debug_info.noise_floor_level = rx->noise_floor_level;
rx->packet_debug_info.header_rssi = agc_crcf_get_rssi(rx->agc); rx->packet_debug_info.header_rssi = agc_crcf_get_rssi(rx->agc);
rx->packet_debug_info.header_evm = -1e38f; // FIXME rx->packet_debug_info.header_evm = evm / symbol_counter;
ERR_CHECK_LIQUID(liquid_repack_bytes( ERR_CHECK_LIQUID(liquid_repack_bytes(
symbols_int, modem_get_bps(rx->hdr_demod), rx->hdr_len_symbols, symbols_int, modem_get_bps(rx->hdr_demod), rx->hdr_len_symbols,
@ -433,6 +437,7 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
rx->state = RX_STATE_DATA; rx->state = RX_STATE_DATA;
symbol_counter = 0; symbol_counter = 0;
evm = 0.0f;
} }
break; break;
@ -453,6 +458,8 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
float phase_error = modem_get_demodulator_phase_error(rx->payload_demod); float phase_error = modem_get_demodulator_phase_error(rx->payload_demod);
//LOG(LVL_DEBUG, "@%zu: Sym: %d; Phase error: %f", rx->sample_index, sym_demod, phase_error); //LOG(LVL_DEBUG, "@%zu: Sym: %d; Phase error: %f", rx->sample_index, sym_demod, phase_error);
evm += modem_get_demodulator_evm(rx->payload_demod);
update_nco_pll(rx->carrier_fine_nco, phase_error, PLL_BW_DATA); update_nco_pll(rx->carrier_fine_nco, phase_error, PLL_BW_DATA);
symbols_int[symbol_counter] = sym_demod; symbols_int[symbol_counter] = sym_demod;
@ -471,7 +478,7 @@ result_t layer1_rx_process(layer1_rx_t *rx, const float complex *samples, size_t
// store debug info about the data // store debug info about the data
rx->packet_debug_info.data_rssi = agc_crcf_get_rssi(rx->agc); rx->packet_debug_info.data_rssi = agc_crcf_get_rssi(rx->agc);
rx->packet_debug_info.data_evm = -1e38f; // FIXME rx->packet_debug_info.data_evm = evm / symbol_counter;
// deinterleave the message symbols // deinterleave the message symbols
uint8_t symbols_int_deinterleaved[rx->payload_len_symbols]; uint8_t symbols_int_deinterleaved[rx->payload_len_symbols];