Add function to display measurements on screen

Use 'm' key to toggle display.
This commit is contained in:
Andreas Eversberg
2017-09-25 18:46:50 +02:00
parent e84d7a082c
commit ba036de226
26 changed files with 651 additions and 52 deletions

View File

@@ -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;