|
|
|
@ -1580,15 +1580,13 @@ static UI_FUNCTION_ADV_CALLBACK(menu_subtract_trace_acb)
|
|
|
|
static UI_FUNCTION_ADV_CALLBACK(menu_traces_acb)
|
|
|
|
static UI_FUNCTION_ADV_CALLBACK(menu_traces_acb)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
(void)item;
|
|
|
|
(void)item;
|
|
|
|
|
|
|
|
int count = 0;
|
|
|
|
if(b){
|
|
|
|
if(b){
|
|
|
|
if (data == 0) { // Select trace
|
|
|
|
if (data == 0) { // Select trace
|
|
|
|
b->param_1.i = current_trace+1;
|
|
|
|
b->param_1.i = current_trace+1;
|
|
|
|
b->bg = LCD_TRACE_1_COLOR+current_trace;
|
|
|
|
b->bg = LCD_TRACE_1_COLOR+current_trace;
|
|
|
|
} else if (data == 1) { // View
|
|
|
|
} else if (data == 1) { // View
|
|
|
|
if (current_trace)
|
|
|
|
b->icon = IS_TRACE_ENABLE(current_trace) ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
|
|
|
|
b->icon = IS_TRACE_ENABLE(current_trace) ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
b->fg = LCD_DARK_GREY;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (data == 2) // freeze
|
|
|
|
else if (data == 2) // freeze
|
|
|
|
b->icon = setting.stored[current_trace] ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
|
|
|
|
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);
|
|
|
|
menu_push_submenu(menu_trace);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
case 1:
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
for (int i=0;i<TRACES_MAX;i++)
|
|
|
|
|
|
|
|
if (IS_TRACE_ENABLE(i))
|
|
|
|
|
|
|
|
count++;
|
|
|
|
if (IS_TRACE_ENABLE(current_trace)) {
|
|
|
|
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);
|
|
|
|
TRACE_DISABLE(1<<current_trace);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
drawMessageBox("Trace", "Enable at least one trace", 2000);
|
|
|
|
|
|
|
|
redraw_request|= REDRAW_AREA;
|
|
|
|
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
TRACE_ENABLE(1<<current_trace);
|
|
|
|
TRACE_ENABLE(1<<current_trace);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1693,13 +1698,8 @@ static UI_FUNCTION_ADV_CALLBACK(menu_limit_select_acb)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
(void)item;
|
|
|
|
(void)item;
|
|
|
|
if(b){
|
|
|
|
if(b){
|
|
|
|
if (setting.limits[data-1].enabled) {
|
|
|
|
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]);
|
|
|
|
plot_printf(b->text, sizeof(b->text), "%.6FHz\n%.1fdBm", (float)setting.limits[data-1].frequency, setting.limits[data-1].level);
|
|
|
|
b->icon = (setting.limits[data-1].enabled?BUTTON_ICON_CHECK:BUTTON_ICON_NOCHECK) ;
|
|
|
|
b->icon = BUTTON_ICON_CHECK;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
plot_printf(b->text, sizeof(b->text), "EMPTY");
|
|
|
|
|
|
|
|
b->icon = BUTTON_ICON_NOCHECK;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
active_limit = data -1;
|
|
|
|
active_limit = data -1;
|
|
|
|
@ -2791,7 +2791,7 @@ static const menuitem_t menu_trace[] =
|
|
|
|
|
|
|
|
|
|
|
|
static const menuitem_t menu_marker_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
|
|
|
|
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@ -2803,8 +2803,8 @@ static const menuitem_t menu_store_trace[] =
|
|
|
|
|
|
|
|
|
|
|
|
static const menuitem_t menu_subtract_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
|
|
|
|
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static const menuitem_t menu_traces[] =
|
|
|
|
static const menuitem_t menu_traces[] =
|
|
|
|
@ -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);
|
|
|
|
plot_printf(uistat.text, sizeof uistat.text, "%3.6fMHz", uistat.freq_value / 1000000.0);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case KM_LIMIT_LEVEL:
|
|
|
|
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);
|
|
|
|
plot_printf(uistat.text, sizeof uistat.text, "%.1f", uistat.value);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
@ -3218,7 +3218,7 @@ set_numeric_value(void)
|
|
|
|
limits_update();
|
|
|
|
limits_update();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case KM_LIMIT_LEVEL:
|
|
|
|
case KM_LIMIT_LEVEL:
|
|
|
|
setting.limits[active_limit].level = uistat.value;
|
|
|
|
setting.limits[active_limit].level = to_dBm(uistat.value);
|
|
|
|
limits_update();
|
|
|
|
limits_update();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|