Various small bug fixes

tinySA-V4-SI4463
erikkaashoek 5 years ago
parent 1f789a23ec
commit fd53c06bae

@ -1235,6 +1235,7 @@ int invoke_quick_menu(int);
bool ui_process_listen_lever(void);
void refresh_sweep_menu(int i);
void save_to_sd(int mask);
void drawMessageBox(char *header, char *text, uint32_t delay);
// Irq operation process set
#define OP_NONE 0x00

@ -242,6 +242,8 @@ void reset_settings(int m)
setting.stored[t] = false;
setting.subtract[t] = 0; // Disabled
}
for (int l=0;l<LIMITS_MAX;l++)
setting.limits[l].enabled = false;
setting.stored[TRACE_STORED] = true;
TRACE_DISABLE(TRACE_STORED_FLAG|TRACE_TEMP_FLAG);
#ifdef TINYSA4
@ -912,27 +914,26 @@ void set_attenuation(float a) // Is used both only in high/low input mode
void limits_update(void)
{
int j = 0;
bool active = false;
int prev = -1;
for (int i = 0; i<LIMITS_MAX; i++)
{
if (setting.limits[i].enabled) {
active = true;
while (j < sweep_points && (getFrequency(j) < setting.limits[i].frequency || setting.limits[i].frequency == 0)) {
if (i == 0)
if (prev < 0)
stored_t[j] = setting.limits[i].level;
else
stored_t[j] = setting.limits[i-1].level +
(getFrequency(j) - setting.limits[i-1].frequency) * (setting.limits[i].level - setting.limits[i-1].level) /
(setting.limits[i].frequency-setting.limits[i-1].frequency);
stored_t[j] = setting.limits[prev].level +
(getFrequency(j) - setting.limits[prev].frequency) * (setting.limits[i].level - setting.limits[prev].level) /
(setting.limits[i].frequency-setting.limits[prev].frequency);
j++;
}
prev = i;
}
}
if (active)
if (prev>=0)
{
float old_level = stored_t[j-1];
while (j < sweep_points)
stored_t[j++] = old_level;
stored_t[j++] = setting.limits[prev].level;
setting.show_stored = true;
TRACE_ENABLE(TRACE_STORED_FLAG);
} else {
@ -1181,13 +1182,12 @@ void set_average(int t, int v)
&& (v != AV_QUASI)
#endif
);
#ifndef __TRACES_MENU__
if (enable && !IS_TRACES_ENABLED(TRACE_TEMP_FLAG)) {
enableTracesAtComplete(TRACE_TEMP_FLAG);
scan_after_dirty = 0;
} else
TRACE_DISABLE(TRACE_TEMP_FLAG);
#endif
}
// else
// TRACE_DISABLE(TRACE_TEMP_FLAG);
//dirty = true; // No HW update required, only status panel refresh
}

@ -1580,15 +1580,13 @@ static UI_FUNCTION_ADV_CALLBACK(menu_subtract_trace_acb)
static UI_FUNCTION_ADV_CALLBACK(menu_traces_acb)
{
(void)item;
int count = 0;
if(b){
if (data == 0) { // Select trace
b->param_1.i = current_trace+1;
b->bg = LCD_TRACE_1_COLOR+current_trace;
} else if (data == 1) { // View
if (current_trace)
b->icon = IS_TRACE_ENABLE(current_trace) ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
else
b->fg = LCD_DARK_GREY;
}
else if (data == 2) // freeze
b->icon = setting.stored[current_trace] ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
@ -1605,9 +1603,16 @@ static UI_FUNCTION_ADV_CALLBACK(menu_traces_acb)
menu_push_submenu(menu_trace);
return;
case 1:
for (int i=0;i<TRACES_MAX;i++)
if (IS_TRACE_ENABLE(i))
count++;
if (IS_TRACE_ENABLE(current_trace)) {
if (current_trace) // Trace 1 always viewed
if (count > 1) { // Always 1 trace enabled
TRACE_DISABLE(1<<current_trace);
} else {
drawMessageBox("Trace", "Enable at least one trace", 2000);
redraw_request|= REDRAW_AREA;
}
} else {
TRACE_ENABLE(1<<current_trace);
}
@ -1693,13 +1698,8 @@ static UI_FUNCTION_ADV_CALLBACK(menu_limit_select_acb)
{
(void)item;
if(b){
if (setting.limits[data-1].enabled) {
plot_printf(b->text, sizeof(b->text), "%.6FHz\n%.1fdBm", (float)setting.limits[data-1].frequency, setting.limits[data-1].level);
b->icon = BUTTON_ICON_CHECK;
} else {
plot_printf(b->text, sizeof(b->text), "EMPTY");
b->icon = BUTTON_ICON_NOCHECK;
}
plot_printf(b->text, sizeof(b->text), "%.6FHz\n%.2F%s", (float)setting.limits[data-1].frequency, value(setting.limits[data-1].level),unit_string[setting.unit]);
b->icon = (setting.limits[data-1].enabled?BUTTON_ICON_CHECK:BUTTON_ICON_NOCHECK) ;
return;
}
active_limit = data -1;
@ -2791,7 +2791,7 @@ static const menuitem_t menu_trace[] =
static const menuitem_t menu_marker_trace[] =
{
{ MT_ADV_CALLBACK|MT_REPEATS,DATA_STARTS_REPEATS(0,TRACES_MAX), MT_CUSTOM_LABEL, menu_marker_trace_acb},
{ MT_ADV_CALLBACK|MT_REPEATS,DATA_STARTS_REPEATS(0,TRACES_MAX), "TRACE %d", menu_marker_trace_acb},
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back
};
@ -2803,7 +2803,7 @@ static const menuitem_t menu_store_trace[] =
static const menuitem_t menu_subtract_trace[] =
{
{ MT_ADV_CALLBACK|MT_REPEATS,DATA_STARTS_REPEATS(0,TRACES_MAX), MT_CUSTOM_LABEL, menu_subtract_trace_acb},
{ MT_ADV_CALLBACK|MT_REPEATS,DATA_STARTS_REPEATS(0,TRACES_MAX+1), MT_CUSTOM_LABEL, menu_subtract_trace_acb},
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back
};
@ -3054,7 +3054,7 @@ static void fetch_numeric_target(uint8_t mode)
plot_printf(uistat.text, sizeof uistat.text, "%3.6fMHz", uistat.freq_value / 1000000.0);
break;
case KM_LIMIT_LEVEL:
uistat.value = setting.limits[active_limit].level;
uistat.value = value(setting.limits[active_limit].level);
plot_printf(uistat.text, sizeof uistat.text, "%.1f", uistat.value);
break;
#endif
@ -3218,7 +3218,7 @@ set_numeric_value(void)
limits_update();
break;
case KM_LIMIT_LEVEL:
setting.limits[active_limit].level = uistat.value;
setting.limits[active_limit].level = to_dBm(uistat.value);
limits_update();
break;
#endif

Loading…
Cancel
Save

Powered by TurnKey Linux.