0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 22:31:25 +03:00

more scrambler menu options

This commit is contained in:
OneOfEleven 2023-11-04 02:33:04 +00:00
parent 004c6dfea9
commit d59d4eae15
11 changed files with 49 additions and 75 deletions

View File

@ -2713,11 +2713,10 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const
BK4819_ExitDTMF_TX(false); BK4819_ExitDTMF_TX(false);
if (g_current_vfo->channel.scrambler == 0 || !g_eeprom.config.setting.enable_scrambler) if (g_eeprom.config.setting.enable_scrambler)
BK4819_DisableScramble(); BK4819_set_scrambler(g_current_vfo->channel.scrambler);
else else
//BK4819_EnableScramble(g_current_vfo->channel.scrambler - 1); BK4819_set_scrambler(0);
BK4819_EnableScramble(2600 + ((g_current_vfo->channel.scrambler - 1) * 100));
} }
} }
else else
@ -2727,7 +2726,7 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const
GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER);
} }
BK4819_DisableScramble(); BK4819_set_scrambler(0);
if (Code == 0xFE) if (Code == 0xFE)
BK4819_TransmitTone(g_eeprom.config.setting.dtmf.side_tone, 1750); BK4819_TransmitTone(g_eeprom.config.setting.dtmf.side_tone, 1750);

View File

@ -270,7 +270,7 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax)
case MENU_SCRAMBLER: case MENU_SCRAMBLER:
*pMin = 0; *pMin = 0;
*pMax = ARRAY_SIZE(g_sub_menu_scrambler) - 1; *pMax = 31;
break; break;
case MENU_TX_TO: case MENU_TX_TO:
@ -497,11 +497,10 @@ void MENU_AcceptSetting(void)
case MENU_SCRAMBLER: case MENU_SCRAMBLER:
g_tx_vfo->channel.scrambler = g_sub_menu_selection; g_tx_vfo->channel.scrambler = g_sub_menu_selection;
#if 0 #if 0
if (g_sub_menu_selection > 0 && g_eeprom.config.setting.enable_scrambler) if (g_eeprom.config.setting.enable_scrambler)
// BK4819_EnableScramble(g_sub_menu_selection - 1); BK4819_set_scrambler(g_tx_vfo->channel.scrambler);
BK4819_EnableScramble(2600 + ((g_sub_menu_selection - 1) * 100));
else else
BK4819_DisableScramble(); BK4819_set_scrambler(0);
#endif #endif
g_request_save_channel = IS_FREQ_CHANNEL(g_tx_vfo->channel_save) ? 2 : 1; g_request_save_channel = IS_FREQ_CHANNEL(g_tx_vfo->channel_save) ? 2 : 1;
return; return;

View File

@ -766,29 +766,23 @@ void BK4819_set_rf_filter_path(uint32_t Frequency)
} }
} }
void BK4819_DisableScramble(void) void BK4819_set_scrambler(const int index)
{ {
const uint16_t Value = BK4819_ReadRegister(0x31); const uint16_t Value = BK4819_ReadRegister(0x31);
BK4819_WriteRegister(0x31, Value & ~(1u << 1)); if (index <= 0)
} { // disable
BK4819_WriteRegister(0x31, Value & ~(1u << 1));
}
else
{ // enable
uint16_t freq = 2600 + ((index - 1) * 50); // 50 Hz steps
if (freq > 12000)
freq = 12000;
#if 0 BK4819_WriteRegister(0x31, Value | (1u << 1)); // enable
void BK4819_EnableScramble(const uint8_t Type) BK4819_WriteRegister(0x71, scale_freq(freq));
{ }
const uint16_t Value = BK4819_ReadRegister(0x31);
BK4819_WriteRegister(0x31, Value | (1u << 1));
BK4819_WriteRegister(0x71, (26 + Type) * 1032);
} }
#else
void BK4819_EnableScramble(const uint16_t freq)
{
const uint16_t Value = BK4819_ReadRegister(0x31);
BK4819_WriteRegister(0x31, Value | (1u << 1));
BK4819_WriteRegister(0x71, scale_freq(freq));
}
#endif
bool BK4819_CompanderEnabled(void) bool BK4819_CompanderEnabled(void)
{ {

View File

@ -94,9 +94,8 @@ void BK4819_SetupSquelch(
void BK4819_SetAF(BK4819_af_type_t AF); void BK4819_SetAF(BK4819_af_type_t AF);
void BK4819_RX_TurnOn(void); void BK4819_RX_TurnOn(void);
void BK4819_set_rf_filter_path(uint32_t Frequency); void BK4819_set_rf_filter_path(uint32_t Frequency);
void BK4819_DisableScramble(void);
//void BK4819_EnableScramble(const uint8_t Type); void BK4819_set_scrambler(const int index);
void BK4819_EnableScramble(const uint16_t freq);
bool BK4819_CompanderEnabled(void); bool BK4819_CompanderEnabled(void);
void BK4819_SetCompander(const unsigned int mode); void BK4819_SetCompander(const unsigned int mode);

Binary file not shown.

Binary file not shown.

View File

@ -233,8 +233,7 @@ void FUNCTION_Select(function_type_t Function)
} }
#endif #endif
if (g_current_vfo->channel.scrambler == 0 || !g_eeprom.config.setting.enable_scrambler) BK4819_set_scrambler(0);
BK4819_DisableScramble();
RADIO_enableTX(false); RADIO_enableTX(false);
@ -301,11 +300,8 @@ void FUNCTION_Select(function_type_t Function)
(1u << 1) | // enable TX DSP (1u << 1) | // enable TX DSP
(0u << 0)); // disable RX DSP (0u << 0)); // disable RX DSP
*/ */
if (g_current_vfo->channel.scrambler > 0 && g_eeprom.config.setting.enable_scrambler) if (g_eeprom.config.setting.enable_scrambler)
{ BK4819_set_scrambler(g_current_vfo->channel.scrambler);
// BK4819_EnableScramble(g_current_vfo->channel.scrambler - 1);
BK4819_EnableScramble(2600 + ((g_current_vfo->channel.scrambler - 1) * 100));
}
break; break;

View File

@ -790,11 +790,10 @@ void RADIO_setup_registers(bool switch_to_function_foreground)
break; break;
} }
if (g_rx_vfo->channel.scrambler > 0 && g_eeprom.config.setting.enable_scrambler) if (g_eeprom.config.setting.enable_scrambler)
// BK4819_EnableScramble(g_rx_vfo->channel.scrambler - 1); BK4819_set_scrambler(g_rx_vfo->channel.scrambler);
BK4819_EnableScramble(2600 + ((g_rx_vfo->channel.scrambler - 1) * 100));
else else
BK4819_DisableScramble(); BK4819_set_scrambler(0);
} }
} }
#ifdef ENABLE_NOAA #ifdef ENABLE_NOAA

View File

@ -213,18 +213,25 @@ typedef struct {
// [13] // [13]
uint8_t dtmf_decoding_enable:1; // uint8_t dtmf_decoding_enable:1; //
uint8_t dtmf_ptt_id_tx_mode:3; // uint8_t dtmf_ptt_id_tx_mode:3; //
uint8_t unused6:4; //
// [14]
uint8_t step_setting; //
// [15]
uint8_t scrambler:4; //
#if 0 #if 0
// QS // QS
uint8_t unused7:4; // uint8_t unused6:4; //
#else #else
// 1of11 // 1of11
uint8_t squelch_level:4; // 0 ~ 9 per channel squelch, 0 = use main squelch level uint8_t squelch_level:4; // 0 ~ 9 per channel squelch, 0 = use main squelch level
#endif #endif
// [14]
uint8_t step_setting; //
// [15]
#if 0
// QS
uint8_t scrambler:4; //
uint8_t unused7:4; //
#else
// 1of11
uint8_t scrambler:5; // more scrambler frequencies
uint8_t unused7:3; //
#endif
} __attribute__((packed)) t_channel; // } __attribute__((packed)) t_channel; //
typedef union { typedef union {

View File

@ -367,26 +367,6 @@ const char g_sub_menu_dis_en[2][9] =
"ENABLED" "ENABLED"
}; };
const char g_sub_menu_scrambler[16][7] =
{
"OFF", // 0
"2600Hz",
"2700Hz",
"2800Hz",
"2900Hz",
"3000Hz",
"3100Hz",
"3200Hz",
"3300Hz",
"3400Hz",
"3500Hz", // 10
"3600Hz",
"3700Hz",
"3800Hz",
"3900Hz",
"4000Hz" // 15
};
#ifdef ENABLE_SIDE_BUTT_MENU #ifdef ENABLE_SIDE_BUTT_MENU
const char g_sub_menu_side_butt[9][16] = const char g_sub_menu_side_butt[9][16] =
//const char g_sub_menu_side_butt[10][16] = //const char g_sub_menu_side_butt[10][16] =
@ -708,14 +688,16 @@ void UI_DisplayMenu(void)
case MENU_SCRAMBLER: case MENU_SCRAMBLER:
strcpy(str, "INVERT\n"); strcpy(str, "INVERT\n");
strcat(str, g_sub_menu_scrambler[g_sub_menu_selection]); if (g_sub_menu_selection == 0)
strcat(str, "OFF");
else
sprintf(str + strlen(str), "%uHz", 2600 + ((g_sub_menu_selection - 1) * 50));
#if 1 #if 1
if (g_sub_menu_selection > 0 && g_eeprom.config.setting.enable_scrambler) if (g_eeprom.config.setting.enable_scrambler)
// BK4819_EnableScramble(g_sub_menu_selection - 1); BK4819_set_scrambler(g_sub_menu_selection);
BK4819_EnableScramble(2600 + ((g_sub_menu_selection - 1) * 100));
else else
BK4819_DisableScramble(); BK4819_set_scrambler(0);
#endif #endif
channel_setting = true; channel_setting = true;
break; break;

View File

@ -194,7 +194,6 @@ extern const char g_sub_menu_rx_tx[4][6];
#endif #endif
extern const char g_sub_menu_bat_text[3][8]; extern const char g_sub_menu_bat_text[3][8];
extern const char g_sub_menu_dis_en[2][9]; extern const char g_sub_menu_dis_en[2][9];
extern const char g_sub_menu_scrambler[16][7];
#ifdef ENABLE_SIDE_BUTT_MENU #ifdef ENABLE_SIDE_BUTT_MENU
extern const char g_sub_menu_side_butt[9][16]; extern const char g_sub_menu_side_butt[9][16];
#endif #endif