From 15ca2c7d5dda1916beaa078fdf4b9c162c47aa7f Mon Sep 17 00:00:00 2001 From: DiSlord Date: Sun, 16 May 2021 16:32:20 +0300 Subject: [PATCH] Cleanup draw_cal_status code, use lcd_printf --- ui_sa.c | 189 +++++++++++++++++++------------------------------------- 1 file changed, 62 insertions(+), 127 deletions(-) diff --git a/ui_sa.c b/ui_sa.c index 26dfe9d..a95c37d 100644 --- a/ui_sa.c +++ b/ui_sa.c @@ -3201,9 +3201,8 @@ int invoke_quick_menu(int y) } #define YSTEP 8 -int add_quick_menu(char *buf, int x, int y, menuitem_t *menu) +int add_quick_menu(int y, menuitem_t *menu) { - ili9341_drawstring(buf, x, y); y += YSTEP*item_space/2 + YSTEP; if (max_quick_menu 0.9 && t < 1.1){ - plot_printf(buf, BLEN, "%s%c/",scale_vtext[i],unit_scale_text[setting.unit_scale_index]); + lcd_printf(x, y, "%s%c/",scale_vtext[i],unit_scale_text[setting.unit_scale_index]); break; } i++; } #else - plot_printf(buf, BLEN, "%.2F/",setting.scale); + lcd_printf(x, y, "%.2F/",setting.scale); #endif - y = add_quick_menu(buf, x, y, (menuitem_t *)KM_SCALE); + y = add_quick_menu(y, (menuitem_t *)KM_SCALE); // Trigger status if (is_paused()) { - color = LCD_BRIGHT_COLOR_GREEN; - ili9341_set_foreground(color); + ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); ili9341_drawstring("PAUSED", x, y); y += YSTEP + YSTEP/2 ; } if (setting.trigger == T_SINGLE || setting.trigger == T_NORMAL ) { - color = LCD_BRIGHT_COLOR_GREEN; - ili9341_set_foreground(color); + ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); ili9341_drawstring("ARMED", x, y); y += YSTEP + YSTEP/2 ; } // AM warning if (signal_is_AM) { - color = LCD_BRIGHT_COLOR_RED; - ili9341_set_foreground(color); + ili9341_set_foreground(LCD_BRIGHT_COLOR_RED); ili9341_drawstring("AM", x, y); y += YSTEP + YSTEP/2 ; } @@ -3315,66 +3308,42 @@ redraw_cal_status: // if (setting.mode == M_LOW) { // Attenuation - if (setting.auto_attenuation) - color = LCD_FG_COLOR; - else - color = LCD_BRIGHT_COLOR_GREEN; - ili9341_set_foreground(color); - ili9341_drawstring("Atten:", x, y); - y += YSTEP; - plot_printf(buf, BLEN, "%.2FdB", get_attenuation()); - y = add_quick_menu(buf, x, y, (menuitem_t *)menu_atten); + ili9341_set_foreground(setting.auto_attenuation ? LCD_BRIGHT_COLOR_GREEN : LCD_FG_COLOR); + lcd_printf(x, y, "Atten:\n%4.2FdB", get_attenuation()); + y = add_quick_menu(y+= YSTEP, (menuitem_t *)menu_atten); // } // Calc if (setting.average>0) { ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); - ili9341_drawstring("Calc:", x, y); - y += YSTEP; - plot_printf(buf, BLEN, "%s",averageText[setting.average]); - y = add_quick_menu(buf, x, y, (menuitem_t *)menu_average); + lcd_printf(x, y, "Calc:\n%s", averageText[setting.average]); + y = add_quick_menu(y+= YSTEP, (menuitem_t *)menu_average); } // Spur #ifdef __SPUR__ if (setting.spur_removal != S_OFF) { - if (setting.spur_removal == S_ON) - color = LCD_BRIGHT_COLOR_GREEN; - else - color = LCD_FG_COLOR; - ili9341_set_foreground(color); - - ili9341_drawstring("Spur:", x, y); - y += YSTEP; - if (S_IS_AUTO(setting.spur_removal)) - y = add_quick_menu("AUTO", x, y, (menuitem_t *)menu_stimulus); - else - y = add_quick_menu("ON", x, y, (menuitem_t *)menu_stimulus); + ili9341_set_foreground(setting.spur_removal == S_ON ? LCD_BRIGHT_COLOR_GREEN : LCD_FG_COLOR); + lcd_printf(x, y, "Spur:\n%s", S_IS_AUTO(setting.spur_removal) ? "AUTO" : "ON"); + y = add_quick_menu(y += YSTEP, (menuitem_t *)menu_stimulus); } if (setting.mirror_masking) { ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); - ili9341_drawstring("Mask:", x, y); - - y += YSTEP; - y = add_quick_menu("ON", x, y, (menuitem_t *)menu_stimulus); + ili9341_drawstring("Mask:\nON", x, y); + y = add_quick_menu(y+=YSTEP, (menuitem_t *)menu_stimulus); } #endif if (setting.subtract_stored) { ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); - y = add_quick_menu("Norm.", x, y, (menuitem_t *)menu_storage); + ili9341_drawstring("Norm.", x, y); + y = add_quick_menu(y, (menuitem_t *)menu_storage); } // RBW - if (setting.rbw_x10) - color = LCD_BRIGHT_COLOR_GREEN; - else - color = LCD_FG_COLOR; - ili9341_set_foreground(color); + ili9341_set_foreground(setting.rbw_x10 ? LCD_BRIGHT_COLOR_GREEN : LCD_FG_COLOR); if (dirty) update_rbw(); - ili9341_drawstring("RBW:", x, y); - y += YSTEP; - plot_printf(buf, BLEN, "%.1FHz", actual_rbw_x10*100.0); - y = add_quick_menu(buf, x, y,(menuitem_t *)menu_rbw); + lcd_printf(x, y, "RBW:\n%.1FHz", actual_rbw_x10*100.0); + y = add_quick_menu(y+=YSTEP, (menuitem_t *)menu_rbw); #ifdef __VBW__ // VBW @@ -3387,41 +3356,22 @@ redraw_cal_status: vbw = 10; } ili9341_set_foreground(color); - ili9341_drawstring("VBW:", x, y); - y += YSTEP; - plot_printf(buf, BLEN, "%.1FHz", actual_rbw_x10*100.0 *vbw/10.0); - y = add_quick_menu(buf, x, y,(menuitem_t *)menu_vbw); + lcd_printf(x, y, "VBW:\n%.1FHz", actual_rbw_x10*100.0 *vbw/10.0); + y = add_quick_menu(y+=YSTEP, (menuitem_t *)menu_vbw); } #endif - // Sweep time - if (setting.step_delay != 0) - color = LCD_BRIGHT_COLOR_GREEN; - else - color = LCD_FG_COLOR; - ili9341_set_foreground(color); - buf[0] = ' '; - strcpy(&buf[1],"Scan:"); - if (setting.step_delay_mode == SD_PRECISE) - buf[0] = 'P'; - else if (setting.step_delay_mode == SD_FAST) - buf[0] = 'F'; - else - strcpy(&buf[0],"Scan:"); - ili9341_drawstring(buf, x, y); - + // Sweep time: SD_NORMAL, SD_PRECISE, SD_FAST, SD_MANUAL + static const char fscan[]={0, 'P', 'F', 'M'}; if (dirty) { calculate_step_delay(); setting.actual_sweep_time_us = calc_min_sweep_time_us(); } - + ili9341_set_foreground(setting.step_delay ? LCD_BRIGHT_COLOR_GREEN : LCD_FG_COLOR); #if 0 // Activate for sweep time debugging - y += YSTEP; - plot_printf(buf, BLEN, "%5.3Fs", (float)setting.sweep_time_us/ONE_SECOND_TIME); - ili9341_drawstring(buf, x, y); + lcd_printf(x, y, "%cScan:\n%5.3Fs", fscan[setting.step_delay_mode&3], (float)setting.sweep_time_us/ONE_SECOND_TIME); #endif - y += YSTEP; - plot_printf(buf, BLEN, "%5.3Fs", (float)setting.actual_sweep_time_us/ONE_SECOND_TIME); - y = add_quick_menu(buf, x, y, (menuitem_t *)menu_sweep_speed); + lcd_printf(x, y, "%cScan:\n%5.3Fs", fscan[setting.step_delay_mode&3], (float)setting.actual_sweep_time_us/ONE_SECOND_TIME); + y = add_quick_menu(y+=YSTEP, (menuitem_t *)menu_sweep_speed); #if 0 // Activate for sweep time debugging @@ -3429,47 +3379,38 @@ redraw_cal_status: update_rbw(); // To ensure the calc_min_sweep time shown takes the latest delay into account calculate_step_delay(); uint32_t t = calc_min_sweep_time_us(); - plot_printf(buf, BLEN, "%5.3Fs", (float)t/ONE_SECOND_TIME); - ili9341_drawstring(buf, x, y); + lcd_printf(x, y, "%5.3Fs", (float)t/ONE_SECOND_TIME); y += YSTEP; - plot_printf(buf, BLEN, "%5.3Fs", (float)setting.additional_step_delay_us/ONE_SECOND_TIME); - ili9341_drawstring(buf, x, y); + lcd_printf(x, y, "%5.3Fs", (float)setting.additional_step_delay_us/ONE_SECOND_TIME); y += YSTEP + YSTEP/2 ; #endif #ifdef TINYSA4 if (setting.extra_lna){ ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); - y = add_quick_menu("LNA:ON", x, y, (menuitem_t *)menu_level); + lcd_printf(x, y, "LNA:ON"); + y = add_quick_menu(y, (menuitem_t *)menu_level); y += YSTEP; } #endif // Cal output if (setting.refer >= 0) { ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); - ili9341_drawstring("Ref:", x, y); - y += YSTEP; - plot_printf(buf, BLEN, "%dMHz",reffer_freq[setting.refer]/1000000); - buf[6]=0; - y = add_quick_menu(buf, x, y,(menuitem_t *)menu_reffer); + lcd_printf(x, y, "Ref:\n%dMHz",reffer_freq[setting.refer]/1000000); + y = add_quick_menu(y+=YSTEP, (menuitem_t *)menu_reffer); } // Offset if (setting.external_gain != 0.0) { ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); - ili9341_drawstring("Amp:", x, y); - y += YSTEP; - plot_printf(buf, BLEN, "%.1fdB",setting.external_gain); - y = add_quick_menu(buf, x, y,(menuitem_t *)KM_EXT_GAIN); + lcd_printf(x, y, "Amp:\n%4.1fdB",setting.external_gain); + y = add_quick_menu(y+=YSTEP, (menuitem_t *)KM_EXT_GAIN); } // Repeat if (setting.repeat != 1) { ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); - ili9341_drawstring("Repeat:", x, y); - y += YSTEP; - plot_printf(buf, BLEN, "%d",setting.repeat); - buf[6]=0; - y = add_quick_menu(buf, x, y,(menuitem_t *)KM_REPEAT); + lcd_printf(x, y, "Repeat\n x%d", setting.repeat); + y = add_quick_menu(y+=YSTEP,( menuitem_t *)KM_REPEAT); } // Trigger @@ -3483,19 +3424,15 @@ redraw_cal_status: y += YSTEP; if (rounding) - plot_printf(buf, BLEN, "%4f", value(setting.trigger_level)); + lcd_printf(x, y, "%6.3f", value(setting.trigger_level)); else - plot_printf(buf, BLEN, "%.4F", value(setting.trigger_level)); -// plot_printf(buf, BLEN, "%4f", value(setting.trigger_level)/setting.unit_scale); - y = add_quick_menu(buf, x, y,(menuitem_t *)menu_trigger); + lcd_printf(x, y, "%6.4F", value(setting.trigger_level)); +// lcd_printf(x, y, "%4f", value(setting.trigger_level)/setting.unit_scale); + y = add_quick_menu(y,(menuitem_t *)menu_trigger); } // Mode - if (level_is_calibrated()) - color = LCD_BRIGHT_COLOR_GREEN; - else - color = LCD_BRIGHT_COLOR_RED; - ili9341_set_foreground(color); + ili9341_set_foreground(level_is_calibrated() ? LCD_BRIGHT_COLOR_GREEN : LCD_BRIGHT_COLOR_RED); ili9341_drawstring_7x13(MODE_LOW(setting.mode) ? "LOW" : "HIGH", x, y); // Compact status string @@ -3557,11 +3494,6 @@ redraw_cal_status: if (!setting.waterfall) { // Do not draw bottom level if in waterfall mode // Bottom level y = area_height + OFFSETY; - if (rounding) - plot_printf(buf, BLEN, "%4d", (int)(yMax - setting.scale * NGRIDY)); - else - plot_printf(buf, BLEN, "%+4.3F", ((yMax - setting.scale * NGRIDY)/setting.unit_scale)); - // buf[5]=0; if (level_is_calibrated()) if (setting.auto_reflevel) color = LCD_FG_COLOR; @@ -3570,8 +3502,11 @@ redraw_cal_status: else color = LCD_BRIGHT_COLOR_RED; ili9341_set_foreground(color); - y = add_quick_menu(buf, x, y,(menuitem_t *)menu_average); -// ili9341_drawstring(buf, x, y); + if (rounding) + lcd_printf(x, y, "%4d", (int)(yMax - setting.scale * NGRIDY)); + else + lcd_printf(x, y, "%+4.3F", ((yMax - setting.scale * NGRIDY)/setting.unit_scale)); + y = add_quick_menu(y,(menuitem_t *)menu_average); } }