Repaired waterfall on boot

pull/94/head
erikkaashoek 2 years ago
parent 1867fa014a
commit 6c349b9155

@ -235,8 +235,7 @@ caldata_recall(uint16_t id)
update_frequencies();
set_scale(setting.scale);
set_reflevel(setting.reflevel);
set_waterfall();
set_level_meter();
set_level_meter_or_waterfall();
update_rbw();
sweep_mode = SWEEP_ENABLE;
#ifdef __ULTRA__

@ -445,10 +445,9 @@ void set_storage(void);
void set_clear_storage(void);
void set_subtract_storage(void);
void toggle_normalize(int);
void set_waterfall(void);
void set_level_meter_or_waterfall(void);
void disable_waterfall(void);
#ifdef __LEVEL_METER__
void set_level_meter(void);
void disable_level_meter(void);
#endif
void set_mode(int);

@ -149,12 +149,8 @@ void update_grid(void)
}
if (config.gridlines == 0)
grid_offset = 0;
if (setting.waterfall)
set_waterfall();
#ifdef __LEVEL_METER__
if (setting.level_meter)
set_level_meter();
#endif
// if (setting.waterfall)
set_level_meter_or_waterfall();
redraw_request |= REDRAW_FREQUENCY | REDRAW_AREA;
}
@ -2128,6 +2124,8 @@ static void update_waterfall(void){
#ifdef _USE_WATERFALL_PALETTE
uint16_t y = _PALETTE_ALIGN(256 - graph_bottom + index[i]); // should be always in range 0 - graph_bottom
// y = (uint8_t)i; // for test
if (y > 255) // at start the index_y_t table could be empty leading to negative y
break;
color = waterfall_palette[y];
#elif 1
uint16_t y = index[i]; // should be always in range 0 - graph_bottom
@ -2173,14 +2171,18 @@ static void update_waterfall(void){
ili9341_bulk(OFFSETX, graph_bottom+1, w_width, 1);
// STOP_PROFILE;
}
#if 0
//extern float peakLevel;
//extern float min_level;
//int w_max = -130;
//int w_min = 0;
uint8_t old_waterfall = 100;
void
set_waterfall(void)
{
if (old_waterfall == setting.waterfall)
return;
old_waterfall = setting.waterfall;
if (setting.waterfall == W_SMALL) graph_bottom = SMALL_WATERFALL;
else if (setting.waterfall == W_BIG) graph_bottom = BIG_WATERFALL;
else /*if (setting.waterfall == W_OFF)*/graph_bottom = NO_WATERFALL;
@ -2192,12 +2194,12 @@ set_waterfall(void)
}
request_to_redraw_grid();
}
#endif
void
disable_waterfall(void)
{
setting.waterfall = W_OFF;
set_waterfall();
set_level_meter_or_waterfall();
}
#ifdef __LEVEL_METER__
@ -2227,16 +2229,24 @@ static void update_level_meter(void){
}
void
set_level_meter(void)
set_level_meter_or_waterfall(void)
{
if (setting.level_meter) graph_bottom = BIG_NUMBER_SPACE;
// else if (setting.level_meter == W_BIG) graph_bottom = BIG_WATERFALL;
else /*if (setting.level_meter == W_OFF)*/graph_bottom = NO_WATERFALL;
if (setting.waterfall == W_BIG
#ifdef TINYSA4
|| setting.level_meter
#endif
) graph_bottom = BIG_WATERFALL;
else if (setting.waterfall == W_SMALL
#ifndef TINYSA4
|| setting.level_meter
#endif
) graph_bottom = SMALL_WATERFALL;
else graph_bottom = NO_WATERFALL;
_grid_y = graph_bottom / NGRIDY;
area_height = AREA_HEIGHT_NORMAL;
if (setting.level_meter){
if (setting.waterfall != W_OFF || setting.level_meter){
ili9341_set_background(LCD_BG_COLOR);
ili9341_fill(OFFSETX, graph_bottom, LCD_WIDTH - OFFSETX, CHART_BOTTOM - graph_bottom + 1);
ili9341_fill(OFFSETX, graph_bottom, LCD_WIDTH - OFFSETX, CHART_BOTTOM - graph_bottom);
}
request_to_redraw_grid();
}
@ -2245,7 +2255,7 @@ void
disable_level_meter(void)
{
setting.level_meter = false;
set_level_meter();
set_level_meter_or_waterfall();
}
#endif

@ -3272,7 +3272,7 @@ static UI_FUNCTION_ADV_CALLBACK(menu_waterfall_acb){
setting.waterfall++; if (setting.waterfall>W_BIG)setting.waterfall = W_OFF;
if (setting.waterfall != W_OFF)
setting.level_meter = false;
set_waterfall();
set_level_meter_or_waterfall();
ui_mode_normal();
}
}
@ -3288,7 +3288,7 @@ static UI_FUNCTION_ADV_CALLBACK(menu_level_meter_acb){
setting.level_meter = !setting.level_meter;
if (setting.level_meter)
setting.waterfall = W_OFF;
set_level_meter();
set_level_meter_or_waterfall();
ui_mode_normal();
}
#endif
@ -6958,7 +6958,7 @@ leave_ui_mode()
// if (menu_button_height*MENU_BUTTON_MAX - area_height > 0)
// ili9341_fill(LCD_WIDTH-MENU_BUTTON_WIDTH, area_height, MENU_BUTTON_WIDTH, menu_button_height*MENU_BUTTON_MAX - area_height);
if (setting.waterfall)
set_waterfall();
set_level_meter_or_waterfall();
#ifdef __LEVEL_METER__
if (setting.level_meter)
ili9341_fill(LCD_WIDTH-MENU_BUTTON_WIDTH, area_height, MENU_BUTTON_WIDTH, menu_button_height*MENU_BUTTON_MAX - area_height);

@ -305,8 +305,7 @@ static char cmd_buffer[256+128];
update_frequencies();
set_scale(setting.scale);
set_reflevel(setting.reflevel);
set_waterfall();
set_level_meter();
set_level_meter_or_waterfall();
}
else error = "Format err";
}

Loading…
Cancel
Save

Powered by TurnKey Linux.