Trigger with beep

pwm
erikkaashoek 3 years ago
parent 7ea9d1ec99
commit d291f63b25

@ -89,6 +89,7 @@
#endif
#ifdef TINYSA4
#define __GUARD__
#define __BEEP__
#define __MCU_CLOCK_SHIFT__
#define __ULTRA__
#define __USE_RTC__ // Enable RTC clock
@ -1195,6 +1196,9 @@ typedef struct setting
uint8_t trigger; // enum
uint8_t trigger_mode; // enum
uint8_t trigger_direction; // enum
#ifdef __BEEP__
uint8_t trigger_beep;
#endif
uint8_t step_delay_mode; // enum
uint8_t waterfall; // enum
#ifdef __LEVEL_METER__
@ -1767,7 +1771,7 @@ enum {
#define MEASUREMENT_TEXT "OFF","IMD","OIP3","PN","SNR","PASS","LIN","AM","FM","THD","CP","NF T","NF S","NF V","NF A","GUARD","DECONF"
enum {
T_AUTO, T_NORMAL, T_SINGLE, T_DONE, T_UP, T_DOWN, T_MODE, T_PRE, T_POST, T_MID
T_AUTO, T_NORMAL, T_SINGLE, T_DONE, T_UP, T_DOWN, T_MODE, T_PRE, T_POST, T_MID, T_BEEP,
};
//!!! Warning can show not correct results on CH_CFG_ST_FREQUENCY not round by 1000 or > 1000000UL

@ -4906,7 +4906,13 @@ static bool sweep(bool break_on_operation)
set_audio_mode(A_DAC);
}
#endif
#ifdef __BEEP__
if (setting.trigger_beep && setting.trigger != T_AUTO) {
set_audio_mode(A_PWM); pwm_stop();
}
else
set_audio_mode(A_DAC);
#endif
setting.measure_sweep_time_us = 0; // start measure sweep time
// start_of_sweep_timestamp = chVTGetSystemTimeX(); // Will be set in perform
@ -5239,6 +5245,13 @@ static volatile int dummy;
if (setting.measurement == M_GUARD && RSSI > setting.guards[current_guard].level) {
pwm_start(4000);
}
#endif
#ifdef __BEEP__
if (setting.trigger != T_AUTO && setting.frequency_step > 0) { // Trigger active
if (setting.trigger_beep && RSSI >= setting.trigger_level) {
pwm_start(4000);
}
}
#endif
for (int t=0; t<TRACES_MAX;t++) { // Calculate all traces
if (setting.stored[t])

15
ui.c

@ -3429,6 +3429,10 @@ static UI_FUNCTION_ADV_CALLBACK(menu_trigger_acb)
b->param_1.text = mode_text[setting.trigger_mode - T_PRE];
} else if (data == T_UP || data == T_DOWN)
b->icon = setting.trigger_direction == data ? BUTTON_ICON_GROUP_CHECKED : BUTTON_ICON_GROUP;
#ifdef __BEEP__
else if (data == T_BEEP)
b->icon = setting.trigger_beep ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
#endif
else
b->icon = setting.trigger == data ? BUTTON_ICON_GROUP_CHECKED : BUTTON_ICON_GROUP;
return;
@ -3438,7 +3442,11 @@ static UI_FUNCTION_ADV_CALLBACK(menu_trigger_acb)
if (setting.trigger_mode > T_MID)
setting.trigger_mode = T_PRE;
set_trigger(setting.trigger_mode);
} else if (data != T_DONE) {
#ifdef __BEEP__
} else if (data == T_BEEP) {
setting.trigger_beep = !setting.trigger_beep;
#endif
} else if (data != T_DONE) {
set_trigger(data);
// menu_move_back(false);
ui_mode_normal();
@ -4720,8 +4728,11 @@ static const menuitem_t menu_trigger[] = {
{ MT_KEYPAD, KM_TRIGGER, "TRIGGER LEV\n\b%s", NULL},
{ MT_ADV_CALLBACK, T_UP, "UP\nEDGE", menu_trigger_acb},
{ MT_ADV_CALLBACK, T_DOWN, "DOWN\nEDGE", menu_trigger_acb},
{ MT_ADV_CALLBACK, T_MODE, "%s\nTRIGGER", menu_trigger_acb},
{ MT_ADV_CALLBACK, T_MODE, "TRIGGER\n\b%s", menu_trigger_acb},
{ MT_KEYPAD, KM_TRIGGER_GRID, "INTERVAL\n\b%ss", NULL},
#ifdef __BEEP__
{ MT_ADV_CALLBACK, T_BEEP, "BEEP", menu_trigger_acb},
#endif
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back
};

Loading…
Cancel
Save

Powered by TurnKey Linux.