Auto center mode added

master
erikkaashoek 5 years ago
parent c4d49354ce
commit 915038233f

@ -898,6 +898,7 @@ typedef struct uistat {
uint8_t marker_delta; uint8_t marker_delta;
uint8_t marker_noise; uint8_t marker_noise;
uint8_t marker_tracking; uint8_t marker_tracking;
uint8_t auto_center_marker;
char text[20]; char text[20];
} uistat_t; } uistat_t;

@ -2281,7 +2281,7 @@ sweep_again: // stay in sweep loop when output mo
if (actual_max_level < - 40) if (actual_max_level < - 40)
signal_is_AM = false; signal_is_AM = false;
} else { } else {
if (AGC_flip_count > 20 && actual_max_level >= - 40) if (AGC_flip_count > 20 && actual_max_level >= - 40 && S_IS_AUTO(setting.agc))
signal_is_AM = true; signal_is_AM = true;
} }
if (signal_is_AM) { // if log mode and AM signal if (signal_is_AM) { // if log mode and AM signal

15
ui.c

@ -32,6 +32,7 @@ uistat_t uistat = {
marker_delta: FALSE, marker_delta: FALSE,
marker_noise: FALSE, marker_noise: FALSE,
marker_tracking : FALSE, marker_tracking : FALSE,
auto_center_marker : FALSE,
text : "", text : "",
}; };
@ -767,6 +768,10 @@ static UI_FUNCTION_CALLBACK(menu_marker_op_cb)
case 1: /* MARKER->STOP */ case 1: /* MARKER->STOP */
case 2: /* MARKER->CENTER */ case 2: /* MARKER->CENTER */
set_sweep_frequency(data, freq); set_sweep_frequency(data, freq);
if (data == 2) {
uistat.lever_mode = LM_SPAN;
uistat.auto_center_marker = true;
}
break; break;
case 3: /* MARKERS->SPAN */ case 3: /* MARKERS->SPAN */
{ {
@ -1275,6 +1280,7 @@ menu_invoke(int item)
break; break;
case MT_CALLBACK: { case MT_CALLBACK: {
uistat.auto_center_marker = false;
menuaction_cb_t cb = (menuaction_cb_t)menu->reference; menuaction_cb_t cb = (menuaction_cb_t)menu->reference;
if (cb) (*cb)(item, menu->data); if (cb) (*cb)(item, menu->data);
// if (!(menu->type & MT_FORM)) // if (!(menu->type & MT_FORM))
@ -1282,6 +1288,7 @@ menu_invoke(int item)
break; break;
} }
case MT_ADV_CALLBACK: { case MT_ADV_CALLBACK: {
uistat.auto_center_marker = false;
menuaction_acb_t cb = (menuaction_acb_t)menu->reference; menuaction_acb_t cb = (menuaction_acb_t)menu->reference;
if (cb) (*cb)(item, menu->data, NULL); if (cb) (*cb)(item, menu->data, NULL);
// if (!(menu->type & MT_FORM)) // if (!(menu->type & MT_FORM))
@ -1293,6 +1300,7 @@ menu_invoke(int item)
break; break;
case MT_KEYPAD: case MT_KEYPAD:
uistat.auto_center_marker = false;
if (menu->type & MT_FORM) { if (menu->type & MT_FORM) {
area_width = AREA_WIDTH_NORMAL - MENU_BUTTON_WIDTH; area_width = AREA_WIDTH_NORMAL - MENU_BUTTON_WIDTH;
redraw_frame(); // Remove form numbers redraw_frame(); // Remove form numbers
@ -2136,6 +2144,11 @@ static void
lever_zoom_span(int status) lever_zoom_span(int status)
{ {
uint32_t span = get_sweep_frequency(ST_SPAN); uint32_t span = get_sweep_frequency(ST_SPAN);
if (uistat.auto_center_marker) {
uint32_t freq = get_marker_frequency(active_marker);
if (freq != 0)
set_sweep_frequency(ST_CENTER, freq);
}
if (status & EVT_UP) { if (status & EVT_UP) {
span = step_round(span - 1); span = step_round(span - 1);
} else if (status & EVT_DOWN) { } else if (status & EVT_DOWN) {
@ -2198,7 +2211,7 @@ ui_process_normal(void)
if (status & EVT_BUTTON_SINGLE_CLICK) { if (status & EVT_BUTTON_SINGLE_CLICK) {
ui_mode_menu(); ui_mode_menu();
} else { } else {
switch (uistat.lever_mode) { switch (uistat.lever_mode) {
case LM_MARKER: lever_move_marker(status); break; case LM_MARKER: lever_move_marker(status); break;
case LM_SEARCH: lever_search_marker(status); break; case LM_SEARCH: lever_search_marker(status); break;
case LM_CENTER: case LM_CENTER:

Loading…
Cancel
Save

Powered by TurnKey Linux.