0
mirror of https://github.com/OneOfEleven/uv-k5-firmware-custom.git synced 2025-04-28 14:21: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);
if (g_current_vfo->channel.scrambler == 0 || !g_eeprom.config.setting.enable_scrambler)
BK4819_DisableScramble();
if (g_eeprom.config.setting.enable_scrambler)
BK4819_set_scrambler(g_current_vfo->channel.scrambler);
else
//BK4819_EnableScramble(g_current_vfo->channel.scrambler - 1);
BK4819_EnableScramble(2600 + ((g_current_vfo->channel.scrambler - 1) * 100));
BK4819_set_scrambler(0);
}
}
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);
}
BK4819_DisableScramble();
BK4819_set_scrambler(0);
if (Code == 0xFE)
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:
*pMin = 0;
*pMax = ARRAY_SIZE(g_sub_menu_scrambler) - 1;
*pMax = 31;
break;
case MENU_TX_TO:
@ -497,11 +497,10 @@ void MENU_AcceptSetting(void)
case MENU_SCRAMBLER:
g_tx_vfo->channel.scrambler = g_sub_menu_selection;
#if 0
if (g_sub_menu_selection > 0 && g_eeprom.config.setting.enable_scrambler)
// BK4819_EnableScramble(g_sub_menu_selection - 1);
BK4819_EnableScramble(2600 + ((g_sub_menu_selection - 1) * 100));
if (g_eeprom.config.setting.enable_scrambler)
BK4819_set_scrambler(g_tx_vfo->channel.scrambler);
else
BK4819_DisableScramble();
BK4819_set_scrambler(0);
#endif
g_request_save_channel = IS_FREQ_CHANNEL(g_tx_vfo->channel_save) ? 2 : 1;
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);
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
void BK4819_EnableScramble(const uint8_t Type)
{
const uint16_t Value = BK4819_ReadRegister(0x31);
BK4819_WriteRegister(0x31, Value | (1u << 1));
BK4819_WriteRegister(0x71, (26 + Type) * 1032);
BK4819_WriteRegister(0x31, Value | (1u << 1)); // enable
BK4819_WriteRegister(0x71, scale_freq(freq));
}
}
#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)
{

View File

@ -94,9 +94,8 @@ void BK4819_SetupSquelch(
void BK4819_SetAF(BK4819_af_type_t AF);
void BK4819_RX_TurnOn(void);
void BK4819_set_rf_filter_path(uint32_t Frequency);
void BK4819_DisableScramble(void);
//void BK4819_EnableScramble(const uint8_t Type);
void BK4819_EnableScramble(const uint16_t freq);
void BK4819_set_scrambler(const int index);
bool BK4819_CompanderEnabled(void);
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
if (g_current_vfo->channel.scrambler == 0 || !g_eeprom.config.setting.enable_scrambler)
BK4819_DisableScramble();
BK4819_set_scrambler(0);
RADIO_enableTX(false);
@ -301,11 +300,8 @@ void FUNCTION_Select(function_type_t Function)
(1u << 1) | // enable TX DSP
(0u << 0)); // disable RX DSP
*/
if (g_current_vfo->channel.scrambler > 0 && g_eeprom.config.setting.enable_scrambler)
{
// BK4819_EnableScramble(g_current_vfo->channel.scrambler - 1);
BK4819_EnableScramble(2600 + ((g_current_vfo->channel.scrambler - 1) * 100));
}
if (g_eeprom.config.setting.enable_scrambler)
BK4819_set_scrambler(g_current_vfo->channel.scrambler);
break;

View File

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

View File

@ -213,18 +213,25 @@ typedef struct {
// [13]
uint8_t dtmf_decoding_enable:1; //
uint8_t dtmf_ptt_id_tx_mode:3; //
uint8_t unused6:4; //
// [14]
uint8_t step_setting; //
// [15]
uint8_t scrambler:4; //
#if 0
// QS
uint8_t unused7:4; //
uint8_t unused6:4; //
#else
// 1of11
uint8_t squelch_level:4; // 0 ~ 9 per channel squelch, 0 = use main squelch level
#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; //
typedef union {

View File

@ -367,26 +367,6 @@ const char g_sub_menu_dis_en[2][9] =
"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
const char g_sub_menu_side_butt[9][16] =
//const char g_sub_menu_side_butt[10][16] =
@ -708,14 +688,16 @@ void UI_DisplayMenu(void)
case MENU_SCRAMBLER:
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 (g_sub_menu_selection > 0 && g_eeprom.config.setting.enable_scrambler)
// BK4819_EnableScramble(g_sub_menu_selection - 1);
BK4819_EnableScramble(2600 + ((g_sub_menu_selection - 1) * 100));
if (g_eeprom.config.setting.enable_scrambler)
BK4819_set_scrambler(g_sub_menu_selection);
else
BK4819_DisableScramble();
BK4819_set_scrambler(0);
#endif
channel_setting = true;
break;

View File

@ -194,7 +194,6 @@ extern const char g_sub_menu_rx_tx[4][6];
#endif
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_scrambler[16][7];
#ifdef ENABLE_SIDE_BUTT_MENU
extern const char g_sub_menu_side_butt[9][16];
#endif