From 68d4bc6967a5adb1c193c1e94109dc9e80ecdad5 Mon Sep 17 00:00:00 2001 From: erikkaashoek Date: Thu, 27 Apr 2023 08:26:48 +0200 Subject: [PATCH] Multi band frequency display and trigger grid --- plot.c | 13 ++++++++++--- ui.c | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/plot.c b/plot.c index befd53a..5222c42 100644 --- a/plot.c +++ b/plot.c @@ -588,8 +588,10 @@ static uint16_t get_trigger_level( #endif ){ index_y_t trigger; + if (setting.trigger_trace != 255) + setting.trigger_level = measured[setting.trigger_trace][x]; #ifdef __BANDS__ - if (setting.multi_band && !setting.multi_trace) { + else if (setting.multi_band && !setting.multi_trace) { int b = getBand(x); setting.trigger_level = setting.bands[b].level; } @@ -1898,11 +1900,16 @@ draw_frequencies(void) ili9341_fill(FREQUENCIES_XPOS1, CHART_BOTTOM + 1, LCD_WIDTH - FREQUENCIES_XPOS1, LCD_HEIGHT - CHART_BOTTOM - 1); int idx=0; do { + int next_idx = idx; int b = getBand(idx); + while (b == getBand(++next_idx)); // plot_printf(buf1, sizeof(buf1), "%.3QHz-%.3QHz %5.1QHz/", setting.bands[b].start + (setting.frequency_offset - FREQUENCY_SHIFT), setting.bands[b].end + (setting.frequency_offset - FREQUENCY_SHIFT), grid_span); - plot_printf(buf1, sizeof(buf1), "%.3QHz %5.1QHz/", setting.bands[b].start + (setting.frequency_offset - FREQUENCY_SHIFT), grid_span); + if (next_idx - idx < sweep_points/4) + plot_printf(buf1, sizeof(buf1), "%.3QHz", (setting.bands[b].start+setting.bands[b].end)/2 + (setting.frequency_offset - FREQUENCY_SHIFT), grid_span); + else + plot_printf(buf1, sizeof(buf1), "%.3QHz %5.1QHz/", setting.bands[b].start + (setting.frequency_offset - FREQUENCY_SHIFT), grid_span); ili9341_drawstring(buf1, FREQUENCIES_XPOS1+idx, FREQUENCIES_YPOS); - while (b == getBand(++idx)); + idx = next_idx; } while (idx < sweep_points - 10); return; } diff --git a/ui.c b/ui.c index 4839c98..aa018a5 100644 --- a/ui.c +++ b/ui.c @@ -5252,7 +5252,7 @@ static void fetch_numeric_target(uint8_t mode) plot_printf(uistat.text, sizeof uistat.text, format, uistat.value,unit_string[setting.unit]); break; case KM_TRIGGER_GRID: - uistat.value = setting.trigger_grid / CH_CFG_ST_FREQUENCY; // ((float)ST2US(setting.trigger_grid))/1000000.0; + uistat.value = ((float)setting.trigger_grid) / CH_CFG_ST_FREQUENCY; // ((float)ST2US(setting.trigger_grid))/1000000.0; plot_printf(uistat.text, sizeof uistat.text, "%.3F", uistat.value); break;