linoobs 2022-05-06 22:14:25 +02:00
rodzic 2ecead9c38
commit f315591551
51 zmienionych plików z 36931 dodań i 37133 usunięć

Wyświetl plik

@ -501,14 +501,14 @@ arm_biquad_cascade_df2T_instance_f32 IIR_TX_LPF_I;
arm_biquad_cascade_df2T_instance_f32 IIR_RX_HPF_I;
arm_biquad_cascade_df2T_instance_f32 IIR_TX_HPF_I;
arm_biquad_cascade_df2T_instance_f32 IIR_RX_Squelch_HPF;
arm_biquad_cascade_df2T_instance_f32 EQ_RX_LOW_FILTER = {EQ_STAGES, EQ_RX_LOW_FILTER_State, EQ_RX_LOW_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 EQ_RX_MID_FILTER = {EQ_STAGES, EQ_RX_MID_FILTER_State, EQ_RX_MID_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 EQ_RX_HIG_FILTER = {EQ_STAGES, EQ_RX_HIG_FILTER_State, EQ_RX_HIG_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 EQ_RX_LOW_FILTER = {EQ_STAGES, EQ_RX_LOW_FILTER_State, EQ_RX_LOW_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 EQ_RX_MID_FILTER = {EQ_STAGES, EQ_RX_MID_FILTER_State, EQ_RX_MID_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 EQ_RX_HIG_FILTER = {EQ_STAGES, EQ_RX_HIG_FILTER_State, EQ_RX_HIG_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 EQ_MIC_LOW_FILTER = {EQ_STAGES, EQ_MIC_LOW_FILTER_State, EQ_MIC_LOW_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 EQ_MIC_MID_FILTER = {EQ_STAGES, EQ_MIC_MID_FILTER_State, EQ_MIC_MID_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 EQ_MIC_HIG_FILTER = {EQ_STAGES, EQ_MIC_HIG_FILTER_State, EQ_MIC_HIG_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 AGC_RX_KW_HSHELF_FILTER = {EQ_STAGES, AGC_RX_KW_HSHELF_FILTER_State, AGC_RX_KW_HSHELF_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 AGC_RX_KW_HPASS_FILTER = {EQ_STAGES, AGC_RX_KW_HPASS_FILTER_State, AGC_RX_KW_HPASS_FILTER_Coeffs};
arm_biquad_cascade_df2T_instance_f32 AGC_RX_KW_HPASS_FILTER = {EQ_STAGES, AGC_RX_KW_HPASS_FILTER_State, AGC_RX_KW_HPASS_FILTER_Coeffs};
volatile bool NeedReinitNotch = false; // need to re-initialize the manual Notch filter
volatile bool NeedReinitAudioFilters = false; // need to re-initialize Audio filters
volatile bool NeedReinitAudioFiltersClean = false; //also clean state
@ -524,12 +524,12 @@ void InitAudioFilters(void)
arm_fir_init_f32(&FIR_RX_Hilbert_I, IQ_HILBERT_TAPS_RX, (float32_t *)&FIR_HILB_I_coeffs_rx, (float32_t *)&Fir_RX_Hilbert_State_I[0], AUDIO_BUFFER_HALF_SIZE);
arm_fir_init_f32(&FIR_RX_Hilbert_Q, IQ_HILBERT_TAPS_RX, (float32_t *)&FIR_HILB_Q_coeffs_rx, (float32_t *)&Fir_RX_Hilbert_State_Q[0], AUDIO_BUFFER_HALF_SIZE);
arm_fir_init_f32(&FIR_TX_Hilbert_I, IQ_HILBERT_TAPS_RX, (float32_t *)&FIR_HILB_I_coeffs_rx, (float32_t *)&Fir_Tx_Hilbert_State_I[0], AUDIO_BUFFER_HALF_SIZE);
arm_fir_init_f32(&FIR_TX_Hilbert_Q, IQ_HILBERT_TAPS_RX, (float32_t *)&FIR_HILB_Q_coeffs_rx, (float32_t *)&Fir_Tx_Hilbert_State_Q[0], AUDIO_BUFFER_HALF_SIZE);
arm_fir_init_f32(&FIR_TX_Hilbert_I, IQ_HILBERT_TAPS_TX, (float32_t *)&FIR_HILB_I_coeffs_tx, (float32_t *)&Fir_Tx_Hilbert_State_I[0], AUDIO_BUFFER_HALF_SIZE);
arm_fir_init_f32(&FIR_TX_Hilbert_Q, IQ_HILBERT_TAPS_TX, (float32_t *)&FIR_HILB_Q_coeffs_tx, (float32_t *)&Fir_Tx_Hilbert_State_Q[0], AUDIO_BUFFER_HALF_SIZE);
//AGC K-Weight LKFS BS.1770
calcBiquad(BIQUAD_highShelf, 1500, TRX_SAMPLERATE, 1.0f / sqrtf(2), 4.0f, AGC_RX_KW_HSHELF_FILTER_Coeffs);
calcBiquad(BIQUAD_highpass, 38, TRX_SAMPLERATE, 0.5f, 0.0f, AGC_RX_KW_HPASS_FILTER_Coeffs);
calcBiquad(BIQUAD_highpass, 38, TRX_SAMPLERATE, 0.5f, 0.0f, AGC_RX_KW_HPASS_FILTER_Coeffs);
//Other
InitAutoNotchReduction();
@ -574,12 +574,12 @@ void ReinitAudioFilters(void)
arm_biquad_cascade_df2T_initNoClean_f32(&IIR_RX_Squelch_HPF, fm_sql_hpf_filter->stages, (float32_t *)fm_sql_hpf_filter->coeffs, (float32_t *)&IIR_RX_HPF_SQL_State[0]);
//RX Equalizer
calcBiquad(BIQUAD_peak, 400, TRX_SAMPLERATE, 0.5f, TRX.RX_EQ_LOW, EQ_RX_LOW_FILTER_Coeffs);
calcBiquad(BIQUAD_peak, 400, TRX_SAMPLERATE, 0.5f, TRX.RX_EQ_LOW, EQ_RX_LOW_FILTER_Coeffs);
calcBiquad(BIQUAD_peak, 1000, TRX_SAMPLERATE, 1.0f, TRX.RX_EQ_MID, EQ_RX_MID_FILTER_Coeffs);
calcBiquad(BIQUAD_peak, 2000, TRX_SAMPLERATE, 1.5f, TRX.RX_EQ_HIG, EQ_RX_HIG_FILTER_Coeffs);
//MIC Equalizer
calcBiquad(BIQUAD_peak, 400, TRX_SAMPLERATE, 0.5f, TRX.MIC_EQ_LOW, EQ_MIC_LOW_FILTER_Coeffs);
calcBiquad(BIQUAD_peak, 400, TRX_SAMPLERATE, 0.5f, TRX.MIC_EQ_LOW, EQ_MIC_LOW_FILTER_Coeffs);
calcBiquad(BIQUAD_peak, 1000, TRX_SAMPLERATE, 1.0f, TRX.MIC_EQ_MID, EQ_MIC_MID_FILTER_Coeffs);
calcBiquad(BIQUAD_peak, 2000, TRX_SAMPLERATE, 1.5f, TRX.MIC_EQ_HIG, EQ_MIC_HIG_FILTER_Coeffs);

Wyświetl plik

@ -10,6 +10,7 @@ typedef const struct
const uint16_t BUTTON_TEXT;
const uint16_t BUTTON_INACTIVE_TEXT;
const uint16_t BUTTON_BACKGROUND;
const uint16_t BUTTON_EDGING;
const uint16_t FREQ_MHZ;
const uint16_t FREQ_KHZ;
const uint16_t FREQ_HZ;
@ -66,117 +67,119 @@ static const STRUCT_COLOR_THEME COLOR_THEMES[2] = {
//0 - black
{
//3'2 inch
.BACKGROUND = COLOR_BLACK,
.FOREGROUND = COLOR_WHITE,
.BUTTON_TEXT = rgb888torgb565(32, 191, 17),
.BUTTON_INACTIVE_TEXT = rgb888torgb565(130, 130, 130),
.BUTTON_BACKGROUND = rgb888torgb565(54, 54, 54),
.FREQ_MHZ = COLOR_WHITE,
.FREQ_KHZ = COLOR_WHITE,
.FREQ_HZ = rgb888torgb565(150, 150, 150),
.STATUS_VFO = COLOR_BLACK,
.STATUS_SWR = COLOR_RED,
.STATUS_VFO_BG = COLOR_WHITE,
.STATUS_BAR_VOL = rgb888torgb565(0, 255, 255),
.STATUS_BAR_LEFT = rgb888torgb565(100, 100, 255),
.STATUS_BAR_RIGHT = rgb888torgb565(255, 100, 100),
.STATUS_BAR_LABELS = rgb888torgb565(32, 171, 17),
.STATUS_RX = COLOR_WHITE,
.STATUS_TX = COLOR_RED,
.STATUS_LABELS_BW = COLOR_WHITE,
.STATUS_LABELS_TX = rgb888torgb565(32, 171, 17),
.STATUS_LABEL_S_VAL = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_DBM = rgb888torgb565(32, 191, 17),
.STATUS_LABEL_BW = rgb888torgb565(0, 200, 255),
.STATUS_LABEL_RIT = COLOR_WHITE,
.STATUS_LABEL_VLT = rgb888torgb565(249, 205, 46),
.BACKGROUND = COLOR_BLACK,
.FOREGROUND = COLOR_WHITE,
.BUTTON_TEXT = rgb888torgb565(32, 191, 17),
.BUTTON_INACTIVE_TEXT = COLOR_WHITE,//rgb888torgb565(130, 130, 130),
.BUTTON_BACKGROUND = rgb888torgb565(15,15,15),
.BUTTON_EDGING = COLOR_RED,
.FREQ_MHZ = COLOR_WHITE,
.FREQ_KHZ = COLOR_WHITE,
.FREQ_HZ = rgb888torgb565(150, 150, 150),
.STATUS_VFO = COLOR_BLACK,
.STATUS_SWR = COLOR_RED,
.STATUS_VFO_BG = COLOR_WHITE,
.STATUS_BAR_VOL = rgb888torgb565(0, 255, 255),
.STATUS_BAR_LEFT = rgb888torgb565(100, 100, 255),
.STATUS_BAR_RIGHT = rgb888torgb565(248, 13, 13),
.STATUS_BAR_LABELS = rgb888torgb565(32, 171, 17),
.STATUS_RX = COLOR_WHITE,
.STATUS_TX = COLOR_RED,
.STATUS_LABELS_BW = COLOR_WHITE,
.STATUS_LABELS_TX = rgb888torgb565(32, 171, 17),
.STATUS_LABEL_S_VAL = rgb888torgb565(24, 205, 46),
.STATUS_LABEL_DBM = rgb888torgb565(32, 191, 17),
.STATUS_LABEL_BW = rgb888torgb565(0, 200, 255),
.STATUS_LABEL_RIT = COLOR_WHITE,
.STATUS_LABEL_VLT = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_PTT_SW1 = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_CPU = rgb888torgb565(255, 0, 0),
.STATUS_LABEL_PWM = rgb888torgb565(255, 0, 0),
.STATUS_LABEL_THERM = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_NOTCH = rgb888torgb565(0, 200, 255),
.STATUS_SMETER = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_CPU = rgb888torgb565(255, 0, 0),
.STATUS_LABEL_PWM = rgb888torgb565(255, 0, 0),
.STATUS_LABEL_THERM = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_NOTCH = rgb888torgb565(0, 200, 255),
.STATUS_SMETER = rgb888torgb565(249, 205, 46),
.STATUS_SMETER_STRIPE = COLOR_RED,
.STATUS_SMETER_PEAK = rgb888torgb565(249, 151, 46),
.STATUS_MODE = rgb888torgb565(249, 205, 46),
.STATUS_ERR = COLOR_RED,
.BANDMAP_CW = rgb888torgb565(50, 50, 255),
.BANDMAP_SSB = rgb888torgb565(50, 237, 255),
.BANDMAP_DIGI = rgb888torgb565(255, 50, 50),
.BANDMAP_AM = rgb888torgb565(219, 255, 50),
.BANDMAP_FM = rgb888torgb565(255, 50, 208),
.GREETINGS = rgb888torgb565(0, 92, 86),
.TOOLTIP_FORE = COLOR_WHITE,
.TOOLTIP_BACK = COLOR_BLACK,
.TOOLTIP_BORD = COLOR_WHITE,
.CLOCK = COLOR_WHITE,
.STATUS_SMETER_PEAK = rgb888torgb565(249, 151, 46),
.STATUS_MODE = rgb888torgb565(249, 205, 46),
.STATUS_ERR = COLOR_RED,
.BANDMAP_CW = rgb888torgb565(50, 50, 255),
.BANDMAP_SSB = rgb888torgb565(50, 237, 255),
.BANDMAP_DIGI = rgb888torgb565(255, 50, 50),
.BANDMAP_AM = rgb888torgb565(219, 255, 50),
.BANDMAP_FM = rgb888torgb565(255, 50, 208),
.GREETINGS = rgb888torgb565(0, 92, 86),
.TOOLTIP_FORE = COLOR_WHITE,
.TOOLTIP_BACK = COLOR_BLACK,
.TOOLTIP_BORD = COLOR_WHITE,
.CLOCK = COLOR_WHITE,
.FFT_GRADIENT_START_R = 0,
.FFT_GRADIENT_START_G = 11,
.FFT_GRADIENT_START_B = 40,
.FFT_GRADIENT_END_R = 46,
.FFT_GRADIENT_END_G = 77,
.FFT_GRADIENT_END_B = 158,
.WTF_BG_WHITE = false,
.FFT_GRADIENT_END_R = 46,
.FFT_GRADIENT_END_G = 77,
.FFT_GRADIENT_END_B = 158,
.WTF_BG_WHITE = false,
.BOTTOM_BUTTONS_COLOR = rgb888torgb565(249, 205, 46),
.BW_TRAPEZ_BORDER = rgb888torgb565(120, 120, 120),
.BW_TRAPEZ_STRIPE = rgb888torgb565(0, 200, 255),
.BW_TRAPEZ_FILL = rgb888torgb565(140, 140, 140),
.BW_TRAPEZ_BORDER = rgb888torgb565(120, 120, 120),
.BW_TRAPEZ_STRIPE = rgb888torgb565(0, 200, 255),
.BW_TRAPEZ_FILL = rgb888torgb565(140, 140, 140),
},
//1 - white
{
//3'2 inch
.BACKGROUND = COLOR_BLACK,
.FOREGROUND = COLOR_WHITE,
.BUTTON_TEXT = rgb888torgb565(50, 200, 0),//green
.BACKGROUND = COLOR_BLACK,
.FOREGROUND = COLOR_WHITE,
.BUTTON_TEXT = COLOR_GREEN, //rgb888torgb565(50, 200, 0),//green
.BUTTON_INACTIVE_TEXT = COLOR_WHITE,//rgb888torgb565(130, 130, 130),
.BUTTON_BACKGROUND = rgb888torgb565(15,15,15),//(54, 54, 54),//dark grey
.FREQ_MHZ = rgb888torgb565(10,253,0),//COLOR_WHITE,
.FREQ_KHZ = rgb888torgb565(10,253,0),//COLOR_WHITE,
.FREQ_HZ = rgb888torgb565(0,255,168),//rgb888torgb565(150, 150, 150),
.STATUS_VFO = COLOR_BLACK,
.STATUS_VFO_BG = COLOR_WHITE,
.STATUS_BAR_LEFT = rgb888torgb565(100, 100, 255),
.STATUS_BAR_RIGHT = rgb888torgb565(255, 100, 100),
.STATUS_BAR_LABELS = rgb888torgb565(32, 171, 17),
.STATUS_RX = COLOR_WHITE,
.STATUS_TX = COLOR_RED,
.STATUS_LABELS_BW = COLOR_WHITE,
.STATUS_LABELS_TX = rgb888torgb565(32, 171, 17),
.STATUS_LABEL_S_VAL = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_DBM = rgb888torgb565(32, 191, 17),
.STATUS_LABEL_BW = rgb888torgb565(0, 200, 255),
.STATUS_LABEL_RIT = COLOR_WHITE,
.STATUS_LABEL_VLT = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_CPU = rgb888torgb565(255, 0, 0),
.STATUS_LABEL_PWM = rgb888torgb565(255, 0, 0),
.STATUS_LABEL_THERM = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_NOTCH = rgb888torgb565(0, 200, 255),
.STATUS_SMETER = rgb888torgb565(249, 205, 46),
.BUTTON_BACKGROUND = rgb888torgb565(15,15,15),//(54, 54, 54),//dark grey
.BUTTON_EDGING = COLOR_RED,
.FREQ_MHZ = rgb888torgb565(10,253,0),//COLOR_WHITE,
.FREQ_KHZ = rgb888torgb565(10,253,0),//COLOR_WHITE,
.FREQ_HZ = rgb888torgb565(0,255,168),//rgb888torgb565(150, 150, 150),
.STATUS_VFO = COLOR_BLACK,
.STATUS_VFO_BG = COLOR_WHITE,
.STATUS_BAR_LEFT = rgb888torgb565(100, 100, 255),
.STATUS_BAR_RIGHT = rgb888torgb565(248, 13, 13),
.STATUS_BAR_LABELS = rgb888torgb565(32, 171, 17),
.STATUS_RX = COLOR_WHITE,
.STATUS_TX = COLOR_RED,
.STATUS_LABELS_BW = COLOR_WHITE,
.STATUS_LABELS_TX = rgb888torgb565(32, 171, 17),
.STATUS_LABEL_S_VAL = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_DBM = rgb888torgb565(32, 191, 17),
.STATUS_LABEL_BW = rgb888torgb565(0, 200, 255),
.STATUS_LABEL_RIT = COLOR_WHITE,
.STATUS_LABEL_VLT = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_CPU = rgb888torgb565(255, 0, 0),
.STATUS_LABEL_PWM = rgb888torgb565(255, 0, 0),
.STATUS_LABEL_THERM = rgb888torgb565(249, 205, 46),
.STATUS_LABEL_NOTCH = rgb888torgb565(0, 200, 255),
.STATUS_SMETER = rgb888torgb565(249, 205, 46),
.STATUS_SMETER_STRIPE = COLOR_RED,
.STATUS_SMETER_PEAK = rgb888torgb565(249, 151, 46),
.STATUS_MODE = rgb888torgb565(249, 205, 46),
.STATUS_ERR = COLOR_RED,
.BANDMAP_CW = rgb888torgb565(50, 50, 255),
.BANDMAP_SSB = rgb888torgb565(50, 237, 255),
.BANDMAP_DIGI = rgb888torgb565(255, 50, 50),
.BANDMAP_AM = rgb888torgb565(219, 255, 50),
.BANDMAP_FM = rgb888torgb565(255, 50, 208),
.GREETINGS = rgb888torgb565(0, 92, 86),
.TOOLTIP_FORE = COLOR_WHITE,
.TOOLTIP_BACK = COLOR_BLACK,
.TOOLTIP_BORD = COLOR_WHITE,
.CLOCK = COLOR_WHITE,
.STATUS_SMETER_PEAK = rgb888torgb565(249, 151, 46),
.STATUS_MODE = rgb888torgb565(249, 205, 46),
.STATUS_ERR = COLOR_RED,
.BANDMAP_CW = rgb888torgb565(50, 50, 255),
.BANDMAP_SSB = rgb888torgb565(50, 237, 255),
.BANDMAP_DIGI = rgb888torgb565(255, 50, 50),
.BANDMAP_AM = rgb888torgb565(219, 255, 50),
.BANDMAP_FM = rgb888torgb565(255, 50, 208),
.GREETINGS = rgb888torgb565(0, 92, 86),
.TOOLTIP_FORE = COLOR_WHITE,
.TOOLTIP_BACK = COLOR_BLACK,
.TOOLTIP_BORD = COLOR_WHITE,
.CLOCK = COLOR_WHITE,
.FFT_GRADIENT_START_R = 0,
.FFT_GRADIENT_START_G = 40,//11,
.FFT_GRADIENT_START_B = 0,//40,
.FFT_GRADIENT_END_R = 250,//46,
.FFT_GRADIENT_END_G = 22,//77,
.FFT_GRADIENT_END_B = 7,//158,
.WTF_BG_WHITE = false,
.FFT_GRADIENT_END_R = 250,//46,
.FFT_GRADIENT_END_G = 22,//77,
.FFT_GRADIENT_END_B = 7,//158,
.WTF_BG_WHITE = false,
.BOTTOM_BUTTONS_COLOR = rgb888torgb565(249, 205, 46),
.BW_TRAPEZ_BORDER = rgb888torgb565(120, 120, 120),
.BW_TRAPEZ_STRIPE = rgb888torgb565(0, 200, 255),
.BW_TRAPEZ_FILL = rgb888torgb565(140, 140, 140),
.BW_TRAPEZ_BORDER = rgb888torgb565(120, 120, 120),
.BW_TRAPEZ_STRIPE = rgb888torgb565(0, 200, 255),
.BW_TRAPEZ_FILL = rgb888torgb565(140, 140, 140),
},
};

Wyświetl plik

@ -27,8 +27,10 @@ static void FRONTPANEL_BUTTONHANDLER_STEP(void);
static void FRONTPANEL_BUTTONHANDLER_BANDMAP(void);
static void FRONTPANEL_BUTTONHANDLER_HIDDEN_ENABLE(void);
static void FRONTPANEL_BUTTONHANDLER_ATTHOLD(void);
static void SYSMENU_HANDL_TRX_AutoGain(int8_t direction);
void FRONTPANEL_BUTTONHANDLER_AGC(void);
static void FRONTPANEL_BUTTONHANDLER_AGC_SPEED(void);
void FRONTPANEL_BUTTONHANDLER_AUTGain(void);
void FRONTPANEL_BUTTONHANDLER_NOTCH(void);
void FRONTPANEL_BUTTONHANDLER_FAST(void);
void FRONTPANEL_BUTTONHANDLER_MUTE(void);
@ -61,54 +63,56 @@ static PERIPH_FrontPanel_Button PERIPH_FrontPanel_Static_Buttons[] = {
{.port = 1, .channel = 2, .name = "", .tres_min = 0, .tres_max = 1023, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = NULL, .holdHandler = NULL}, //not used
{.port = 1, .channel = 3, .name = "", .tres_min = 0, .tres_max = 1023, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = NULL, .holdHandler = NULL}, //not used
{.port = 1, .channel = 4, .name = "", .tres_min = 0, .tres_max = 1023, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = NULL, .holdHandler = NULL}, //not used
{.port = 1, .channel = 5, .name = "MODE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB6
{.port = 1, .channel = 5, .name = "BAND", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB1
{.port = 1, .channel = 7, .name = "MENU", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MENU, .holdHandler = FRONTPANEL_BUTTONHANDLER_MENU}, //SB1
{.port = 1, .channel = 5, .name = "MODE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB6
{.port = 1, .channel = 5, .name = "BAND", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB1
{.port = 1, .channel = 7, .name = "MENU", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MENU, .holdHandler = FRONTPANEL_BUTTONHANDLER_MENU}, //SB1
};
static PERIPH_FrontPanel_Button PERIPH_FrontPanel_BottomScroll_Buttons[BOTTOM_SCROLLBUTTONS_GROUPS_COUNT][5] = {
{
{.port = 1, .channel = 5, .name = "PRE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB2
{.port = 1, .channel = 6, .name = "ATT", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ATT, .holdHandler = FRONTPANEL_BUTTONHANDLER_ATTHOLD}, //SB3
{.port = 1, .channel = 6, .name = "BW", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW, .holdHandler = FRONTPANEL_BUTTONHANDLER_HPF}, //SB4
{.port = 1, .channel = 6, .name = "A/B", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AsB, .holdHandler = FRONTPANEL_BUTTONHANDLER_ArB}, //SB5
{.port = 1, .channel = 7, .name = "POWER", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER, .holdHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER}, //SB2
{.port = 1, .channel = 5, .name = "PRE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB2
{.port = 1, .channel = 6, .name = "ATT", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ATT, .holdHandler = FRONTPANEL_BUTTONHANDLER_ATTHOLD}, //SB3
{.port = 1, .channel = 6, .name = "BW", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW, .holdHandler = FRONTPANEL_BUTTONHANDLER_HPF}, //SB4
{.port = 1, .channel = 6, .name = "A/B", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AsB, .holdHandler = FRONTPANEL_BUTTONHANDLER_ArB}, //SB5
{.port = 1, .channel = 7, .name = "POWER", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER, .holdHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER}, //SB2
},
{
{.port = 1, .channel = 5, .name = "AGC", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AGC, .holdHandler = FRONTPANEL_BUTTONHANDLER_AGC_SPEED}, //SB2
{.port = 1, .channel = 6, .name = "ZOOM", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P}, //SB3
{.port = 1, .channel = 6, .name = "NOTCH", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_NOTCH, .holdHandler = FRONTPANEL_BUTTONHANDLER_NOTCH}, //SB4
{.port = 1, .channel = 6, .name = "FAST", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_FAST, .holdHandler = FRONTPANEL_BUTTONHANDLER_FAST}, //SB5
{.port = 1, .channel = 7, .name = "CLAR", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_CLAR, .holdHandler = FRONTPANEL_BUTTONHANDLER_CLAR}, //SB3
{.port = 1, .channel = 5, .name = "AGC", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AGC, .holdHandler = FRONTPANEL_BUTTONHANDLER_AGC_SPEED}, //SB2
{.port = 1, .channel = 6, .name = "ZOOM", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P}, //SB3
{.port = 1, .channel = 6, .name = "NOTCH", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_NOTCH, .holdHandler = FRONTPANEL_BUTTONHANDLER_NOTCH}, //SB4
{.port = 1, .channel = 6, .name = "FAST", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_FAST, .holdHandler = FRONTPANEL_BUTTONHANDLER_FAST}, //SB5
{.port = 1, .channel = 7, .name = "CLAR", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_CLAR, .holdHandler = FRONTPANEL_BUTTONHANDLER_CLAR}, //SB3
},
{
{.port = 1, .channel = 5, .name = "VOLUME", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_VOLUME, .holdHandler = FRONTPANEL_BUTTONHANDLER_VOLUME}, //SB2
{.port = 1, .channel = 6, .name = "BANDMAP", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BANDMAP, .holdHandler = FRONTPANEL_BUTTONHANDLER_BANDMAP}, //SB3
{.port = 1, .channel = 6, .name = "MUTE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MUTE, .holdHandler = FRONTPANEL_BUTTONHANDLER_MUTE}, //SB4
{.port = 1, .channel = 6, .name = "LOCK", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_LOCK, .holdHandler = FRONTPANEL_BUTTONHANDLER_LOCK}, //SB5
{.port = 1, .channel = 7, .name = "WPM", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_WPM, .holdHandler = FRONTPANEL_BUTTONHANDLER_WPM}, //SB4
{.port = 1, .channel = 5, .name = "GAIN", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_GAIN, .holdHandler = FRONTPANEL_BUTTONHANDLER_GAIN}, //SB2
{.port = 1, .channel = 6, .name = "BANDMAP", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BANDMAP, .holdHandler = FRONTPANEL_BUTTONHANDLER_BANDMAP}, //SB3
{.port = 1, .channel = 6, .name = "MUTE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MUTE, .holdHandler = FRONTPANEL_BUTTONHANDLER_MUTE}, //SB4
{.port = 1, .channel = 6, .name = "LOCK", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_LOCK, .holdHandler = FRONTPANEL_BUTTONHANDLER_LOCK}, //SB5
{.port = 1, .channel = 7, .name = "WPM", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_WPM, .holdHandler = FRONTPANEL_BUTTONHANDLER_WPM}, //SB4
},
{
{.port = 1, .channel = 5, .name = "BAND-", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB2
{.port = 1, .channel = 6, .name = "BAND+", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_P}, //SB3
{.port = 1, .channel = 6, .name = "MODE-", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_N}, //SB4
{.port = 1, .channel = 6, .name = "MODE+", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB5
{.port = 1, .channel = 7, .name = "KEYER", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_KEYER, .holdHandler = FRONTPANEL_BUTTONHANDLER_KEYER}, //SB5
{.port = 1, .channel = 5, .name = "BAND-", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB2
{.port = 1, .channel = 6, .name = "BAND+", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_P}, //SB3
{.port = 1, .channel = 6, .name = "MODE-", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_N}, //SB4
{.port = 1, .channel = 6, .name = "MODE+", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB5
{.port = 1, .channel = 7, .name = "KEYER", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_KEYER, .holdHandler = FRONTPANEL_BUTTONHANDLER_KEYER}, //SB5
},
{
{.port = 1, .channel = 5, .name = "BW-", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_BW_N}, //SB2
{.port = 1, .channel = 6, .name = "BW+", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BW_P}, //SB3
{.port = 1, .channel = 6, .name = "PWR-", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PWR_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_PWR_N}, //SB4
{.port = 1, .channel = 6, .name = "PWR+", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PWR_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_PWR_P}, //SB5
{.port = 1, .channel = 7, .name = "TUNE", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_TUNE, .holdHandler = FRONTPANEL_BUTTONHANDLER_TUNE}, //SB2
//{.port = 1, .channel = 7, .name = "ZOOM", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P}, //SB2
{.port = 1, .channel = 5, .name = "BW-", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_BW_N}, //SB2
{.port = 1, .channel = 6, .name = "BW+", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BW_P}, //SB3
{.port = 1, .channel = 6, .name = "PWR-", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PWR_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_PWR_N}, //SB4
{.port = 1, .channel = 6, .name = "PWR+", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PWR_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_PWR_P}, //SB5
{.port = 1, .channel = 7, .name = "TUNE", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_TUNE, .holdHandler = FRONTPANEL_BUTTONHANDLER_TUNE}, //SB2
//{.port = 1, .channel = 7, .name = "ZOOM", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P}, //SB2
},
{
{.port = 1, .channel = 5, .name = "MODE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB6
{.port = 1, .channel = 6, .name = "BAND", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB1
{.port = 1, .channel = 6, .name = "PRE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB2
{.port = 1, .channel = 6, .name = "A/B", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AsB, .holdHandler = FRONTPANEL_BUTTONHANDLER_ArB}, //SB5
{.port = 1, .channel = 7, .name = "POWER", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER, .holdHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER}, //SB2
// {.port = 1, .channel = 5, .name = "MODE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB6
// {.port = 1, .channel = 6, .name = "BAND", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB1
{.port = 1, .channel = 5, .name = "AUTGN", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_AUTGain, .holdHandler = FRONTPANEL_BUTTONHANDLER_AUTGain}, //SB6
{.port = 1, .channel = 6, .name = "AGC", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AGC, .holdHandler = FRONTPANEL_BUTTONHANDLER_AGC_SPEED}, //SB1
{.port = 1, .channel = 6, .name = "GAIN", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_GAIN, .holdHandler = FRONTPANEL_BUTTONHANDLER_GAIN}, //SB2
{.port = 1, .channel = 6, .name = "ATT", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ATT, .holdHandler = FRONTPANEL_BUTTONHANDLER_ATTHOLD}, //SB5
{.port = 1, .channel = 7, .name = "POWER", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER, .holdHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER}, //SB2
},
};
#else
@ -116,55 +120,55 @@ static PERIPH_FrontPanel_Button PERIPH_FrontPanel_Static_Buttons[] = {
{.port = 1, .channel = 0, .name = "", .tres_min = 0, .tres_max = 1023, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = NULL, .holdHandler = NULL}, //not used
{.port = 1, .channel = 1, .name = "", .tres_min = 0, .tres_max = 1023, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = NULL, .holdHandler = NULL}, //not used
{.port = 1, .channel = 2, .name = "", .tres_min = 0, .tres_max = 1023, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = NULL, .holdHandler = NULL}, //not used
{.port = 1, .channel = 7, .name = "PRE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB13
{.port = 1, .channel = 7, .name = "ATT", .tres_min = 700, .tres_max = 950, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ATT, .holdHandler = FRONTPANEL_BUTTONHANDLER_ATTHOLD}, //SB14
{.port = 1, .channel = 7, .name = "MODE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB6
{.port = 1, .channel = 7, .name = "BAND", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB1
{.port = 1, .channel = 6, .name = "MENU", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MENU, .holdHandler = FRONTPANEL_BUTTONHANDLER_MENU}, //SB1
{.port = 1, .channel = 7, .name = "PRE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB13
{.port = 1, .channel = 7, .name = "ATT", .tres_min = 700, .tres_max = 950, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ATT, .holdHandler = FRONTPANEL_BUTTONHANDLER_ATTHOLD}, //SB14
{.port = 1, .channel = 7, .name = "MODE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB6
{.port = 1, .channel = 7, .name = "BAND", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB1
{.port = 1, .channel = 6, .name = "MENU", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MENU, .holdHandler = FRONTPANEL_BUTTONHANDLER_MENU}, //SB1
};
static PERIPH_FrontPanel_Button PERIPH_FrontPanel_BottomScroll_Buttons[BOTTOM_SCROLLBUTTONS_GROUPS_COUNT][5] = {
{
{.port = 1, .channel = 5, .name = "PRE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB2
{.port = 1, .channel = 5, .name = "ATT", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ATT, .holdHandler = FRONTPANEL_BUTTONHANDLER_ATTHOLD}, //SB3
{.port = 1, .channel = 5, .name = "BW", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW, .holdHandler = FRONTPANEL_BUTTONHANDLER_HPF}, //SB4
{.port = 1, .channel = 6, .name = "A/B", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AsB, .holdHandler = FRONTPANEL_BUTTONHANDLER_ArB}, //SB5
{.port = 1, .channel = 6, .name = "POWER", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER, .holdHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER}, //SB2
{.port = 1, .channel = 5, .name = "PRE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB2
{.port = 1, .channel = 5, .name = "ATT", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_ATT, .holdHandler = FRONTPANEL_BUTTONHANDLER_ATTHOLD}, //SB3
{.port = 1, .channel = 5, .name = "BW", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW, .holdHandler = FRONTPANEL_BUTTONHANDLER_HPF}, //SB4
{.port = 1, .channel = 6, .name = "A/B", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AsB, .holdHandler = FRONTPANEL_BUTTONHANDLER_ArB}, //SB5
{.port = 1, .channel = 6, .name = "POWER", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER,.holdHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER}, //SB2
},
{
{.port = 1, .channel = 5, .name = "AGC", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AGC, .holdHandler = FRONTPANEL_BUTTONHANDLER_AGC_SPEED}, //SB2
{.port = 1, .channel = 5, .name = "ZOOM", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P}, //SB3
{.port = 1, .channel = 5, .name = "NOTCH", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_NOTCH, .holdHandler = FRONTPANEL_BUTTONHANDLER_NOTCH}, //SB4
{.port = 1, .channel = 6, .name = "FAST", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_FAST, .holdHandler = FRONTPANEL_BUTTONHANDLER_FAST}, //SB5
{.port = 1, .channel = 6, .name = "CLAR", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_CLAR, .holdHandler = FRONTPANEL_BUTTONHANDLER_CLAR}, //SB3
{.port = 1, .channel = 5, .name = "AGC", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AGC, .holdHandler = FRONTPANEL_BUTTONHANDLER_AGC_SPEED}, //SB2
{.port = 1, .channel = 5, .name = "ZOOM", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_ZOOM_P}, //SB3
{.port = 1, .channel = 5, .name = "NOTCH", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_NOTCH, .holdHandler = FRONTPANEL_BUTTONHANDLER_NOTCH}, //SB4
{.port = 1, .channel = 6, .name = "FAST", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_FAST, .holdHandler = FRONTPANEL_BUTTONHANDLER_FAST}, //SB5
{.port = 1, .channel = 6, .name = "CLAR", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_CLAR, .holdHandler = FRONTPANEL_BUTTONHANDLER_CLAR}, //SB3
},
{
{.port = 1, .channel = 5, .name = "VOLUME", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_VOLUME, .holdHandler = FRONTPANEL_BUTTONHANDLER_VOLUME}, //SB2
{.port = 1, .channel = 5, .name = "VOLUME", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_VOLUME, .holdHandler = FRONTPANEL_BUTTONHANDLER_VOLUME}, //SB2
{.port = 1, .channel = 5, .name = "BANDMAP", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BANDMAP, .holdHandler = FRONTPANEL_BUTTONHANDLER_BANDMAP}, //SB3
{.port = 1, .channel = 5, .name = "MUTE", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MUTE, .holdHandler = FRONTPANEL_BUTTONHANDLER_MUTE}, //SB4
{.port = 1, .channel = 6, .name = "LOCK", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_LOCK, .holdHandler = FRONTPANEL_BUTTONHANDLER_LOCK}, //SB5
{.port = 1, .channel = 6, .name = "WPM", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_WPM, .holdHandler = FRONTPANEL_BUTTONHANDLER_WPM}, //SB4
{.port = 1, .channel = 5, .name = "MUTE", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MUTE, .holdHandler = FRONTPANEL_BUTTONHANDLER_MUTE}, //SB4
{.port = 1, .channel = 6, .name = "LOCK", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_LOCK, .holdHandler = FRONTPANEL_BUTTONHANDLER_LOCK}, //SB5
{.port = 1, .channel = 6, .name = "WPM", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_WPM, .holdHandler = FRONTPANEL_BUTTONHANDLER_WPM}, //SB4
},
{
{.port = 1, .channel = 5, .name = "BAND-", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB2
{.port = 1, .channel = 5, .name = "BAND+", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_P}, //SB3
{.port = 1, .channel = 5, .name = "MODE-", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_N}, //SB4
{.port = 1, .channel = 6, .name = "MODE+", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB5
{.port = 1, .channel = 6, .name = "KEYER", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_KEYER, .holdHandler = FRONTPANEL_BUTTONHANDLER_KEYER}, //SB5
{.port = 1, .channel = 5, .name = "BAND-", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB2
{.port = 1, .channel = 5, .name = "BAND+", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_P}, //SB3
{.port = 1, .channel = 5, .name = "MODE-", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_N}, //SB4
{.port = 1, .channel = 6, .name = "MODE+", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB5
{.port = 1, .channel = 6, .name = "KEYER", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_KEYER, .holdHandler = FRONTPANEL_BUTTONHANDLER_KEYER}, //SB5
},
{
{.port = 1, .channel = 5, .name = "BW-", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_BW_N}, //SB2
{.port = 1, .channel = 5, .name = "BW+", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BW_P}, //SB3
{.port = 1, .channel = 5, .name = "PWR-", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PWR_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_PWR_N}, //SB4
{.port = 1, .channel = 6, .name = "PWR+", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PWR_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_PWR_P}, //SB5
{.port = 1, .channel = 6, .name = "TUNE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_TUNE, .holdHandler = FRONTPANEL_BUTTONHANDLER_TUNE}, //SB2
{.port = 1, .channel = 5, .name = "BW-", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_BW_N}, //SB2
{.port = 1, .channel = 5, .name = "BW+", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BW_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BW_P}, //SB3
{.port = 1, .channel = 5, .name = "PWR-", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PWR_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_PWR_N}, //SB4
{.port = 1, .channel = 6, .name = "PWR+", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PWR_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_PWR_P}, //SB5
{.port = 1, .channel = 6, .name = "TUNE", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_TUNE, .holdHandler = FRONTPANEL_BUTTONHANDLER_TUNE}, //SB2
},
{
{.port = 1, .channel = 5, .name = "MODE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB6
{.port = 1, .channel = 5, .name = "BAND", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB1
{.port = 1, .channel = 5, .name = "PRE", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB2
{.port = 1, .channel = 6, .name = "A/B", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AsB, .holdHandler = FRONTPANEL_BUTTONHANDLER_ArB}, //SB5
{.port = 1, .channel = 6, .name = "POWER", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER, .holdHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER}, //SB2
{.port = 1, .channel = 5, .name = "MODE", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_MODE_N, .holdHandler = FRONTPANEL_BUTTONHANDLER_MODE_P}, //SB6
{.port = 1, .channel = 5, .name = "BAND", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_BAND_P, .holdHandler = FRONTPANEL_BUTTONHANDLER_BAND_N}, //SB1
{.port = 1, .channel = 5, .name = "PRE", .tres_min = 10, .tres_max = 300, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_PRE, .holdHandler = FRONTPANEL_BUTTONHANDLER_PRE}, //SB2
{.port = 1, .channel = 6, .name = "A/B", .tres_min = 500, .tres_max = 700, .state = false, .prev_state = false, .work_in_menu = false, .clickHandler = FRONTPANEL_BUTTONHANDLER_AsB, .holdHandler = FRONTPANEL_BUTTONHANDLER_ArB}, //SB5
{.port = 1, .channel = 6, .name = "POWER", .tres_min = 300, .tres_max = 500, .state = false, .prev_state = false, .work_in_menu = true, .clickHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER,.holdHandler = FRONTPANEL_BUTTONHANDLER_RF_POWER}, //SB2
},
};
#endif
@ -325,6 +329,17 @@ static void FRONTPANEL_ENCODER_Rotated(float32_t direction) // rotated encoder,
if(fabsf(direction) <= ENCODER_MIN_RATE_ACCELERATION)
direction = (direction < 0.0f)? -1.0f : 1.0f;
if (TRX_IF_Gain)
{
TRX.IF_Gain += direction;
if (TRX.IF_Gain < 1)
TRX.IF_Gain = 1;
if (TRX.IF_Gain > 80)
TRX.IF_Gain = 80;
return;
}
if (TRX.ShiftEnabled)
{
@ -810,6 +825,7 @@ void FRONTPANEL_BUTTONHANDLER_BAND_P(void)
TRX.ATT_DB = TRX.BANDS_SAVED_SETTINGS[band].ATT_DB;
TRX.ADC_Driver = TRX.BANDS_SAVED_SETTINGS[band].ADC_Driver;
TRX.FM_SQL_threshold = TRX.BANDS_SAVED_SETTINGS[band].FM_SQL_threshold;
TRX.IF_Gain = TRX.BANDS_SAVED_SETTINGS[band].IF_Gain;
// TRX_AutoGain_Stage = TRX.BANDS_SAVED_SETTINGS[band].AutoGain_Stage;
CurrentVFO()->AGC = TRX.BANDS_SAVED_SETTINGS[band].AGC;
TRX_Temporary_Stop_BandMap = false;
@ -837,6 +853,7 @@ void FRONTPANEL_BUTTONHANDLER_BAND_N(void)
TRX.ATT_DB = TRX.BANDS_SAVED_SETTINGS[band].ATT_DB;
TRX.ADC_Driver = TRX.BANDS_SAVED_SETTINGS[band].ADC_Driver;
TRX.FM_SQL_threshold = TRX.BANDS_SAVED_SETTINGS[band].FM_SQL_threshold;
TRX.IF_Gain = TRX.BANDS_SAVED_SETTINGS[band].IF_Gain;
// TRX_AutoGain_Stage = TRX.BANDS_SAVED_SETTINGS[band].AutoGain_Stage;
CurrentVFO()->AGC = TRX.BANDS_SAVED_SETTINGS[band].AGC;
TRX_Temporary_Stop_BandMap = false;
@ -859,6 +876,45 @@ void FRONTPANEL_BUTTONHANDLER_RF_POWER(void)
LCD_redraw(false);
}
static void SYSMENU_HANDL_TRX_AutoGain(int8_t direction)
{
if (direction > 0)
TRX.AutoGain = true;
if (direction < 0)
TRX.AutoGain = false;
TRX.ATT = false;
FPGA_NeedSendParams = true;
LCD_UpdateQuery.TopButtons = true;
NeedSaveSettings = true;
}
void FRONTPANEL_BUTTONHANDLER_GAIN(void)
{
TRX_IF_Gain = !TRX_IF_Gain;
int8_t band = getBandFromFreq(CurrentVFO()->Freq, true);
if (band > 0)
{
TRX.BANDS_SAVED_SETTINGS[band].IF_Gain = TRX.IF_Gain;
}
LCD_UpdateQuery.TopButtons = true;
NeedSaveSettings = true;
}
void FRONTPANEL_BUTTONHANDLER_AUTGain(void)
{
TRX.AutoGain = !TRX.AutoGain;
if(TRX.AutoGain)
TRX.AutoGain = true;
else
TRX.AutoGain = false;
TRX.ATT = false;
FPGA_NeedSendParams = true;
LCD_UpdateQuery.TopButtons = true;
NeedSaveSettings = true;
}
void FRONTPANEL_BUTTONHANDLER_AGC(void)
{
CurrentVFO()->AGC = !CurrentVFO()->AGC;

Wyświetl plik

@ -37,6 +37,7 @@ extern void FRONTPANEL_BUTTONHANDLER_BW_P(void);
extern void FRONTPANEL_BUTTONHANDLER_MODE_P(void);
extern void FRONTPANEL_BUTTONHANDLER_MODE_N(void);
extern void FRONTPANEL_BUTTONHANDLER_PRE(void);
extern void FRONTPANEL_BUTTONHANDLER_GAIN(void);
extern void FRONTPANEL_BUTTONHANDLER_ATT(void);
extern void FRONTPANEL_BUTTONHANDLER_RF_POWER(void);
extern void FRONTPANEL_BUTTONHANDLER_VOLUME(void);

Wyświetl plik

@ -44,7 +44,7 @@ static uint32_t Tooltip_DiplayStartTime = 0;
static bool Tooltip_first_draw = true;
static char Tooltip_string[64] = {0};
static void printInfoSmall(uint16_t x, uint16_t y, uint16_t width, uint16_t height, char *text, uint16_t back_color, uint16_t text_color, uint16_t in_active_color, bool active);
static void printInfoSmall(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t button_color, char *text, uint16_t back_color, uint16_t text_color, uint16_t in_active_color, bool active);
static void printInfo(uint16_t x, uint16_t y, uint16_t width, uint16_t height, char *text, uint16_t back_color, uint16_t text_color, uint16_t in_active_color, bool active);
static void buttInfo(uint16_t x, uint16_t y, uint16_t width, uint16_t height, char *text, uint16_t back_colorWH, uint16_t back_colorL, uint16_t text_color, uint16_t in_active_color, bool active);
static void LCD_displayFreqInfo(bool redraw);
@ -644,57 +644,53 @@ static void LCD_displayStatusInfoBar(bool redraw)
LCDDriver_printTextFont("S", LAY_STATUS_VAL_X_OFFSET, LAY_STATUS_VAL_Y_OFFSET, COLOR->STATUS_RX, BG_COLOR, LAY_STATUS_TXRX_FONT);
}
//IF_GAIN
// if (TRX.IF_Gain) {
// sprintf(buff, "GAIN:%d",TRX.IF_Gain);
// printInfoSmall(100, 30, LAY_TOPBUTTONS_WIDTH, 15, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_RED, COLOR->BUTTON_INACTIVE_TEXT, TRX.Locked);
// }
//CLAR
if (TRX.CLAR == true) {
LCDDriver_Fill_RectWH(45, 159, 40, 11, COLOR_BLACK);//Ïîäëîæêà ïîä òåêñòîì CLAR COLOR_BLACK
sprintf(buff, "CLAR:ON");
addSymbols(buff, buff, 12, " ", true);
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_RIT_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_RIT_Y_OFFSET, COLOR->STATUS_LABEL_RIT, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
// LCDDriver_printText(buff, LAY_STATUS_LABEL_RIT_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_RIT_Y_OFFSET, COLOR->STATUS_LABEL_RIT, BG_COLOR, LAY_STATUS_LABEL_S_VAL_FONT);
printInfoSmall(LAY_STATUS_SMALL_CLAR_X, LAY_STATUS_SMALL_BAR_Y , LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_WHITE, COLOR->BUTTON_INACTIVE_TEXT, TRX.CLAR);
}
if (TRX.CLAR == false) {
sprintf(buff, "CLAR:OFF");
addSymbols(buff, buff, 12, " ", true);
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_RIT_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_RIT_Y_OFFSET, COLOR->STATUS_LABEL_RIT, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
// LCDDriver_printText(buff, LAY_STATUS_LABEL_RIT_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_RIT_Y_OFFSET, COLOR->STATUS_LABEL_RIT, BG_COLOR, LAY_STATUS_LABEL_S_VAL_FONT);
printInfoSmall(LAY_STATUS_SMALL_CLAR_X, LAY_STATUS_SMALL_BAR_Y, LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_WHITE, COLOR->BUTTON_INACTIVE_TEXT, false);
}
//RIT
//RIT-CPU
if (TRX.ShiftEnabled) {
LCDDriver_Fill_RectWH(325, 34, 50, 11, COLOR_BLACK);//Ïîäëîæêà ïîä òåêñòîì RIT COLOR_BLACK
LCDDriver_Fill_RectWH(300, 31, 65, 11, COLOR_BLACK);//Ïîäëîæêà ïîä òåêñòîì RIT COLOR_BLACK
sprintf(buff, "RIT: %d", TRX_SHIFT);
LCDDriver_printTextFont(buff, 300, 45, COLOR_RED, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
// LCDDriver_printText(buff, 300, 45, COLOR_RED, BG_COLOR, LAY_STATUS_LABELS_FONT_SIZE);
LCDDriver_printTextFont(buff, 300, 40, COLOR_RED, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
}
else {
LCDDriver_Fill_RectWH(300, 31, 75, 15, COLOR_BLACK);//Ïîäëîæêà ïîä òåêñòîì RIT COLOR_BLACK
LCDDriver_Fill_RectWH(300, 31, 65, 11, COLOR_BLACK);//Ïîäëîæêà ïîä òåêñòîì RIT COLOR_BLACK
sprintf(buff, "%.0f%%", CPU_LOAD.Load);
LCDDriver_printTextFont(buff, 330, 40, COLOR_ORANGE, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
}
//PWM
if (TRX_on_TX()){
LCDDriver_Fill_RectWH(35, 158, 40, 11, COLOR_BLACK);//Ïîäëîæêà ïîä òåêñòîì PWR COLOR_BLACK
sprintf(buff, "PWR:%d%% ", TRX.RF_Power);
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_PWM_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_PWM_Y_OFFSET, COLOR->STATUS_LABEL_VLT, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
printInfoSmall(LAY_STATUS_SMALL_CLAR_X, LAY_STATUS_SMALL_BAR_Y , LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_WHITE, COLOR->BUTTON_INACTIVE_TEXT, false);
}
//IN-OUT
if (TRX.InputType_MIC == true) {
sprintf(buff, "MIC:%d", TRX.MIC_GAIN);
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_IN_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_IN_Y_OFFSET, COLOR_RED, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
}
printInfoSmall(LAY_STATUS_SMALL_IN_X, LAY_STATUS_SMALL_BAR_Y, LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_WHITE, COLOR->BUTTON_INACTIVE_TEXT, false);
}
if (TRX.InputType_MIC == false) {
sprintf(buff, "USB");
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_IN_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_IN_Y_OFFSET, COLOR_RED, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
}
printInfoSmall(LAY_STATUS_SMALL_IN_X, LAY_STATUS_SMALL_BAR_Y, LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_WHITE, COLOR->BUTTON_INACTIVE_TEXT, true);
}
//VOLTAGE
sprintf(buff, "% 0.1f V ", TRX_InVoltage);
if(TRX_InVoltage < 10.0f) {
LCDDriver_Fill_RectWH(LAY_STATUS_LABEL_VLT_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_VLT_Y_OFFSET, 75, 15, COLOR_BLACK);
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_VLT_X_OFFSET + 9, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_VLT_Y_OFFSET, COLOR_RED, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
}
else
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_VLT_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_VLT_Y_OFFSET, COLOR->STATUS_LABEL_VLT, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
sprintf(buff, "% 0.1fV ", TRX_InVoltage);
printInfoSmall(LAY_STATUS_SMALL_VLT_X, LAY_STATUS_SMALL_BAR_Y, LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_RED, COLOR->BUTTON_INACTIVE_TEXT, false);
// //VOLTAGE PTT_SW1
@ -704,27 +700,25 @@ static void LCD_displayStatusInfoBar(bool redraw)
// sprintf(buff, "PTT_SW2:%.2f ", TRX_SW2_Voltage);
// LCDDriver_printTextFont(buff, 90, 57, COLOR_WHITE, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
//CPU-DSP
sprintf(buff, "CPU:%.0f ", CPU_LOAD.Load);
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_CPU_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_CPU_Y_OFFSET, COLOR->STATUS_LABEL_CPU, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
//GAIN
sprintf(buff, "GAIN:%d",TRX.IF_Gain); //buff, "%.0f%%", CPU_LOAD.Load
printInfoSmall(LAY_STATUS_SMALL_CPU_X, LAY_STATUS_SMALL_BAR_Y, LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_RED, COLOR->BUTTON_INACTIVE_TEXT, TRX_IF_Gain);
//NOTCH
LCDDriver_printTextFont("NOTCH", LAY_STATUS_LABEL_NOTCH_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_NOTCH_Y_OFFSET, (CurrentVFO()->AutoNotchFilter) ? COLOR->STATUS_LABEL_NOTCH : COLOR_WHITE, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
printInfoSmall(LAY_STATUS_SMALL_NOTCH_X, LAY_STATUS_SMALL_BAR_Y, LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, "NOTCH", COLOR->BUTTON_BACKGROUND, COLOR_RED, COLOR->BUTTON_INACTIVE_TEXT, (CurrentVFO()->AutoNotchFilter));
//FFT BW
if (TRX.FFT_Zoom == 1)
sprintf(buff, "FFT:48kHz");
sprintf(buff, "48kHz");
else if (TRX.FFT_Zoom == 2)
sprintf(buff, "FFT:24kHz");
sprintf(buff, "24kHz");
else if (TRX.FFT_Zoom == 4)
sprintf(buff, "FFT:12kHz");
sprintf(buff, "12kHz");
else if (TRX.FFT_Zoom == 8)
sprintf(buff, "FFT:6kHz ");
sprintf(buff, "6kHz ");
else if (TRX.FFT_Zoom == 16)
sprintf(buff, "FFT:3kHz ");
// LCDDriver_printText(buff, LAY_STATUS_LABEL_FFT_BW_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_FFT_BW_Y_OFFSET, COLOR->STATUS_LABELS_BW, BG_COLOR, LAY_STATUS_LABELS_FONT_SIZE);
LCDDriver_printTextFont(buff, LAY_STATUS_LABEL_FFT_BW_X_OFFSET, LAY_STATUS_Y_OFFSET + LAY_STATUS_LABEL_FFT_BW_Y_OFFSET, COLOR->STATUS_LABELS_BW, BG_COLOR, LAY_STATUS_LABEL_STROKA_FONT);
sprintf(buff, "3kHz ");
printInfoSmall(LAY_STATUS_SMALL_FFT_BW_X, LAY_STATUS_SMALL_BAR_Y, LAY_STATUS_BLOCK_WIDTH, LAY_STATUS_BLOCK_HEIGHT, COLOR->BUTTON_EDGING, buff, COLOR->BUTTON_BACKGROUND, COLOR_RED, COLOR->BUTTON_INACTIVE_TEXT, false);
//ERRORS LABELS
LCDDriver_Fill_RectWH(LAY_STATUS_ERR_OFFSET_X, LAY_STATUS_ERR_OFFSET_Y, LAY_STATUS_ERR_WIDTH, LAY_STATUS_ERR_HEIGHT, BG_COLOR);
if (TRX_ADC_OTR && !TRX_on_TX())
@ -846,13 +840,17 @@ void LCD_doEvents(void)
LCD_printTooltip();
}
static void printInfoSmall(uint16_t x, uint16_t y, uint16_t width, uint16_t height, char *text, uint16_t back_color, uint16_t text_color, uint16_t inactive_color, bool active)
static void printInfoSmall(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t button_color, char *text, uint16_t back_color, uint16_t text_color, uint16_t inactive_color, bool active)
{
uint16_t x1, y1, w, h;
uint16_t x1, y1, w, h, color;
LCDDriver_drawFastHLine(x, y - 1, width, active ? COLOR_GBLUE: COLOR_DARKBLUE);
LCDDriver_drawFastHLine(x, y + (height + 1),width, active ? COLOR_GBLUE: COLOR_DARKBLUE);
LCDDriver_drawFastVLine(x - 1, y - 1, height + 3, active ? COLOR_GBLUE: COLOR_DARKBLUE);
LCDDriver_drawFastVLine(x + (width + 1), y-1, height + 3, active ? COLOR_GBLUE: COLOR_DARKBLUE);
LCDDriver_Fill_RectWH(x, y, width, height, back_color);
LCDDriver_getTextBounds(text, x, y, &x1, &y1, &w, &h, (GFXfont *)&FreeSans7pt7b);
//sendToDebug_str(text); sendToDebug_str(" "); sendToDebug_uint16(w, false);
LCDDriver_printTextFont(text, x + (width - w) / 2, y + (height / 2) + h / 2 - 1, active ? text_color : inactive_color, back_color, (GFXfont *)&FreeSans7pt7b);
LCDDriver_getTextBounds(text, x, y, &x1, &y1, &w, &h, (GFXfont *)&PrestigeEliteStd_Bd7pt7b);
LCDDriver_printTextFont(text, x + (width - w) / 2, y + (height / 2) + h / 2, active ? COLOR_GREENYELLOW: inactive_color, back_color, (GFXfont *)&PrestigeEliteStd_Bd7pt7b);
}
static void printInfo(uint16_t x, uint16_t y, uint16_t width, uint16_t height, char *text, uint16_t back_color, uint16_t text_color, uint16_t inactive_color, bool active)

Wyświetl plik

@ -23,48 +23,58 @@
#define LCD_PIXEL_COUNT (LCD_WIDTH * LCD_HEIGHT)
//List of colors
#define COLOR_BLACK 0x0000
#define COLOR_NAVY 0x000F
#define COLOR_DGREEN 0x03E0
#define COLOR_DCYAN 0x03EF
#define COLOR_MAROON 0x7800
#define COLOR_PURPLE 0x780F
#define COLOR_OLIVE 0x7BE0
#define COLOR_LGRAY 0xC618
#define COLOR_DGRAY 0x7BEF
#define COLOR_BLUE 0x001F
#define COLOR_BLUE2 0x051D
#define COLOR_GREEN 0x07E0
#define COLOR_GREEN2 0xB723
#define COLOR_GREEN3 0x8000
#define COLOR_CYAN 0x07FF
#define COLOR_RED 0xF800
#define COLOR_MAGENTA 0xF81F
#define COLOR_YELLOW 0xFFE0
#define COLOR_WHITE 0xFFFF
#define COLOR_ORANGE 0xFD20
#define COLOR_BLACK 0x0000
#define COLOR_NAVY 0x000F
#define COLOR_DGREEN 0x03E0
#define COLOR_DCYAN 0x03EF
#define COLOR_MAROON 0x7800
#define COLOR_PURPLE 0x780F
#define COLOR_OLIVE 0x7BE0
#define COLOR_LGRAY 0xC618
#define COLOR_DGRAY 0x7BEF
#define COLOR_BLUE 0x001F
#define COLOR_BLUE2 0x051D
#define COLOR_GREEN 0x07E0
#define COLOR_GREEN2 0xB723
#define COLOR_GREEN3 0x8000
#define COLOR_CYAN 0x07FF
#define COLOR_RED 0xF800
#define COLOR_MAGENTA 0xF81F
#define COLOR_YELLOW 0xFFE0
#define COLOR_WHITE 0xFFFF
#define COLOR_ORANGE 0xFD20
#define COLOR_GREENYELLOW 0xAFE5
#define COLOR_BROWN 0XBC40
#define COLOR_BRED 0XF81F
#define COLOR_GRED 0XFFE0
#define COLOR_GBLUE 0X07FF
#define COLOR_BROWN 0XBC40
#define COLOR_BRRED 0XFC07
#define COLOR_DARKBLUE 0X01CF
#define COLOR_LIGHTBLUE 0X7D7C
#define COLOR_GRAYBLUE 0X5458
#define COLOR_LIGHTGREEN 0X841F
#define COLOR_LGRAYBLUE 0XA651
#define COLOR_LBBLUE 0X2B12
/// Font data stored PER GLYPH
typedef struct
{
uint16_t bitmapOffset; ///< Pointer into GFXfont->bitmap
uint8_t width; ///< Bitmap dimensions in pixels
uint8_t height; ///< Bitmap dimensions in pixels
uint8_t xAdvance; ///< Distance to advance cursor (x axis)
int8_t xOffset; ///< X dist from cursor pos to UL corner
int8_t yOffset; ///< Y dist from cursor pos to UL corner
uint16_t bitmapOffset; //< Pointer into GFXfont->bitmap
uint8_t width; //< Bitmap dimensions in pixels
uint8_t height; //< Bitmap dimensions in pixels
uint8_t xAdvance; //< Distance to advance cursor (x axis)
int8_t xOffset; //< X dist from cursor pos to UL corner
int8_t yOffset; //< Y dist from cursor pos to UL corner
} GFXglyph;
/// Data stored for FONT AS A WHOLE
// Data stored for FONT AS A WHOLE
typedef struct
{
const uint8_t *bitmap; ///< Glyph bitmaps, concatenated
const GFXglyph *glyph; ///< Glyph array
const uint8_t first; ///< ASCII extents (first char)
const uint8_t last; ///< ASCII extents (last char)
const uint8_t yAdvance; ///< Newline distance (y axis)
const uint8_t *bitmap; //< Glyph bitmaps, concatenated
const GFXglyph *glyph; //< Glyph array
const uint8_t first; //< ASCII extents (first char)
const uint8_t last; //< ASCII extents (last char)
const uint8_t yAdvance; //< Newline distance (y axis)
} GFXfont;
//Functions defines Macros

Wyświetl plik

@ -113,6 +113,20 @@
#define LAY_STATUS_LABELS_TRS_FONT_SIZE 2
#define LAY_STATUS_LABEL_BW_X_OFFSET 400
#define LAY_STATUS_LABEL_BW_Y_OFFSET -68
//-------------------------------------------------------------------------------------------------
#define LAY_STATUS_SMALL_CLAR_X 1
#define LAY_STATUS_SMALL_IN_X 81
#define LAY_STATUS_SMALL_VLT_X 161
#define LAY_STATUS_SMALL_CPU_X 241
#define LAY_STATUS_SMALL_NOTCH_X 321
#define LAY_STATUS_SMALL_FFT_BW_X 401
#define LAY_STATUS_SMALL_BAR_Y 160
#define LAY_STATUS_BLOCK_WIDTH 74
#define LAY_STATUS_BLOCK_HEIGHT 12
//-------------------------------------------------------------------------------------------------
#define LAY_STATUS_LABEL_RIT_X_OFFSET 5
#define LAY_STATUS_LABEL_RIT_Y_OFFSET 44
#define LAY_STATUS_LABEL_VLT_X_OFFSET 155

Wyświetl plik

@ -158,6 +158,7 @@ void LoadSettings(bool clear)
TRX.BANDS_SAVED_SETTINGS[i].ADC_Driver = TRX.ADC_Driver;
TRX.BANDS_SAVED_SETTINGS[i].FM_SQL_threshold = TRX.FM_SQL_threshold;
TRX.BANDS_SAVED_SETTINGS[i].AGC = true;
TRX.BANDS_SAVED_SETTINGS[i].IF_Gain = TRX.IF_Gain;
// TRX.BANDS_SAVED_SETTINGS[i].AutoGain_Stage = 6;
}
TRX.AutoGain = false; // auto-control preamp and attenuator

Wyświetl plik

@ -124,6 +124,7 @@ typedef struct
bool ADC_Driver;
uint8_t FM_SQL_threshold;
bool AGC;
uint8_t IF_Gain;
// uint8_t AutoGain_Stage;
} BAND_SAVED_SETTINGS_TYPE;

Wyświetl plik

@ -373,7 +373,10 @@ static void SYSMENU_HANDL_TRX_AutoGain(int8_t direction)
TRX.AutoGain = true;
if (direction < 0)
TRX.AutoGain = false;
TRX.ATT = false;
FPGA_NeedSendParams = true;
LCD_UpdateQuery.TopButtons = true;
NeedSaveSettings = true;
}
static void SYSMENU_HANDL_TRX_TWO_SIGNAL_TUNE(int8_t direction)

Wyświetl plik

@ -42,6 +42,7 @@ volatile float32_t TRX_IQ_phase_error = 0.0f;
volatile bool TRX_NeedGoToBootloader = false;
volatile bool TRX_Temporary_Stop_BandMap = false;
volatile bool TRX_Mute = false;
volatile bool TRX_IF_Gain = false;
volatile uint32_t TRX_Temporary_Mute_StartTime = 0;
uint32_t TRX_freq_phrase = 0;
uint32_t TRX_freq_phrase_tx = 0;

Wyświetl plik

@ -36,6 +36,7 @@ volatile extern float32_t TRX_PWR_Backward;
volatile extern float32_t TRX_SWR;
volatile extern float32_t TRX_ALC;
volatile extern bool TRX_Mute;
volatile extern bool TRX_IF_Gain;
volatile extern float32_t TRX_IQ_phase_error;
volatile extern bool TRX_NeedGoToBootloader;
volatile extern bool TRX_Temporary_Stop_BandMap;

Wyświetl plik

@ -788,6 +788,7 @@ void ua3reo_dev_cat_parseCommand(void)
TRX.ATT = TRX.BANDS_SAVED_SETTINGS[band].ATT;
TRX.ATT_DB = TRX.BANDS_SAVED_SETTINGS[band].ATT_DB;
TRX.ADC_Driver = TRX.BANDS_SAVED_SETTINGS[band].ADC_Driver;
TRX.IF_Gain = TRX.BANDS_SAVED_SETTINGS[band].IF_Gain;
CurrentVFO()->AGC = TRX.BANDS_SAVED_SETTINGS[band].AGC;
TRX_Temporary_Stop_BandMap = false;

Plik diff jest za duży Load Diff