Cleaning up the high input menu system

tinySA
erikkaashoek 6 years ago
parent e0a100af56
commit b56af01ba2

@ -786,8 +786,8 @@ config_t config = {
.harmonic_freq_threshold = 300000000,
#endif
.vbat_offset = 500,
.low_level_offset = 0,
.high_level_offset = 0,
.low_level_offset = 100, // Uncalibrated
.high_level_offset = 100, // Uncalibrated
};
properties_t current_props;

@ -1900,6 +1900,9 @@ draw_frequencies(void)
{
char buf1[32];
char buf2[32]; buf2[0] = 0;
if (MODE_OUTPUT(settingMode)) // No frequencies during output
return;
#ifdef __VNA__
if ((domain_mode & DOMAIN_MODE) == DOMAIN_FREQ) {
#endif

@ -69,7 +69,7 @@ int settingBandwidth = 0;
//int settingLevelOffset = 0;
int settingRefer = 1;
int settingRefer = -1; // Off by default
int refferFreq[] = {30000000, 15000000, 10000000, 4000000, 3000000, 2000000, 1000000};
int settingSpur = 0;
int settingAverage = 0;
@ -139,10 +139,13 @@ void SetMode(int m)
case M_LOW:
set_sweep_frequency(ST_START, (int32_t) 0);
set_sweep_frequency(ST_STOP, (int32_t) 300000000);
SetRefpos(-10);
goto min_max_low;
case M_GENLOW:
set_sweep_frequency(ST_CENTER, (int32_t) 10000000);
set_sweep_frequency(ST_SPAN, 0);
settingSpur = 0; // Not for output mode
settingRefer = -1; // No refer output in output mode
min_max_low:
minFreq = 0;
maxFreq = 520000000;
@ -150,15 +153,20 @@ void SetMode(int m)
case M_HIGH:
set_sweep_frequency(ST_START, (int32_t) 300000000);
set_sweep_frequency(ST_STOP, (int32_t) 960000000);
SetRefpos(-30);
goto min_max_high;
case M_GENHIGH:
set_sweep_frequency(ST_CENTER, (int32_t) 300000000);
set_sweep_frequency(ST_SPAN, 0);
settingRefer = -1; // No refer output in output mode
min_max_high:
minFreq = 240000000;
maxFreq = 960000000;
extraVFO = false; // Not possible in high mode
settingSpur = 0; // Not possible in high mode
break;
}
settingAttenuate = 0;
dirty = true;
}
@ -224,18 +232,33 @@ void SetPowerLevel(int o)
config.low_level_offset = o - peakLevel - settingAttenuate + settingLevelOffset();
}
else {
config.low_level_offset = 0;
config.high_level_offset = 0;
config.low_level_offset = 100;
config.high_level_offset = 100;
}
dirty = true;
}
int settingLevelOffset(void)
{
if (settingMode == M_HIGH)
return(config.high_level_offset);
if (settingMode == M_LOW)
if (settingMode == M_HIGH) {
if (config.high_level_offset == 100)
return 0;
return(config.high_level_offset);
}
if (settingMode == M_LOW) {
if (config.low_level_offset == 100)
return 0;
return(config.low_level_offset);
}
return(0);
}
int level_is_calibrated(void)
{
if (settingMode == M_HIGH && config.high_level_offset != 100)
return 1;
if (settingMode == M_LOW && config.low_level_offset != 100)
return 1;
return(0);
}
@ -306,6 +329,13 @@ int GetAGC(void)
return(settingAGC);
}
void SetRefpos(int level)
{
set_trace_refpos(0, NGRIDY - level / get_trace_scale(0));
set_trace_refpos(1, NGRIDY - level / get_trace_scale(0));
set_trace_refpos(2, NGRIDY - level / get_trace_scale(0));
dirty = true;
}
//------------------------------------------
@ -320,197 +350,6 @@ int temppeakIndex;
int vbwSteps = 1;
#if 0
int inData = 0;
unsigned long startFreq = 250000000;
unsigned long stopFreq = 300000000;
unsigned long lastFreq[6] = { 300000000, 300000000,0,0,0,0};
int lastParameter[10];
int parameter;
unsigned long reg = 0;
long offset=0;
long offset2=0;
static unsigned int spacing = 10000;
double delta=0.0;
int phase=0;
int deltaPhase;
int delaytime = 50;
#endif
#if 0
void displayHisto ()
{
// clearDisplay();
//int settingMax = 0;
//int settingMin = -120;
if (old_settingMax != settingMax || old_settingMin != settingMin) {
// Display levels at left of screen
tft.fillRect(0, 0, oX-2, tft.height(), DISPLAY_BLACK);
textWhite();
tft.setCursor(0,oY); // Start at top-left corner
tft.println(settingMax);
tft.setCursor(0,tft.height() - 16);
tft.println(settingMin);
// tft.setCursor(0,tft.height()/2);
// tft.println("dB");
old_settingMax = settingMax;
old_settingMin = settingMin;
}
if (old_startFreq != startFreq || old_stopFreq != stopFreq) {
// Dsiplay frequencies
// Bottom of screen
tft.fillRect(0, tft.height()-8, tft.width(), tft.height()-1, DISPLAY_BLACK);
tft.setTextColor(DISPLAY_WHITE); // Draw white text
tft.setCursor(oX+2,tft.height()-8); // Start at top-left corner
double f = (((double)(startFreq - lastFreq[0]))/ 1000000.0);
tft.print(f);
tft.print("MHz");
tft.setCursor(tft.width() - 58,tft.height()-8);
f = (((double)(stopFreq - lastFreq[0]))/ 1000000.0);
tft.print(f);
tft.print("MHz");
tft.setCursor(tft.width()/2 - 80 + oX,tft.height()-8);
tft.print("center:");
f = (double)((stopFreq/2 + startFreq/2 - lastFreq[0]) / 1000000.0);
tft.print(f);
tft.print("MHz");
old_startFreq = startFreq;
old_stopFreq = stopFreq;
}
// Top of screen
if (old_settingAttenuate != settingAttenuate || old_settingPowerGrid != settingPowerGrid) {
tft.fillRect(0, 0, 8*6, oY-2, DISPLAY_BLACK);
tft.setCursor(0,0); // Start at top-left corner
tft.setTextColor(DISPLAY_WHITE); // Draw white text
tft.print("Atten:");
tft.print(settingAttenuate);
tft.setCursor(0,8); // Start at top-left corner
tft.print(settingPowerGrid);
tft.print("dB/");
old_settingAttenuate = settingAttenuate;
old_settingPowerGrid = settingPowerGrid;
old_rbw = -1;
}
if (old_rbw != rbw || old_vbw != vbw) {
tft.fillRect(56, 0, 99, oY-2, DISPLAY_BLACK);
tft.setCursor(56,0); // Start at top-left corner
tft.setTextColor(DISPLAY_WHITE); // Draw white text
tft.print("RBW:");
tft.print(rbw);
tft.print("kHz");
tft.setCursor(56,8); // Start at top-left corner
tft.print("VBW:");
tft.print(vbw);
tft.print("kHz");
old_rbw = rbw;
old_vbw = vbw;
}
if (peakLevel > -150) {
tft.fillRect(oX+100, 0, 100, 8-1, DISPLAY_BLACK);
tft.setCursor(oX + 100,0); // Start at top-left corner
tft.setTextColor(DISPLAY_WHITE); // Draw white text
tft.print("Max=");
tft.print((int)((peakLevel/ 2.0 - settingAttenuate) - 120.0)+settingLevelOffset);
tft.print("dB, ");
tft.print(peakFreq/ 1000000.0);
tft.print("MHz");
}
if (old_settingAverage != settingAverage || abs(old_settingSpur) != abs(settingSpur)) {
int x = tft.width() - 60;
tft.fillRect( x, 0, 60, oY-2, DISPLAY_BLACK);
tft.setTextColor(DISPLAY_WHITE); // Draw white text
if (settingAverage) {
tft.setCursor( x,0); // Start at top-left corner
tft.print("AVR:");
tft.print(averageText[settingAverage]);
}
if (settingSpur) {
tft.setCursor(x,8); // Start at top-left corner
tft.print("SPUR:");
tft.print("ON");
}
old_settingAverage = settingAverage;
old_settingSpur = settingSpur;
}
/*
for (int i=0; i<DISPLAY_POINTS - 1; i++) {
int delta=settingMax - settingMin;
DrawCheckerBoard(i);
double f = ((actual_t[i] / 2.0 - settingAttenuate) - 120.0) + settingLevelOffset;
f = (f - settingMin) * Y_GRID * dY / delta;
if (f >= Y_GRID * dY) f = Y_GRID * dY-1;
if (f < 0) f = 0;
double f2 = ((actual_t[i+1] / 2.0 - settingAttenuate) - 120.0) + settingLevelOffset;
f2 = (f2 - settingMin) * Y_GRID * dY / delta;
if (f2 >= Y_GRID * dY) f2 = Y_GRID * dY-1;
if (f2 < 0) f2 = 0;
int x = i;
int Y1 = Y_GRID * dY - 1 - (int)f;
int Y2 = Y_GRID * dY - 1 - (int)f2;
tft.drawLine(x+oX, oY+Y1, x+oX+1, oY+Y2, DISPLAY_YELLOW);
// tft.drawLine(x+oX, oY+Y1+1, x+oX+1, oY+Y2, DISPLAY_YELLOW);
}
*/
sendDisplay();
}
void DisplayPoint(unsigned char *data, int i, int color)
{
if (i == 0)
return;
int x = i-1;
int delta=settingMax - settingMin;
double f = ((data[x] / 2.0 - settingAttenuate) - 120.0) + settingLevelOffset;
f = (f - settingMin) * Y_GRID * dY / delta;
if (f >= Y_GRID * dY) f = Y_GRID * dY-1;
if (f < 0) f = 0;
double f2 = ((data[x+1] / 2.0 - settingAttenuate) - 120.0) + settingLevelOffset;
f2 = (f2 - settingMin) * Y_GRID * dY / delta;
if (f2 >= Y_GRID * dY) f2 = Y_GRID * dY-1;
if (f2 < 0) f2 = 0;
int Y1 = Y_GRID * dY - 1 - (int)f;
int Y2 = Y_GRID * dY - 1 - (int)f2;
DrawDirty(x,min(Y2,Y1));
DrawDirty(x+1,min(Y2,Y1));
tft.drawLine(x+oX, oY+Y1, x+oX+1, oY+Y2, color);
// tft.drawLine(x+oX, oY+Y1+1, x+oX+1, oY+Y2, DISPLAY_YELLOW);
sendDisplay();
}
void DisplayPeakData(void)
{
double f = ((((float)actual_t[peakIndex]) / 2.0 - settingAttenuate) - 120.0) + settingLevelOffset;
int delta=settingMax - settingMin;
f = (f - settingMin) * Y_GRID * dY / delta;
if (f >= Y_GRID * dY) f = Y_GRID * dY-1;
if (f < 0) f = 0;
int Y1 = Y_GRID * dY - 1 - (int)f;
tft.setCursor(oX+peakIndex+5,oY+Y1); // Start at top-left corner
tft.setTextColor(DISPLAY_WHITE); // Draw white text
tft.print(peakFreq/ 1000000.0);
tft.setCursor(oX+peakIndex+5,oY+Y1+8); // Start at top-left corner
tft.print((int)((peakLevel/ 2.0 - settingAttenuate) - 120.0)+settingLevelOffset);
tft.print("dB");
for (int x=peakIndex+5;x<peakIndex+5+6*8;x++)
DrawDirty(x,Y1);
}
#endif
void setupSA(void)
{
SI4432_Init();
@ -658,7 +497,6 @@ float perform(bool break_on_operation, int i, int32_t f, int extraV)
}
SetRX(settingMode);
SI4432_SetReference(settingRefer);
temppeakLevel = -150;
if (local_IF)
setFreq (0, local_IF);
// if (dirty) {
@ -710,44 +548,39 @@ static bool sweep(bool break_on_operation)
{
float RSSI;
palClearPad(GPIOC, GPIOC_LED);
for (int i = 0; i < sweep_points; i++) {
temppeakLevel = -150;
again:
for (int i = 0; i < sweep_points; i++) {
RSSI = perform(break_on_operation, i, frequencies[i], extraVFO);
if (settingSpur == 1)
if (settingSpur == 1) { // First pass
temp_t[i] = RSSI;
else
{
if (settingSpur == -1)
RSSI = ( RSSI < temp_t[i] ? RSSI : temp_t[i]);
temp_t[i] = RSSI;
if (settingSubtractStorage) {
RSSI = RSSI - stored_t[i] ;
}
// stored_t[i] = (SI4432_Read_Byte(0x69) & 0x0f) * 3.0 - 90.0; // Display the AGC value in thestored trace
if (scandirty || settingAverage == AV_OFF)
actual_t[i] = RSSI;
else {
switch(settingAverage) {
case AV_MIN: if (actual_t[i] > RSSI) actual_t[i] = RSSI; break;
case AV_MAX: if (actual_t[i] < RSSI) actual_t[i] = RSSI; break;
case AV_2: actual_t[i] = (actual_t[i] + RSSI) / 2.0; break;
case AV_4: actual_t[i] = (actual_t[i]*3 + RSSI) / 4.0; break;
case AV_8: actual_t[i] = (actual_t[i]*7 + RSSI) / 8.0; break;
}
continue; // Skip all other processing
}
if (settingSpur == -1) // Second pass
RSSI = ( RSSI < temp_t[i] ? RSSI : temp_t[i]); // Minimum of two passes
temp_t[i] = RSSI;
if (settingSubtractStorage) {
RSSI = RSSI - stored_t[i] ;
}
// stored_t[i] = (SI4432_Read_Byte(0x69) & 0x0f) * 3.0 - 90.0; // Display the AGC value in thestored trace
if (scandirty || settingAverage == AV_OFF)
actual_t[i] = RSSI;
else {
switch(settingAverage) {
case AV_MIN: if (actual_t[i] > RSSI) actual_t[i] = RSSI; break;
case AV_MAX: if (actual_t[i] < RSSI) actual_t[i] = RSSI; break;
case AV_2: actual_t[i] = (actual_t[i] + RSSI) / 2.0; break;
case AV_4: actual_t[i] = (actual_t[i]*3 + RSSI) / 4.0; break;
case AV_8: actual_t[i] = (actual_t[i]*7 + RSSI) / 8.0; break;
}
if (frequencies[i] > 1000000) {
if (temppeakLevel < actual_t[i]) {
temppeakIndex = i;
temppeakLevel = actual_t[i];
}
}
if (frequencies[i] > 1000000) {
if (temppeakLevel < actual_t[i]) {
temppeakIndex = i;
temppeakLevel = actual_t[i];
}
}
if (i == sweep_points -1) {
if (settingSpur == 1) {
settingSpur = -1;
i = 0;
goto again;
}
if (scandirty) {
scandirty = false;
}
@ -767,6 +600,10 @@ again:
if (operation_requested && break_on_operation)
return false;
}
if (settingSpur == 1) {
settingSpur = -1;
goto again;
}
palSetPad(GPIOC, GPIOC_LED);
return true;
}
@ -854,13 +691,22 @@ void draw_cal_status(void)
// if (!sweep_enabled)
// perform(true, 0, frequencies[0], false);
ili9341_fill(x, y, OFFSETX, HEIGHT, 0x0000);
if (MODE_OUTPUT(settingMode)) // No cal status during output
return;
ili9341_set_background(DEFAULT_BG_COLOR);
int yMax = (NGRIDY - get_trace_refpos(0)) * get_trace_scale(0);
plot_printf(buf, BLEN, "%ddB", yMax);
buf[5]=0;
ili9341_set_foreground(DEFAULT_FG_COLOR);
if (level_is_calibrated())
color = DEFAULT_FG_COLOR;
else
color = BRIGHT_COLOR_RED;
ili9341_set_foreground(color);
ili9341_drawstring(buf, x, y);
y += YSTEP*2;
@ -950,7 +796,11 @@ void draw_cal_status(void)
y = HEIGHT-7 + OFFSETY;
plot_printf(buf, BLEN, "%ddB", (int)(yMax - get_trace_scale(0) * NGRIDY));
buf[5]=0;
ili9341_set_foreground(DEFAULT_FG_COLOR);
if (level_is_calibrated())
color = DEFAULT_FG_COLOR;
else
color = BRIGHT_COLOR_RED;
ili9341_set_foreground(color);
ili9341_drawstring(buf, x, y);
}

@ -29,6 +29,7 @@ void SetSubtractStorage(void);
void toggle_waterfall(void);
void SetMode(int);
int GetMode(void);
void SetRefpos(int);
void AllDirty(void);
void MenuDirty(void);
void redrawHisto(void);
@ -177,6 +178,7 @@ extern const menuitem_t menu_lowoutputmode[];
extern const menuitem_t menu_highoutputmode[];
extern const menuitem_t menu_modulation[];
extern const menuitem_t menu_top[];
extern const menuitem_t menu_tophigh[];
static void menu_mode_cb(int item, uint8_t data)
{
@ -188,7 +190,7 @@ static void menu_mode_cb(int item, uint8_t data)
menu_push_submenu(menu_top);
break;
case 2:
menu_push_submenu(menu_top);
menu_push_submenu(menu_tophigh);
break;
case 3:
menu_push_submenu(menu_lowoutputmode);
@ -205,7 +207,7 @@ void menu_autosettings_cb(int item, uint8_t data)
{
(void)item;
(void)data;
SetMode(M_LOW);
SetMode(GetMode());
// set_sweep_frequency(ST_START, (int32_t) 0);
// set_sweep_frequency(ST_STOP, (int32_t) 300000000);
@ -428,16 +430,12 @@ static void menu_scale_cb(int item, uint8_t data)
{
(void)data;
int status;
int km = KM_REFPOS + item;
// if (km == KM_SCALE && trace[uistat.current_trace].type == TRC_DELAY) {
// km = KM_SCALEDELAY;
// }
status = btn_wait_release();
if (status & EVT_BUTTON_DOWN_LONG) {
ui_mode_numeric(km);
ui_mode_numeric(data);
// ui_process_numeric();
} else {
ui_mode_keypad(km);
ui_mode_keypad(data);
ui_process_keypad();
}
draw_cal_status();
@ -498,13 +496,12 @@ static void menu_settings_cb(int item, uint8_t data)
{
(void)data;
int status;
int km = KM_ACTUALPOWER+item;
status = btn_wait_release();
if (status & EVT_BUTTON_DOWN_LONG) {
ui_mode_numeric(km);
ui_mode_numeric(data);
// ui_process_numeric();
} else {
ui_mode_keypad(km);
ui_mode_keypad(data);
ui_process_keypad();
}
draw_cal_status();
@ -515,10 +512,10 @@ static void menu_settings2_cb(int item, uint8_t data)
(void)data;
switch(item) {
case 0:
settingAGC = !settingAGC;
ToggleAGC();
break;
case 1:
settingLNA = !settingLNA;
ToggleLNA();;
break;
case 2:
extraVFO = !extraVFO;
@ -687,16 +684,27 @@ static const menuitem_t menu_reffer[] = {
};
static const menuitem_t menu_scale[] = {
{ MT_CALLBACK, 0, "\2REF\0LEVEL", menu_scale_cb},
{ MT_SUBMENU, 0, "\2SCALE/\0DIV", menu_dBper},
{ MT_CALLBACK, 0, "ATTEN", menu_scale_cb},
{ MT_SUBMENU, 0, "AVERAGE", menu_average},
{ MT_CALLBACK, 0, "\2SPUR\0REDUCT.",menu_spur_cb},
{ MT_SUBMENU, 0, "RBW", menu_rbw},
{ MT_CALLBACK, KM_REFPOS, "\2REF\0LEVEL", menu_scale_cb},
{ MT_SUBMENU, 0, "\2SCALE/\0DIV", menu_dBper},
{ MT_CALLBACK, KM_ATTENUATION, "ATTEN", menu_scale_cb},
{ MT_SUBMENU, 0, "AVERAGE", menu_average},
{ MT_CALLBACK, 0, "\2SPUR\0REDUCT.",menu_spur_cb},
{ MT_SUBMENU, 0, "RBW", menu_rbw},
{ MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
static const menuitem_t menu_scalehigh[] = {
{ MT_CALLBACK, KM_REFPOS, "\2REF\0LEVEL", menu_scale_cb},
{ MT_SUBMENU, 0, "\2SCALE/\0DIV", menu_dBper},
{ MT_SUBMENU, 0, "AVERAGE", menu_average},
{ MT_SUBMENU, 0, "RBW", menu_rbw},
{ MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
static const menuitem_t menu_stimulus[] = {
{ MT_CALLBACK, 0, "START", menu_stimulus_cb},
{ MT_CALLBACK, 0, "STOP", menu_stimulus_cb},
@ -740,14 +748,13 @@ static const menuitem_t menu_marker[] = {
};
static const menuitem_t menu_dfu[] = {
{ MT_CALLBACK, 0, "ENTER DFU", menu_dfu_cb},
{ MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_FORM | MT_CALLBACK, 0, "ENTER DFU", menu_dfu_cb},
{ MT_FORM | MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
static const menuitem_t menu_settings2[] =
{
// { MT_CALLBACK, 0, "TRACK", menu_settings2_cb},
{ MT_CALLBACK, 0, "AGC", menu_settings2_cb},
{ MT_CALLBACK, 0, "LNA", menu_settings2_cb},
{ MT_CALLBACK, 0, "BPF", menu_settings2_cb},
@ -757,36 +764,53 @@ static const menuitem_t menu_settings2[] =
static const menuitem_t menu_settings[] =
{
{ MT_CALLBACK, 0, "\2ACTUAL\0POWER", menu_settings_cb},
{ MT_CALLBACK, 0, "\2IF\0FREQ", menu_settings_cb},
{ MT_CALLBACK, 0, "\2SAMPLE\0TIME", menu_settings_cb},
{ MT_CALLBACK, 0, "\2LO\0DRIVE", menu_settings_cb},
{ MT_SUBMENU, 0, S_RARROW" MORE", menu_settings2},
{ MT_CALLBACK, KM_ACTUALPOWER, "\2ACTUAL\0POWER", menu_settings_cb},
{ MT_CALLBACK, KM_IF, "\2IF\0FREQ", menu_settings_cb},
{ MT_CALLBACK, KM_SAMPLETIME, "\2SAMPLE\0TIME", menu_settings_cb},
{ MT_CALLBACK, KM_DRIVE, "\2LO\0DRIVE", menu_settings_cb},
{ MT_SUBMENU, 0, S_RARROW" MORE", menu_settings2},
{ MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
// { MT_SUBMENU, 0, "RBW", menu_rbw},
static const menuitem_t menu_settingshigh2[] =
{
{ MT_CALLBACK, 0, "AGC", menu_settings2_cb},
{ MT_CALLBACK, 0, "LNA", menu_settings2_cb},
{ MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
static const menuitem_t menu_settingshigh[] =
{
{ MT_CALLBACK, KM_ACTUALPOWER, "\2ACTUAL\0POWER", menu_settings_cb},
{ MT_CALLBACK, KM_SAMPLETIME, "\2SAMPLE\0TIME", menu_settings_cb},
{ MT_SUBMENU, 0, S_RARROW" MORE", menu_settingshigh2},
{ MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
static const menuitem_t menu_config[] = {
{ MT_CALLBACK, 0, "\2TOUCH\0CAL", menu_config_cb},
{ MT_CALLBACK, 0, "\2TOUCH\0TEST", menu_config_cb},
{ MT_CALLBACK, 0, "\2SELF\0TEST", menu_config_cb},
{ MT_CALLBACK, 0, "VERSION", menu_config_cb},
{ MT_SUBMENU, 0, "SETTINGS", menu_settings},
{ MT_FORM | MT_CALLBACK, 0, "TOUCH CAL", menu_config_cb},
{ MT_FORM | MT_CALLBACK, 0, "TOUCH TEST", menu_config_cb},
{ MT_FORM | MT_CALLBACK, 0, "SELF TEST", menu_config_cb},
{ MT_FORM | MT_CALLBACK, 0, "VERSION", menu_config_cb},
// { MT_SUBMENU, 0, "SETTINGS", menu_settings},
// { MT_SUBMENU, 0, "RBW", menu_rbw},
{ MT_SUBMENU, 0, S_RARROW"DFU", menu_dfu},
{ MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_FORM | MT_SUBMENU, 0, S_RARROW"DFU", menu_dfu},
{ MT_FORM | MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
static const menuitem_t menu_mode[] = {
{ MT_FORM | MT_TITLE, 0, "MODE", NULL},
{ MT_FORM | MT_CALLBACK, 0, "LOW INPUT", menu_mode_cb},
{ MT_FORM | MT_CALLBACK, 0, "HIGH INPUT",menu_mode_cb},
{ MT_FORM | MT_CALLBACK, 0, "LOW OUTPUT", menu_mode_cb},
{ MT_FORM | MT_CALLBACK, 0, "HIGH OUTPUT",menu_mode_cb},
{ MT_FORM | MT_SUBMENU, 0, "CAL OUTPUT: %s",menu_reffer},
{ MT_FORM | MT_TITLE, 0, "MODE", NULL},
{ MT_FORM | MT_CALLBACK, 0, "LOW INPUT", menu_mode_cb},
{ MT_FORM | MT_CALLBACK, 0, "HIGH INPUT", menu_mode_cb},
{ MT_FORM | MT_CALLBACK, 0, "LOW OUTPUT", menu_mode_cb},
{ MT_FORM | MT_CALLBACK, 0, "HIGH OUTPUT", menu_mode_cb},
{ MT_FORM | MT_SUBMENU, 0, "CAL OUTPUT: %s", menu_reffer},
{ MT_FORM | MT_SUBMENU, 0, "CONFIG", menu_config},
// { MT_CANCEL, 0, S_LARROW" BACK", NULL },
{ MT_NONE, 0, NULL, NULL } // sentinel
};
@ -797,7 +821,19 @@ const menuitem_t menu_top[] = {
{ MT_SUBMENU, 0, "MARKER", menu_marker},
{ MT_SUBMENU, 0, "DISPLAY", menu_scale},
{ MT_SUBMENU, 0, "STORAGE", menu_storage},
{ MT_SUBMENU, 0, "CONFIG", menu_config},
{ MT_SUBMENU, 0, "SETTINGS", menu_settings},
{ MT_CANCEL, 0, S_LARROW" MODE",NULL},
{ MT_NONE, 0, NULL, NULL } // sentinel,
// MENUITEM_CLOSE,
};
const menuitem_t menu_tophigh[] = {
{ MT_CALLBACK, 0, "AUTO", menu_autosettings_cb},
{ MT_SUBMENU, 0, "SCAN", menu_stimulus},
{ MT_SUBMENU, 0, "MARKER", menu_marker},
{ MT_SUBMENU, 0, "DISPLAY", menu_scalehigh},
{ MT_SUBMENU, 0, "STORAGE", menu_storage},
{ MT_SUBMENU, 0, "SETTINGS", menu_settingshigh},
{ MT_CANCEL, 0, S_LARROW" MODE",NULL},
{ MT_NONE, 0, NULL, NULL } // sentinel,
// MENUITEM_CLOSE,
@ -884,7 +920,7 @@ static void menu_item_modify_attribute(
*bg = DEFAULT_MENU_TEXT_COLOR;
*fg = config.menu_normal_color;
}
} else if (menu == menu_settings2) {
} else if (menu == menu_settings2 || menu == menu_settingshigh2) {
if (item ==0 && settingAGC){
*bg = DEFAULT_MENU_TEXT_COLOR;
*fg = config.menu_normal_color;
@ -893,7 +929,7 @@ static void menu_item_modify_attribute(
*bg = DEFAULT_MENU_TEXT_COLOR;
*fg = config.menu_normal_color;
}
if (item == 2 && extraVFO){
if (item == 2 && extraVFO){ // should not happen in high mode
*bg = DEFAULT_MENU_TEXT_COLOR;
*fg = config.menu_normal_color;
}
@ -1041,9 +1077,7 @@ set_numeric_value(void)
set_trace_scale(2, uistat.value / 1000.0);
break;
case KM_REFPOS:
set_trace_refpos(0, NGRIDY - uistat.value / get_trace_scale(0));
set_trace_refpos(1, NGRIDY - uistat.value / get_trace_scale(0));
set_trace_refpos(2, NGRIDY - uistat.value / get_trace_scale(0));
SetRefpos(uistat.value);
break;
case KM_ATTENUATION:
SetAttenuation(uistat.value);

Loading…
Cancel
Save

Powered by TurnKey Linux.