From ba036de22680c5f46983f30144c23d212245842f Mon Sep 17 00:00:00 2001 From: Andreas Eversberg Date: Mon, 25 Sep 2017 18:46:50 +0200 Subject: Add function to display measurements on screen Use 'm' key to toggle display. --- src/r2000/dsp.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/r2000/dsp.c') diff --git a/src/r2000/dsp.c b/src/r2000/dsp.c index 10b3a97..ca61122 100644 --- a/src/r2000/dsp.c +++ b/src/r2000/dsp.c @@ -109,6 +109,13 @@ int dsp_init_sender(r2000_t *r2000) iir_highpass_init(&r2000->super_tx_hp, SUPER_CUTOFF_H, r2000->sender.samplerate, 2); iir_highpass_init(&r2000->super_rx_hp, SUPER_CUTOFF_H, r2000->sender.samplerate, 2); + r2000->dmp_frame_level = display_measurements_add(&r2000->sender, "Frame Level", "%.1f %% (last)", DISPLAY_MEAS_LAST, DISPLAY_MEAS_LEFT, 0.0, 150.0, 100.0); + r2000->dmp_frame_quality = display_measurements_add(&r2000->sender, "Frame Quality", "%.1f %% (last)", DISPLAY_MEAS_LAST, DISPLAY_MEAS_LEFT, 0.0, 100.0, 100.0); + if (r2000->sysinfo.chan_type == CHAN_TYPE_TC || r2000->sysinfo.chan_type == CHAN_TYPE_CC_TC) { + r2000->dmp_super_level = display_measurements_add(&r2000->sender, "Super Level", "%.1f %%", DISPLAY_MEAS_AVG, DISPLAY_MEAS_LEFT, 0.0, 150.0, 100.0); + r2000->dmp_super_quality = display_measurements_add(&r2000->sender, "Super Quality", "%.1f %%", DISPLAY_MEAS_AVG, DISPLAY_MEAS_LEFT, 0.0, 100.0, 100.0); + } + return 0; } @@ -190,6 +197,10 @@ static void fsk_receive_bit(void *inst, int bit, double quality, double level) } level /= (double)r2000->rx_max; quality /= (double)r2000->rx_max; + /* update measurements */ + display_measurements_update(r2000->dmp_frame_level, level * 100.0, 0.0); + display_measurements_update(r2000->dmp_frame_quality, quality * 100.0, 0.0); + /* send frame to upper layer */ r2000_receive_frame(r2000, r2000->rx_frame, quality, level); } @@ -202,6 +213,10 @@ static void super_receive_bit(void *inst, int bit, double quality, double level) /* normalize supervisory level */ level /= TX_PEAK_SUPER; + /* update measurements (if dmp_* params are NULL, we omit this) */ + display_measurements_update(r2000->dmp_super_level, level * 100.0, 0.0); + display_measurements_update(r2000->dmp_super_quality, quality * 100.0, 0.0); + /* store bit */ r2000->super_rx_word = (r2000->super_rx_word << 1) | bit; r2000->super_rx_level[r2000->super_rx_index] = level; -- cgit v1.2.3