From b4d50001e185c8cf171e26ff6ca301dc41538d35 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 21 Oct 2023 12:49:21 +0100 Subject: [PATCH] fix previous messy renaming, plus MDC1200 updates --- app/menu.c | 36 ++++++------ firmware.bin | Bin 60516 -> 60492 bytes firmware.packed.bin | Bin 60534 -> 60510 bytes mdc1200.c | 133 ++++++++++++++++++++++++-------------------- radio.c | 4 +- ui/main.c | 2 +- ui/menu.c | 88 ++++++++++++++--------------- ui/menu.h | 36 ++++++------ 8 files changed, 157 insertions(+), 142 deletions(-) diff --git a/app/menu.c b/app/menu.c index 224627c..27c4212 100644 --- a/app/menu.c +++ b/app/menu.c @@ -125,12 +125,12 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_MEM_DISP: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_MEM_DISP) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_mem_disp) - 1; break; case MENU_TX_POWER: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_TX_POWER) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_tx_power) - 1; break; case MENU_SHIFT_DIR: @@ -140,7 +140,7 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_DUAL_WATCH: *pMin = 0; -// *pMax = ARRAY_SIZE(g_sub_MENU_DUAL_WATCH) - 1; +// *pMax = ARRAY_SIZE(g_sub_menu_dual_watch) - 1; *pMax = ARRAY_SIZE(g_sub_menu_off_on) - 1; break; @@ -151,7 +151,7 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_CROSS_VFO: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_CROSS_VFO) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_cross_vfo) - 1; break; #ifdef ENABLE_VOICE @@ -163,12 +163,12 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_SCAN_CAR_RESUME: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_SCAN_CAR_RESUME) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_scan_car_resume) - 1; break; case MENU_ROGER_MODE: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_ROGER_MODE_mode) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_roger_mode) - 1; break; case MENU_PON_MSG: @@ -191,13 +191,13 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_BANDWIDTH: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_BANDWIDTH) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_bandwidth) - 1; break; #ifdef ENABLE_ALARM case MENU_ALARM_MODE: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_ALARM_MODE) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_alarm_mode) - 1; break; #endif @@ -207,13 +207,13 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_SIDE2_SHORT: case MENU_SIDE2_LONG: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_menu_SIDE_BUTT) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_side_butt) - 1; break; #endif case MENU_RESET: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_menu_RESET) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_reset) - 1; break; case MENU_COMPAND: @@ -234,7 +234,7 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) #ifdef ENABLE_AM_FIX_TEST1 case MENU_AM_FIX_TEST1: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_AM_FIX_test1) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_AM_FIX_test1) - 1; break; #endif @@ -273,17 +273,17 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_SCRAMBLER_EN: case MENU_TX_EN: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_menu_DIS_EN) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_dis_en) - 1; break; case MENU_SCRAMBLER: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_SCRAMBLERAMBLER) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_scrambler) - 1; break; case MENU_TX_TO: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_TX_TO) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_tx_timeout) - 1; break; #ifdef ENABLE_VOX @@ -310,7 +310,7 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_BAT_SAVE: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_BAT_SAVE) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_bat_save) - 1; break; case MENU_MIC_GAIN: @@ -326,17 +326,17 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_DTMF_RSP: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_MENU_DTMF_RSP) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_dtmf_rsp) - 1; break; case MENU_PTT_ID: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_menu_PTT_ID) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_ptt_id) - 1; break; case MENU_BAT_TXT: *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_menu_BAT_TXT) - 1; + *pMax = ARRAY_SIZE(g_sub_menu_bat_text) - 1; break; case MENU_DTMF_HOLD: diff --git a/firmware.bin b/firmware.bin index 523382dae96f5d8cba5f652b986b0748bb9611b1..4816da6db4956238c72f2d9ab26395aff73d71cb 100644 GIT binary patch delta 10478 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 F_rD;?spX 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 710d30d566770fbffde1e125285b914e5372eb54..805f9de9a7ec91c546e072d6d960346347784813 100644 GIT binary patch delta 42414 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 delta 42438 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 TGK`0_=t|t&OR1lt50(E9>= 1) - { - uint16_t msb = crc & 0x8000; - if (bits & mask) - msb ^= 0x8000; - crc <<= 1; - if (msb) - crc ^= 0x1021; - } - #endif +#if 0 + uint16_t compute_crc(const uint8_t *data, const unsigned int data_len) + { // using the reverse computation avoids having to reverse the bit order during and after + uint16_t crc = 0; + for (i = 0; i < len; i++) + { + unsigned int k; + crc ^= data[i]; + for (k = 8; k > 0; k--) + crc = (crc & 1u) ? (crc >> 1) ^ 0x8408 : crc >> 1; + } + crc ^= 0xffff; + return crc; } - - #if 0 - crc = (uint16_t)CRC_DATAOUT; - CRC_CR = (CRC_CR & ~CRC_CR_CRC_EN_MASK) | CRC_CR_CRC_EN_BITS_DISABLE; - #endif +#else + uint16_t compute_crc(const uint8_t *data, const unsigned int data_len) + { - // bit reverse and invert the final CRC - return reverse_bits(crc, 16) ^ 0xffff; -// return bitReverse16(crc) ^ 0xffff; -} + // this can be done using the CPU's own CRC calculator once we know we're ok + + unsigned int i; + + #if 0 + uint16_t crc; + + CRC_CR = (CRC_CR & ~CRC_CR_CRC_EN_MASK) | CRC_CR_CRC_EN_BITS_ENABLE; + #else + uint16_t crc = 0; + #endif + + for (i = 0; i < data_len; i++) + { + #if 0 + + // bit reverse each data byte before adding it to the CRC + // the cortex CPU might have an instruction to bit reverse for us ? + // + CRC_DATAIN = reverse_bits(data[i], 8); + //CRC_DATAIN = bitReverse8(data[i]); + + #else + uint8_t mask; + + // bit reverse each data byte before adding it to the CRC + // the cortex CPU might have an instruction to bit reverse for us ? + // + const uint8_t bits = reverse_bits(data[i], 8); + //const uint8_t bits = bitReverse8(*data++); + + for (mask = 0x0080; mask != 0; mask >>= 1) + { + uint16_t msb = crc & 0x8000; + if (bits & mask) + msb ^= 0x8000; + crc <<= 1; + if (msb) + crc ^= 0x1021; + } + #endif + } + + #if 0 + crc = (uint16_t)CRC_DATAOUT; + CRC_CR = (CRC_CR & ~CRC_CR_CRC_EN_MASK) | CRC_CR_CRC_EN_BITS_DISABLE; + #endif + + // bit reverse and invert the final CRC + return reverse_bits(crc, 16) ^ 0xffff; + // return bitReverse16(crc) ^ 0xffff; + } +#endif uint8_t * encode_data(uint8_t *data) { @@ -154,14 +170,14 @@ uint8_t * encode_data(uint8_t *data) } // MDC1200 sync bit reversals and packet header -static const uint8_t header[] = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x07, 0x09, 0x2a, 0x44, 0x6f}; +//static const uint8_t header[] = {0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x07, 0x09, 0x2a, 0x44, 0x6f}; +static const uint8_t header[] = {0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xAA, 0x07, 0x09, 0x2a, 0x44, 0x6f}; void delta_modulation(uint8_t *data, const unsigned int size) { // xor succesive bits in the entire packet, including the bit reversing pre-amble uint8_t b1; - unsigned int toggle_delay; unsigned int i; - for (i = 0, toggle_delay = 27, b1 = 1u; i < size; i++) + for (i = 0, b1 = 1u; i < size; i++) { int bit_num; uint8_t in = data[i]; @@ -169,9 +185,8 @@ void delta_modulation(uint8_t *data, const unsigned int size) for (bit_num = 7; bit_num >= 0; bit_num--) { const uint8_t b2 = (in >> bit_num) & 1u; - if (toggle_delay > 0) - toggle_delay--; - if (b1 != b2 && toggle_delay == 0) +// const uint8_t b2 = (in >> (7 - bit_num)) & 1u; + if (b1 != b2) out |= 1u << bit_num; // previous bit and new bit are different // out |= 1u << (7 - bit_num); b1 = b2; diff --git a/radio.c b/radio.c index a1c0d4e..825fbbe 100644 --- a/radio.c +++ b/radio.c @@ -261,7 +261,7 @@ void RADIO_configure_channel(const unsigned int VFO, const unsigned int configur p_vfo->am_mode = m_channel.am_mode; p_vfo->step_setting = (m_channel.step_setting < ARRAY_SIZE(STEP_FREQ_TABLE)) ? m_channel.step_setting : STEP_12_5kHz; p_vfo->step_freq = STEP_FREQ_TABLE[p_vfo->step_setting]; - p_vfo->scrambling_type = (m_channel.scrambler < ARRAY_SIZE(g_sub_MENU_SCRAMBLERAMBLER)) ? m_channel.scrambler : 0; + p_vfo->scrambling_type = (m_channel.scrambler < ARRAY_SIZE(g_sub_menu_scrambler)) ? m_channel.scrambler : 0; p_vfo->freq_config_rx.code_type = m_channel.rx_ctcss_cdcss_type; switch (m_channel.rx_ctcss_cdcss_type) @@ -1043,7 +1043,7 @@ void RADIO_PrepareTX(void) if (g_eeprom.tx_timeout_timer == 0) g_tx_timer_count_down_500ms = 60; // 30 sec else - if (g_eeprom.tx_timeout_timer < (ARRAY_SIZE(g_sub_MENU_TX_TO) - 1)) + if (g_eeprom.tx_timeout_timer < (ARRAY_SIZE(g_sub_menu_tx_timeout) - 1)) g_tx_timer_count_down_500ms = 120 * g_eeprom.tx_timeout_timer; // minutes else g_tx_timer_count_down_500ms = 120 * 15; // 15 minutes diff --git a/ui/main.c b/ui/main.c index bd2bfbb..c5e8fec 100644 --- a/ui/main.c +++ b/ui/main.c @@ -92,7 +92,7 @@ void draw_bar(uint8_t *line, const int len, const int max_width) if (g_eeprom.tx_timeout_timer == 0) timeout_secs = 30; // 30 sec else - if (g_eeprom.tx_timeout_timer < (ARRAY_SIZE(g_sub_MENU_TX_TO) - 1)) + if (g_eeprom.tx_timeout_timer < (ARRAY_SIZE(g_sub_menu_tx_timeout) - 1)) timeout_secs = 60 * g_eeprom.tx_timeout_timer; // minutes else timeout_secs = 60 * 15; // 15 minutes diff --git a/ui/menu.c b/ui/menu.c index 2b848e0..815ddb4 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -168,10 +168,10 @@ const unsigned int g_hidden_menu_count = 9; // *************************************************************************************** -const char g_sub_MENU_TX_POWER[3][5] = +const char g_sub_menu_tx_power[3][7] = { "LOW", - "MID", + "MEDIUM", "HIGH" }; @@ -182,7 +182,7 @@ const char g_sub_menu_shift_dir[3][4] = "-" }; -const char g_sub_MENU_BANDWIDTH[2][7] = +const char g_sub_menu_bandwidth[2][7] = { "WIDE", "NARROW" @@ -194,7 +194,7 @@ const char g_sub_menu_off_on[2][4] = "ON" }; -const char g_sub_MENU_BAT_SAVE[5][9] = +const char g_sub_menu_bat_save[5][9] = { "OFF", "1:1 50%", @@ -203,7 +203,7 @@ const char g_sub_MENU_BAT_SAVE[5][9] = "1:4 80%" }; -const char g_sub_MENU_TX_TO[11][7] = +const char g_sub_menu_tx_timeout[11][7] = { "30 sec", "1 min", @@ -218,14 +218,14 @@ const char g_sub_MENU_TX_TO[11][7] = "15 min" }; -const char g_sub_MENU_DUAL_WATCH[3][10] = +const char g_sub_menu_dual_watch[3][10] = { "OFF", "LOWER\nVFO", "UPPER\nVFO", }; -const char g_sub_MENU_CROSS_VFO[3][10] = +const char g_sub_menu_cross_vfo[3][10] = { "RX\nVFO", "UPPER\nVFO", @@ -241,14 +241,14 @@ const char g_sub_MENU_CROSS_VFO[3][10] = }; #endif -const char g_sub_MENU_SCAN_CAR_RESUME[3][13] = +const char g_sub_menu_scan_car_resume[3][13] = { "TIME", "CARRIER", "SEARCH" }; -const char g_sub_MENU_MEM_DISP[4][15] = +const char g_sub_menu_mem_disp[4][15] = { "FREQ", "CHANNEL\nNUMBER", @@ -257,14 +257,14 @@ const char g_sub_MENU_MEM_DISP[4][15] = }; #ifdef ENABLE_ALARM - const char g_sub_MENU_ALARM_MODE[2][5] = + const char g_sub_menu_alarm_mode[2][5] = { "SITE", "TONE" }; #endif -const char g_sub_MENU_DTMF_RSP[4][9] = +const char g_sub_menu_dtmf_rsp[4][9] = { "NONE", "RING", @@ -272,7 +272,7 @@ const char g_sub_MENU_DTMF_RSP[4][9] = "RNG RPLY" }; -const char g_sub_menu_PTT_ID[5][15] = +const char g_sub_menu_ptt_id[5][15] = { "OFF", "BEGIN", @@ -289,14 +289,14 @@ const char g_sub_menu_pwr_on_msg[4][14] = "NONE" }; -const char g_sub_MENU_ROGER_MODE_mode[3][16] = +const char g_sub_menu_roger_mode[3][16] = { "OFF", "TX END\nROGER", "TX END\nMDC\n1200" }; -const char g_sub_menu_RESET[2][4] = +const char g_sub_menu_reset[2][4] = { "VFO", "ALL" @@ -323,7 +323,7 @@ const char g_sub_menu_rx_tx[4][6] = }; #ifdef ENABLE_AM_FIX_TEST1 - const char g_sub_MENU_AM_FIX_test1[4][8] = + const char g_sub_menu_AM_FIX_test1[4][8] = { "LNA-S 0", "LNA-S 1", @@ -332,20 +332,20 @@ const char g_sub_menu_rx_tx[4][6] = }; #endif -const char g_sub_menu_BAT_TXT[3][8] = +const char g_sub_menu_bat_text[3][8] = { "NONE", "VOLTAGE", "PERCENT" }; -const char g_sub_menu_DIS_EN[2][9] = +const char g_sub_menu_dis_en[2][9] = { "DISABLED", "ENABLED" }; -const char g_sub_MENU_SCRAMBLERAMBLER[11][7] = +const char g_sub_menu_scrambler[11][7] = { "OFF", "2600Hz", @@ -361,8 +361,8 @@ const char g_sub_MENU_SCRAMBLERAMBLER[11][7] = }; #ifdef ENABLE_SIDE_BUTT_MENU -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[9][16] = +//const char g_sub_menu_side_butt[10][16] = { "NONE", "FLASH\nLIGHT", @@ -586,7 +586,7 @@ void UI_DisplayMenu(void) } case MENU_TX_POWER: - strcpy(String, g_sub_MENU_TX_POWER[g_sub_menu_selection]); + strcpy(String, g_sub_menu_tx_power[g_sub_menu_selection]); break; case MENU_RX_CDCSS: @@ -673,12 +673,12 @@ void UI_DisplayMenu(void) break; case MENU_BANDWIDTH: - strcpy(String, g_sub_MENU_BANDWIDTH[g_sub_menu_selection]); + strcpy(String, g_sub_menu_bandwidth[g_sub_menu_selection]); break; case MENU_SCRAMBLER: strcpy(String, "INVERT\n"); - strcat(String, g_sub_MENU_SCRAMBLERAMBLER[g_sub_menu_selection]); + strcat(String, g_sub_menu_scrambler[g_sub_menu_selection]); #if 1 if (g_sub_menu_selection > 0 && g_setting_scramble_enable) @@ -713,7 +713,7 @@ void UI_DisplayMenu(void) #ifdef ENABLE_AM_FIX_TEST1 case MENU_AM_FIX_TEST1: - strcpy(String, g_sub_MENU_AM_FIX_test1[g_sub_menu_selection]); + strcpy(String, g_sub_menu_AM_FIX_test1[g_sub_menu_selection]); // g_setting_am_fix = g_sub_menu_selection; break; #endif @@ -784,38 +784,38 @@ void UI_DisplayMenu(void) #ifdef ENABLE_NOAA case MENU_NOAA_SCAN: strcpy(String, "SCAN\n"); - strcat(String, g_sub_menu_DIS_EN[g_sub_menu_selection]); + strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]); break; #endif case MENU_350_EN: strcpy(String, "350~400\n"); - strcat(String, g_sub_menu_DIS_EN[g_sub_menu_selection]); + strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]); break; case MENU_350_TX: strcpy(String, "TX\n350~400\n"); - strcat(String, g_sub_menu_DIS_EN[g_sub_menu_selection]); + strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]); break; case MENU_174_TX: strcpy(String, "TX\n174~350\n"); - strcat(String, g_sub_menu_DIS_EN[g_sub_menu_selection]); + strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]); break; case MENU_470_TX: strcpy(String, "TX\n470~600\n"); - strcat(String, g_sub_menu_DIS_EN[g_sub_menu_selection]); + strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]); break; case MENU_SCRAMBLER_EN: strcpy(String, "SCRAMBLER\n"); - strcat(String, g_sub_menu_DIS_EN[g_sub_menu_selection]); + strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]); break; case MENU_TX_EN: strcpy(String, "TX\n"); - strcat(String, g_sub_menu_DIS_EN[g_sub_menu_selection]); + strcat(String, g_sub_menu_dis_en[g_sub_menu_selection]); break; case MENU_MEM_SAVE: @@ -882,11 +882,11 @@ void UI_DisplayMenu(void) } case MENU_BAT_SAVE: - strcpy(String, g_sub_MENU_BAT_SAVE[g_sub_menu_selection]); + strcpy(String, g_sub_menu_bat_save[g_sub_menu_selection]); break; case MENU_DUAL_WATCH: -// strcpy(String, g_sub_MENU_DUAL_WATCH[g_sub_menu_selection]); +// strcpy(String, g_sub_menu_dual_watch[g_sub_menu_selection]); strcpy(String, g_sub_menu_off_on[g_sub_menu_selection]); break; @@ -896,11 +896,11 @@ void UI_DisplayMenu(void) break; case MENU_CROSS_VFO: - strcpy(String, g_sub_MENU_CROSS_VFO[g_sub_menu_selection]); + strcpy(String, g_sub_menu_cross_vfo[g_sub_menu_selection]); break; case MENU_TX_TO: - strcpy(String, g_sub_MENU_TX_TO[g_sub_menu_selection]); + strcpy(String, g_sub_menu_tx_timeout[g_sub_menu_selection]); break; #ifdef ENABLE_VOICE @@ -911,11 +911,11 @@ void UI_DisplayMenu(void) case MENU_SCAN_CAR_RESUME: strcpy(String, "SCAN\nRESUME\n"); - strcat(String, g_sub_MENU_SCAN_CAR_RESUME[g_sub_menu_selection]); + strcat(String, g_sub_menu_scan_car_resume[g_sub_menu_selection]); break; case MENU_MEM_DISP: - strcpy(String, g_sub_MENU_MEM_DISP[g_sub_menu_selection]); + strcpy(String, g_sub_menu_mem_disp[g_sub_menu_selection]); break; case MENU_RP_STE: @@ -935,7 +935,7 @@ void UI_DisplayMenu(void) #ifdef ENABLE_ALARM case MENU_ALARM_MODE: strcpy(String, "TX ALARM\n"); - sprintf(String + strlen(String), g_sub_MENU_ALARM_MODE[g_sub_menu_selection]); + sprintf(String + strlen(String), g_sub_menu_alarm_mode[g_sub_menu_selection]); break; #endif @@ -956,7 +956,7 @@ void UI_DisplayMenu(void) case MENU_DTMF_RSP: strcpy(String, "DTMF\nRESPONSE\n"); - strcat(String, g_sub_MENU_DTMF_RSP[g_sub_menu_selection]); + strcat(String, g_sub_menu_dtmf_rsp[g_sub_menu_selection]); break; case MENU_DTMF_HOLD: @@ -995,11 +995,11 @@ void UI_DisplayMenu(void) case MENU_PTT_ID: strcpy(String, (g_sub_menu_selection > 0) ? "TX ID\n" : ""); - strcat(String, g_sub_menu_PTT_ID[g_sub_menu_selection]); + strcat(String, g_sub_menu_ptt_id[g_sub_menu_selection]); break; case MENU_BAT_TXT: - strcpy(String, g_sub_menu_BAT_TXT[g_sub_menu_selection]); + strcpy(String, g_sub_menu_bat_text[g_sub_menu_selection]); break; case MENU_DTMF_LIST: @@ -1023,7 +1023,7 @@ void UI_DisplayMenu(void) break; case MENU_ROGER_MODE: - strcpy(String, g_sub_MENU_ROGER_MODE_mode[g_sub_menu_selection]); + strcpy(String, g_sub_menu_roger_mode[g_sub_menu_selection]); break; case MENU_VOLTAGE: @@ -1038,7 +1038,7 @@ void UI_DisplayMenu(void) case MENU_SIDE1_LONG: case MENU_SIDE2_SHORT: case MENU_SIDE2_LONG: - strcpy(String, g_sub_menu_SIDE_BUTT[g_sub_menu_selection]); + strcpy(String, g_sub_menu_side_butt[g_sub_menu_selection]); break; #endif @@ -1081,7 +1081,7 @@ void UI_DisplayMenu(void) } case MENU_RESET: - strcpy(String, g_sub_menu_RESET[g_sub_menu_selection]); + strcpy(String, g_sub_menu_reset[g_sub_menu_selection]); break; case MENU_FREQ_LOCK: diff --git a/ui/menu.h b/ui/menu.h index 7821256..a475dfd 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -158,37 +158,37 @@ enum extern const t_menu_item g_menu_list[]; extern uint8_t g_menu_list_sorted[]; -extern const char g_sub_MENU_TX_POWER[3][5]; +extern const char g_sub_menu_tx_power[3][7]; 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_bandwidth[2][7]; extern const char g_sub_menu_off_on[2][4]; -extern const char g_sub_MENU_BAT_SAVE[5][9]; -extern const char g_sub_MENU_TX_TO[11][7]; -extern const char g_sub_MENU_DUAL_WATCH[3][10]; -extern const char g_sub_MENU_CROSS_VFO[3][10]; +extern const char g_sub_menu_bat_save[5][9]; +extern const char g_sub_menu_tx_timeout[11][7]; +extern const char g_sub_menu_dual_watch[3][10]; +extern const char g_sub_menu_cross_vfo[3][10]; #ifdef ENABLE_VOICE extern const char g_sub_menu_voice[3][4]; #endif -extern const char g_sub_MENU_SCAN_CAR_RESUME[3][13]; -extern const char g_sub_MENU_MEM_DISP[4][15]; +extern const char g_sub_menu_scan_car_resume[3][13]; +extern const char g_sub_menu_mem_disp[4][15]; #ifdef ENABLE_ALARM - extern const char g_sub_MENU_ALARM_MODE[2][5]; + 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][15]; +extern const char g_sub_menu_dtmf_rsp[4][9]; +extern const char g_sub_menu_ptt_id[5][15]; extern const char g_sub_menu_pwr_on_msg[4][14]; -extern const char g_sub_MENU_ROGER_MODE_mode[3][16]; -extern const char g_sub_menu_RESET[2][4]; +extern const char g_sub_menu_roger_mode[3][16]; +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]; #ifdef ENABLE_AM_FIX_TEST1 - extern const char g_sub_MENU_AM_FIX_test1[4][8]; + extern const char g_sub_menu_AM_FIX_test1[4][8]; #endif -extern const char g_sub_menu_BAT_TXT[3][8]; -extern const char g_sub_menu_DIS_EN[2][9]; -extern const char g_sub_MENU_SCRAMBLERAMBLER[11][7]; +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[11][7]; #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 extern bool g_in_sub_menu;