diff --git a/Makefile b/Makefile index 12d757e..359c389 100644 --- a/Makefile +++ b/Makefile @@ -53,11 +53,10 @@ ENABLE_F_CAL_MENU := 0 ENABLE_TX_UNLOCK_MENU := 0 #ENABLE_TX_POWER_CAL_MENU := 0 ENABLE_TX_POWER_FIX := 1 -ENABLE_TX_POWER_LOW_USER := 0 ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 ENABLE_CONTRAST := 0 ENABLE_BOOT_BEEPS := 0 -ENABLE_DTMF_CALL_FLASH_LIGHT := 1 +ENABLE_DTMF_CALL_FLASH_LIGHT := 0 ENABLE_FLASH_LIGHT_SOS_TONE := 0 ENABLE_SHOW_CHARGE_LEVEL := 0 ENABLE_REVERSE_BAT_SYMBOL := 0 @@ -71,7 +70,6 @@ ENABLE_KILL_REVIVE := 0 # AM Fix 800 B ENABLE_AM_FIX := 1 ENABLE_AM_FIX_SHOW_DATA := 0 -# Squelch 12 B .. can't be right ? ENABLE_SQUELCH_MORE_SENSITIVE := 1 ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS := 1 ENABLE_FASTER_CHANNEL_SCAN := 1 @@ -359,9 +357,6 @@ endif ifeq ($(ENABLE_TX_POWER_FIX),1) CFLAGS += -DENABLE_TX_POWER_FIX endif -ifeq ($(ENABLE_TX_POWER_LOW_USER),1) - CFLAGS += -DENABLE_TX_POWER_LOW_USER -endif ifeq ($(ENABLE_ALARM),1) CFLAGS += -DENABLE_ALARM endif diff --git a/README.md b/README.md index 39e1780..d4e8f27 100644 --- a/README.md +++ b/README.md @@ -72,8 +72,7 @@ ENABLE_TX_WHEN_AM := 0 allow TX (always FM) when RX is set ENABLE_F_CAL_MENU := 0 enable frequency calibration hidden menu ENABLE_TX_UNLOCK_MENU := 0 allow TX everywhere EXCEPT airband (108~137) .. TX harmonic content will cause interference to other services, do so entirely at your own risk ! ENABLE_TX_POWER_CAL_MENU := 0 used to compute the TX power register values .. leave at '0' -ENABLE_TX_POWER_FIX := 1 fix the TX output power, L ~ 10mW, M ~ 500mW, H ~ 4W -ENABLE_TX_POWER_LOW_USER := 1 make the low power setting user settable (for local hotspots etc) .. adds "TxPUSR" menu option +ENABLE_TX_POWER_FIX := 1 fix the TX output power, L ~ 10mW, M ~ 500mW, H ~ 4W, U ~ user settable ENABLE_CTCSS_TAIL_PHASE_SHIFT := 0 standard CTCSS tail phase shift rather than QS's own 55Hz tone method ENABLE_CONTRAST := 0 add contrast menu ENABLE_BOOT_BEEPS := 0 gives user audio feedback on volume knob position at boot-up diff --git a/app/action.c b/app/action.c index ca6fc89..71f712c 100644 --- a/app/action.c +++ b/app/action.c @@ -79,7 +79,7 @@ static void ACTION_FlashLight(void) void ACTION_Power(void) { - if (++g_tx_vfo->channel.tx_power > OUTPUT_POWER_HIGH) + if (++g_tx_vfo->channel.tx_power > OUTPUT_POWER_USER) g_tx_vfo->channel.tx_power = OUTPUT_POWER_LOW; #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) diff --git a/app/menu.c b/app/menu.c index 65a3abb..f504961 100644 --- a/app/menu.c +++ b/app/menu.c @@ -120,18 +120,16 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) *pMax = ARRAY_SIZE(g_sub_menu_mem_disp) - 1; break; - #ifdef ENABLE_TX_POWER_LOW_USER - case MENU_TX_POWER_LOW_USER: - *pMin = 0; - *pMax = 15; - break; - #endif - case MENU_TX_POWER: *pMin = 0; *pMax = ARRAY_SIZE(g_sub_menu_tx_power) - 1; break; + case MENU_TX_POWER_USER: + *pMin = 0; + *pMax = 15; + break; + case MENU_SHIFT_DIR: *pMin = 0; *pMax = ARRAY_SIZE(g_sub_menu_shift_dir) - 1; @@ -257,6 +255,15 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) #ifdef ENABLE_SCAN_RANGES case MENU_SCAN_RANGES: #endif + #ifdef ENABLE_NOAA + case MENU_NOAA_SCAN: + #endif + case MENU_350_TX: + case MENU_174_TX: + case MENU_470_TX: + case MENU_350_EN: + case MENU_SCRAMBLER_EN: + case MENU_TX_EN: case MENU_S_ADD1: case MENU_S_ADD2: case MENU_STE: @@ -272,19 +279,6 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) *pMax = ARRAY_SIZE(g_sub_menu_mod_mode) - 1; break; - #ifdef ENABLE_NOAA - case MENU_NOAA_SCAN: - #endif - case MENU_350_TX: - case MENU_174_TX: - case MENU_470_TX: - case MENU_350_EN: - case MENU_SCRAMBLER_EN: - case MENU_TX_EN: - *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_menu_dis_en) - 1; - break; - case MENU_SCRAMBLER: *pMin = 0; *pMax = 31; @@ -437,18 +431,16 @@ void MENU_AcceptSetting(void) g_request_save_channel = 1; return; - #ifdef ENABLE_TX_POWER_LOW_USER - case MENU_TX_POWER_LOW_USER: - g_tx_vfo->channel.tx_power_user = g_sub_menu_selection; - g_request_save_channel = 1; - break; - #endif - case MENU_TX_POWER: g_tx_vfo->channel.tx_power = g_sub_menu_selection; g_request_save_channel = 1; return; + case MENU_TX_POWER_USER: + g_tx_vfo->channel.tx_power_user = g_sub_menu_selection; + g_request_save_channel = 1; + break; + case MENU_TX_CDCSS: pConfig = &g_tx_vfo->freq_config_tx; @@ -1022,16 +1014,14 @@ void MENU_ShowCurrentSetting(void) g_sub_menu_selection = FREQUENCY_get_step_index(STEP_FREQ_TABLE[g_tx_vfo->channel.step_setting]); break; - #ifdef ENABLE_TX_POWER_LOW_USER - case MENU_TX_POWER_LOW_USER: - g_sub_menu_selection = g_tx_vfo->channel.tx_power_user; - break; - #endif - case MENU_TX_POWER: g_sub_menu_selection = g_tx_vfo->channel.tx_power; break; + case MENU_TX_POWER_USER: + g_sub_menu_selection = g_tx_vfo->channel.tx_power_user; + break; + case MENU_RX_CDCSS: switch (g_tx_vfo->freq_config_rx.code_type) { diff --git a/firmware.bin b/firmware.bin index 3b1733f..f743746 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index 8807814..828dcf8 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ diff --git a/radio.c b/radio.c index 269a858..b4e9656 100644 --- a/radio.c +++ b/radio.c @@ -630,11 +630,9 @@ void RADIO_ConfigureTXPower(vfo_info_t *p_vfo) #endif -#ifdef ENABLE_TX_POWER_LOW_USER - if (p_vfo->channel.tx_power == OUTPUT_POWER_LOW) + if (p_vfo->channel.tx_power == OUTPUT_POWER_USER) p_vfo->txp_reg_value = 8 + (p_vfo->channel.tx_power_user * 2); else -#endif p_vfo->txp_reg_value = FREQUENCY_CalculateOutputPower(tx_power[0], tx_power[1], tx_power[2], p_vfo->p_tx->frequency); } diff --git a/settings.c b/settings.c index 5f745db..6b245f4 100644 --- a/settings.c +++ b/settings.c @@ -121,13 +121,11 @@ void SETTINGS_read_eeprom(void) // if (g_eeprom.config.channel_attributes[index].band <= BAND7_470MHz) { // used channel - if (g_eeprom.config.channel[index].mod_mode == 3) - g_eeprom.config.channel[index].mod_mode = 0; + if (g_eeprom.config.channel[index].mod_mode >= MOD_MODE_LEN) + g_eeprom.config.channel[index].mod_mode = MOD_MODE_FM; - #ifdef ENABLE_TX_POWER_LOW_USER - if (g_eeprom.config.channel[index].tx_power_user == 0) - g_eeprom.config.channel[index].tx_power_user = 9; - #endif + if (g_eeprom.config.channel[index].tx_power_user == 0) + g_eeprom.config.channel[index].tx_power_user = 8; } diff --git a/settings.h b/settings.h index 1078d28..7f9702f 100644 --- a/settings.h +++ b/settings.h @@ -83,7 +83,8 @@ enum { enum { OUTPUT_POWER_LOW = 0, OUTPUT_POWER_MID, - OUTPUT_POWER_HIGH + OUTPUT_POWER_HIGH, + OUTPUT_POWER_USER }; enum { @@ -211,7 +212,7 @@ typedef struct { struct { uint8_t frequency_reverse:1; // 0=disabled 1=enabled uint8_t channel_bandwidth:1; // 0=wide (25kHz) 1=narrow (12.5kHz) - uint8_t tx_power:2; // 0=low/user 1=medium 2=high + uint8_t tx_power:2; // 0=low 1=medium 2=high 3=user uint8_t busy_channel_lock:1; // 0=disabled 1=enabled uint8_t unused5:1; // uint8_t compand:2; // 0=off 1=TX 2=RX 3=TX/RX diff --git a/ui/main.c b/ui/main.c index 8e72e5f..63f65f4 100644 --- a/ui/main.c +++ b/ui/main.c @@ -949,6 +949,7 @@ void UI_DisplayMain(void) case OUTPUT_POWER_LOW: Level = 2; break; case OUTPUT_POWER_MID: Level = 4; break; case OUTPUT_POWER_HIGH: Level = 6; break; + case OUTPUT_POWER_USER: Level = 2; break; } } else @@ -990,11 +991,7 @@ void UI_DisplayMain(void) if (FREQUENCY_tx_freq_check(g_vfo_info[vfo_num].p_tx->frequency) == 0) { // show the TX power - #ifdef ENABLE_TX_POWER_LOW_USER - const char pwr_list[] = "UMH"; // user, midium, high - #else - const char pwr_list[] = "LMH"; // low, medium, high - #endif + const char pwr_list[] = "LMHU"; // low, medium, high, user const unsigned int i = g_vfo_info[vfo_num].channel.tx_power; str[0] = (i < ARRAY_SIZE(pwr_list)) ? pwr_list[i] : '\0'; str[1] = '\0'; diff --git a/ui/menu.c b/ui/menu.c index dd830ef..cef8d22 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -53,9 +53,7 @@ const t_menu_item g_menu_list[] = {"STEP", VOICE_ID_FREQUENCY_STEP, MENU_STEP }, {"W/N", VOICE_ID_CHANNEL_BANDWIDTH, MENU_BANDWIDTH }, {"Tx PWR", VOICE_ID_POWER, MENU_TX_POWER }, // was "TXP" -#ifdef ENABLE_TX_POWER_LOW_USER - {"TxPUSR", VOICE_ID_POWER, MENU_TX_POWER_LOW_USER }, -#endif + {"TxPUSR", VOICE_ID_POWER, MENU_TX_POWER_USER }, {"Rx DCS", VOICE_ID_DCS, MENU_RX_CDCSS }, // was "R_DCS" {"Rx CTS", VOICE_ID_CTCSS, MENU_RX_CTCSS }, // was "R_CTCS" {"Tx DCS", VOICE_ID_DCS, MENU_TX_CDCSS }, // was "T_DCS" @@ -193,15 +191,12 @@ const char g_sub_menu_mod_mode[3][4] = "DSB" }; -const char g_sub_menu_tx_power[3][7] = +const char g_sub_menu_tx_power[4][5] = { - #ifdef ENABLE_TX_POWER_LOW_USER - "USER", - #else - "LOW", - #endif - "MEDIUM", - "HIGH" + "LOW", + "MID", + "HIGH", + "USER" }; const char g_sub_menu_shift_dir[3][4] = @@ -278,10 +273,10 @@ const char g_sub_menu_scan_car_resume[3][8] = "NO" }; -const char g_sub_menu_mem_disp[4][15] = +const char g_sub_menu_mem_disp[4][12] = { "FREQ", - "CHANNEL\nNUMBER", + "CHANNEL\nNUM", "NAME", "NAME\n+\nFREQ" }; @@ -312,28 +307,28 @@ const char g_sub_menu_ptt_id[5][16] = }; #ifdef ENABLE_MDC1200 - const char g_sub_menu_mdc1200_mode[4][8] = + const char g_sub_menu_mdc1200_mode[4][5] = { "OFF", "BOT", "EOT", - "BOT+EOT" + "BOTH" }; #endif -const char g_sub_menu_pwr_on_msg[4][14] = +const char g_sub_menu_pwr_on_msg[4][11] = { - "ALL\nPIXELS\nON", + "ALL\nPIX\nON", "MESSAGE", "VOLTAGE", "NONE" }; -const char g_sub_menu_roger_mode[3][15] = +const char g_sub_menu_roger_mode[3][8] = { "OFF", - "TX END\nROGER 1", - "TX END\nROGER 2" + "ROGER 1", + "ROGER 2" }; const char g_sub_menu_reset[2][4] = @@ -379,12 +374,6 @@ const char g_sub_menu_bat_text[3][8] = "PERCENT" }; -const char g_sub_menu_dis_en[2][9] = -{ - "DISABLED", - "ENABLED" -}; - #ifdef ENABLE_SIDE_BUTT_MENU const char g_sub_menu_side_butt[9][16] = //const char g_sub_menu_side_butt[10][16] = @@ -617,17 +606,15 @@ void UI_DisplayMenu(void) channel_setting = true; break; - #ifdef ENABLE_TX_POWER_LOW_USER - case MENU_TX_POWER_LOW_USER: -// sprintf(str, "%u", 8 + (g_sub_menu_selection * 2)); - sprintf(str, "%u", g_sub_menu_selection); + case MENU_TX_POWER_USER: +// sprintf(str, "%u", 8 + (g_sub_menu_selection * 2)); + sprintf(str, "%u", g_sub_menu_selection); -// if (g_current_function == FUNCTION_TRANSMIT && g_current_display_screen != DISPLAY_AIRCOPY) -// BK4819_SetupPowerAmplifier(8 + (g_sub_menu_selection * 2), g_current_vfo->p_tx->frequency); +// if (g_current_function == FUNCTION_TRANSMIT && g_current_display_screen != DISPLAY_AIRCOPY) +// BK4819_SetupPowerAmplifier(8 + (g_sub_menu_selection * 2), g_current_vfo->p_tx->frequency); - channel_setting = true; - break; - #endif + channel_setting = true; + break; case MENU_RX_CDCSS: case MENU_TX_CDCSS: @@ -867,39 +854,39 @@ void UI_DisplayMenu(void) #ifdef ENABLE_NOAA case MENU_NOAA_SCAN: strcpy(str, "SCAN\n"); - strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); break; #endif case MENU_350_EN: strcpy(str, "350~400\n"); - strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); break; case MENU_350_TX: strcpy(str, "TX\n350~400\n"); - strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); break; case MENU_174_TX: strcpy(str, "TX\n174~350\n"); - strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); break; case MENU_470_TX: strcpy(str, "TX\n470~600\n"); - strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); break; case MENU_SCRAMBLER_EN: strcpy(str, "SCRAMBLER\n"); - strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); channel_setting = true; break; case MENU_TX_EN: strcpy(str, "TX\n"); - strcat(str, g_sub_menu_dis_en[g_sub_menu_selection]); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); break; case MENU_MEM_SAVE: diff --git a/ui/menu.h b/ui/menu.h index ab33175..cd95dd1 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -45,9 +45,7 @@ enum MENU_STEP, MENU_BANDWIDTH, MENU_TX_POWER, -#ifdef ENABLE_TX_POWER_LOW_USER - MENU_TX_POWER_LOW_USER, -#endif + MENU_TX_POWER_USER, MENU_RX_CDCSS, MENU_RX_CTCSS, MENU_TX_CDCSS, @@ -176,7 +174,7 @@ extern const t_menu_item g_menu_list[]; extern uint8_t g_menu_list_sorted[]; extern const char g_sub_menu_mod_mode[3][4]; -extern const char g_sub_menu_tx_power[3][7]; +extern const char g_sub_menu_tx_power[4][5]; extern const char g_sub_menu_shift_dir[3][4]; extern const char g_sub_menu_bandwidth[2][7]; extern const char g_sub_menu_off_on[2][4]; @@ -188,17 +186,17 @@ extern const char g_sub_menu_cross_vfo[3][10]; extern const char g_sub_menu_voice[3][4]; #endif extern const char g_sub_menu_scan_car_resume[3][8]; -extern const char g_sub_menu_mem_disp[4][15]; +extern const char g_sub_menu_mem_disp[4][12]; #ifdef ENABLE_ALARM extern const char g_sub_menu_alarm_mode[2][5]; #endif extern const char g_sub_menu_dtmf_rsp[4][9]; extern const char g_sub_menu_ptt_id[5][16]; #ifdef ENABLE_MDC1200 - extern const char g_sub_menu_mdc1200_mode[4][8]; + extern const char g_sub_menu_mdc1200_mode[4][5]; #endif -extern const char g_sub_menu_pwr_on_msg[4][14]; -extern const char g_sub_menu_roger_mode[3][15]; +extern const char g_sub_menu_pwr_on_msg[4][11]; +extern const char g_sub_menu_roger_mode[3][8]; extern const char g_sub_menu_reset[2][4]; extern const char g_sub_menu_backlight[8][7]; extern const char g_sub_menu_rx_tx[4][6]; @@ -206,7 +204,6 @@ extern const char g_sub_menu_rx_tx[4][6]; extern const char g_sub_menu_AM_FIX_test1[4][8]; #endif extern const char g_sub_menu_bat_text[3][8]; -extern const char g_sub_menu_dis_en[2][9]; #ifdef ENABLE_SIDE_BUTT_MENU extern const char g_sub_menu_side_butt[9][16]; #endif