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(); update_frequencies();
set_scale(setting.scale); set_scale(setting.scale);
set_reflevel(setting.reflevel); set_reflevel(setting.reflevel);
set_waterfall(); set_level_meter_or_waterfall();
set_level_meter();
update_rbw(); update_rbw();
sweep_mode = SWEEP_ENABLE; sweep_mode = SWEEP_ENABLE;
#ifdef __ULTRA__ #ifdef __ULTRA__

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

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

@ -3272,7 +3272,7 @@ static UI_FUNCTION_ADV_CALLBACK(menu_waterfall_acb){
setting.waterfall++; if (setting.waterfall>W_BIG)setting.waterfall = W_OFF; setting.waterfall++; if (setting.waterfall>W_BIG)setting.waterfall = W_OFF;
if (setting.waterfall != W_OFF) if (setting.waterfall != W_OFF)
setting.level_meter = false; setting.level_meter = false;
set_waterfall(); set_level_meter_or_waterfall();
ui_mode_normal(); ui_mode_normal();
} }
} }
@ -3288,7 +3288,7 @@ static UI_FUNCTION_ADV_CALLBACK(menu_level_meter_acb){
setting.level_meter = !setting.level_meter; setting.level_meter = !setting.level_meter;
if (setting.level_meter) if (setting.level_meter)
setting.waterfall = W_OFF; setting.waterfall = W_OFF;
set_level_meter(); set_level_meter_or_waterfall();
ui_mode_normal(); ui_mode_normal();
} }
#endif #endif
@ -6958,7 +6958,7 @@ leave_ui_mode()
// if (menu_button_height*MENU_BUTTON_MAX - area_height > 0) // 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); // ili9341_fill(LCD_WIDTH-MENU_BUTTON_WIDTH, area_height, MENU_BUTTON_WIDTH, menu_button_height*MENU_BUTTON_MAX - area_height);
if (setting.waterfall) if (setting.waterfall)
set_waterfall(); set_level_meter_or_waterfall();
#ifdef __LEVEL_METER__ #ifdef __LEVEL_METER__
if (setting.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); 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(); update_frequencies();
set_scale(setting.scale); set_scale(setting.scale);
set_reflevel(setting.reflevel); set_reflevel(setting.reflevel);
set_waterfall(); set_level_meter_or_waterfall();
set_level_meter();
} }
else error = "Format err"; else error = "Format err";
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.