mirror of
https://github.com/OneOfEleven/uv-k5-firmware-custom.git
synced 2025-05-18 16:01:18 +03:00
fix previous messy renaming, plus MDC1200 updates
This commit is contained in:
parent
19a1476057
commit
b4d50001e1
36
app/menu.c
36
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:
|
||||
|
BIN
firmware.bin
BIN
firmware.bin
Binary file not shown.
Binary file not shown.
133
mdc1200.c
133
mdc1200.c
@ -47,61 +47,77 @@ uint16_t reverse_bits(const uint16_t bits_in, const unsigned int num_bits)
|
||||
return bits_out;
|
||||
}
|
||||
|
||||
uint16_t compute_crc(const uint8_t *data, const unsigned int data_len)
|
||||
{
|
||||
|
||||
// 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 = 0x0000;
|
||||
#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++, 8);
|
||||
//CRC_DATAIN = bitReverse8(*data++);
|
||||
|
||||
#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++, 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
|
||||
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;
|
||||
|
4
radio.c
4
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
|
||||
|
@ -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
|
||||
|
88
ui/menu.c
88
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:
|
||||
|
36
ui/menu.h
36
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user