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

Fix frequency display position

This commit is contained in:
OneOfEleven 2023-09-19 14:48:09 +01:00
parent f4a65c5b87
commit 9651e52317
10 changed files with 117 additions and 124 deletions

View File

@ -26,11 +26,11 @@ ENABLE_CHAN_NAME_FREQ := 1 show channel frequency below channel na
ENABLE_WIDE_RX := 1 full 18MHz to 1300MHz RX (though frontend not tuned over full range) ENABLE_WIDE_RX := 1 full 18MHz to 1300MHz RX (though frontend not tuned over full range)
ENABLE_TX_WHEN_AM := 0 allow TX (always FM) when RX is set to AM ENABLE_TX_WHEN_AM := 0 allow TX (always FM) when RX is set to AM
ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 standard CTCSS tail phase shift rather than QS's own 55Hz tone method ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 standard CTCSS tail phase shift rather than QS's own 55Hz tone method
ENABLE_MAIN_KEY_HOLD := 1 initial F-key press not needed, instead hold down keys 0-9 ENABLE_MAIN_KEY_HOLD := 1 initial F-key press not needed, instead hold down keys 0-9 to access the functions
ENABLE_BOOT_BEEPS := 0 give user audio feedback on volume knob position at boot-up ENABLE_BOOT_BEEPS := 0 give user audio feedback on volume knob position at boot-up
ENABLE_COMPANDER := 1 compander option - setting not yet saved ENABLE_COMPANDER := 1 compander option - setting not yet saved (per channel)
ENABLE_SHOW_CHARGE_LEVEL := 1 show the charge level when the radio is on charge ENABLE_SHOW_CHARGE_LEVEL := 1 show the charge level when the radio is on charge
ENABLE_REVERSE_BAT_SYMBOL := 1 reverse the battery symbol on the status bar ENABLE_REVERSE_BAT_SYMBOL := 1 mirror the battery symbol on the status bar (+ pole on the right)
ENABLE_STATUSBAR_VOLTAGE := 0 show the battery voltage on the top status bar - when possible ENABLE_STATUSBAR_VOLTAGE := 0 show the battery voltage on the top status bar - when possible
ENABLE_STATUSBAR_PERCENTAGE := 1 show the battery percentage on the top status bar - when possible ENABLE_STATUSBAR_PERCENTAGE := 1 show the battery percentage on the top status bar - when possible
#ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented - single VFO on display when possible #ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented - single VFO on display when possible

View File

@ -48,79 +48,79 @@
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
static const VOICE_ID_t MenuVoices[] = static const VOICE_ID_t MenuVoices[] =
{ {
VOICE_ID_SQUELCH, VOICE_ID_SQUELCH, // SQL
VOICE_ID_FREQUENCY_STEP, VOICE_ID_FREQUENCY_STEP, // STEP
VOICE_ID_POWER, VOICE_ID_POWER, // T-PWR
VOICE_ID_DCS, VOICE_ID_DCS, // R-DCS
VOICE_ID_CTCSS, VOICE_ID_CTCSS, // R-CTCS
VOICE_ID_DCS, VOICE_ID_DCS, // T-DCS
VOICE_ID_CTCSS, VOICE_ID_CTCSS, // T-CTCS
VOICE_ID_TX_OFFSET_FREQUENCY_DIRECTION, VOICE_ID_TX_OFFSET_FREQUENCY_DIRECTION, // T-DIR
VOICE_ID_TX_OFFSET_FREQUENCY, VOICE_ID_TX_OFFSET_FREQUENCY, // T-OFFS
VOICE_ID_CHANNEL_BANDWIDTH, VOICE_ID_INVALID, // T-VFO
VOICE_ID_SCRAMBLER_ON, VOICE_ID_TRANSMIT_OVER_TIME, // T-TOUT
VOICE_ID_BUSY_LOCKOUT, VOICE_ID_CHANNEL_BANDWIDTH, // W/N
VOICE_ID_MEMORY_CHANNEL, VOICE_ID_SCRAMBLER_ON, // SCRAM
VOICE_ID_SAVE_MODE, VOICE_ID_BUSY_LOCKOUT, // BUSYCL
VOICE_ID_VOX, VOICE_ID_MEMORY_CHANNEL, // CH-SAV
VOICE_ID_INVALID, VOICE_ID_DELETE_CHANNEL, // CH-DEL
VOICE_ID_DUAL_STANDBY, VOICE_ID_INVALID, // CH-DIS
VOICE_ID_INVALID, VOICE_ID_SAVE_MODE, // BATSAV
VOICE_ID_BEEP_PROMPT, VOICE_ID_VOX, // VOX
VOICE_ID_TRANSMIT_OVER_TIME, VOICE_ID_INVALID, // BACKLT
VOICE_ID_DUAL_STANDBY, // DUALRX
VOICE_ID_BEEP_PROMPT, // BEEP
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
VOICE_ID_VOICE_PROMPT, VOICE_ID_VOICE_PROMPT, // VOICE
#endif #endif
VOICE_ID_INVALID, VOICE_ID_INVALID, // SC-REV
VOICE_ID_INVALID, VOICE_ID_INVALID, // KEYLOC
VOICE_ID_INVALID, VOICE_ID_INVALID, // S-ADD1
VOICE_ID_INVALID, VOICE_ID_INVALID, // S-ADD2
VOICE_ID_INVALID, VOICE_ID_INVALID, // STE
VOICE_ID_INVALID, VOICE_ID_INVALID, // RP-STE
VOICE_ID_INVALID, VOICE_ID_INVALID, // MIC
VOICE_ID_INVALID,
#ifdef ENABLE_COMPANDER #ifdef ENABLE_COMPANDER
VOICE_ID_INVALID, VOICE_ID_INVALID, // COMPND
#endif #endif
VOICE_ID_INVALID, VOICE_ID_INVALID, // 1-CALL
VOICE_ID_INVALID, VOICE_ID_INVALID, // SLIST
VOICE_ID_INVALID, VOICE_ID_INVALID, // SLIST1
VOICE_ID_INVALID, VOICE_ID_INVALID, // SLIST2
#ifdef ENABLE_ALARM #ifdef ENABLE_ALARM
VOICE_ID_INVALID, VOICE_ID_INVALID, // AL-MOD
#endif #endif
VOICE_ID_ANI_CODE, VOICE_ID_ANI_CODE, // ANI-ID
VOICE_ID_INVALID, VOICE_ID_INVALID, // UPCODE
VOICE_ID_INVALID, VOICE_ID_INVALID, // DWCODE
VOICE_ID_INVALID, VOICE_ID_INVALID, // D-ST
VOICE_ID_INVALID, VOICE_ID_INVALID, // D-RSP
VOICE_ID_INVALID, VOICE_ID_INVALID, // D-HOLD
VOICE_ID_INVALID, VOICE_ID_INVALID, // D-PRE
VOICE_ID_INVALID, VOICE_ID_INVALID, // PTT-ID
VOICE_ID_INVALID, VOICE_ID_INVALID, // D-DCD
VOICE_ID_INVALID, VOICE_ID_INVALID, // D-LIST
VOICE_ID_INVALID, VOICE_ID_INVALID, // D-LIVE
VOICE_ID_INVALID, VOICE_ID_INVALID, // PONMSG
VOICE_ID_INVALID, VOICE_ID_INVALID, // ROGER
VOICE_ID_INVALID, VOICE_ID_INVALID, // BATVOL
VOICE_ID_INVALID, VOICE_ID_INVALID, // MODE
#ifdef ENABLE_NOAA #ifdef ENABLE_NOAA
VOICE_ID_INVALID, VOICE_ID_INVALID, // NOAA-S
#endif #endif
VOICE_ID_DELETE_CHANNEL, VOICE_ID_INITIALISATION, // RESET
VOICE_ID_INITIALISATION,
// hidden items // hidden items
VOICE_ID_INVALID, VOICE_ID_INVALID, // F-LOCK
VOICE_ID_INVALID, VOICE_ID_INVALID, // TX-200
VOICE_ID_INVALID, VOICE_ID_INVALID, // TX-350
VOICE_ID_INVALID, VOICE_ID_INVALID, // TX-500
VOICE_ID_INVALID, VOICE_ID_INVALID, // 350-EN
VOICE_ID_INVALID, VOICE_ID_INVALID, // SCR-EN
VOICE_ID_INVALID, VOICE_ID_INVALID, // TX-EN
VOICE_ID_INVALID VOICE_ID_INVALID // F-CALI
}; };
#endif #endif

View File

@ -290,14 +290,12 @@ const uint8_t BITMAP_VOX[18] =
0b01000000, 0b01000000,
0b00100000, 0b00100000,
0b00011111, 0b00011111,
0b00000000, 0b00000000,
0b00111110, 0b00111110,
0b01000001, 0b01000001,
0b01000001, 0b01000001,
0b01000001, 0b01000001,
0b00111110, 0b00111110,
0b00000000, 0b00000000,
0b01100011, 0b01100011,
0b00010100, 0b00010100,
@ -315,7 +313,6 @@ const uint8_t BITMAP_VOX[18] =
0b00011000, 0b00011000,
0b00100000, 0b00100000,
0b01111111, 0b01111111,
0b00000000, 0b00000000,
0b01100011, 0b01100011,
0b00010100, 0b00010100,
@ -324,7 +321,7 @@ const uint8_t BITMAP_VOX[18] =
0b01100011 0b01100011
}; };
#else #else
// 'XB' (cross-band) // 'XB' (cross-band/cross-VFO)
const uint8_t BITMAP_XB[12] = const uint8_t BITMAP_XB[12] =
{ // "XB" { // "XB"
0b00000000, 0b00000000,
@ -333,7 +330,6 @@ const uint8_t BITMAP_VOX[18] =
0b00001000, 0b00001000,
0b00010100, 0b00010100,
0b01100011, 0b01100011,
0b00000000, 0b00000000,
0b01111111, 0b01111111,
0b01001001, 0b01001001,
@ -351,7 +347,6 @@ const uint8_t BITMAP_TDR1[12] =
0b01000001, 0b01000001,
0b01000001, 0b01000001,
0b00111110, 0b00111110,
0b00000000, 0b00000000,
0b01111111, 0b01111111,
0b00100000, 0b00100000,
@ -361,20 +356,19 @@ const uint8_t BITMAP_TDR1[12] =
}; };
const uint8_t BITMAP_TDR2[12] = const uint8_t BITMAP_TDR2[12] =
{ // "--" { // "><" .. DW on hold
0b00000000, 0b00000000,
0b00010000, 0b00000000,
0b00010000, 0b00100010,
0b00010000, 0b00110110,
0b00010000, 0b00011100,
0b00010000, 0b00001000,
0b00000000,
0b00010000, 0b00001000,
0b00010000, 0b00011100,
0b00010000, 0b00110110,
0b00010000, 0b00100010,
0b00010000, 0b00000000
0b00010000,
}; };
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE

BIN
firmware

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -143,7 +143,7 @@ void UI_DisplayMain(void)
memmove(pLine0 + 0, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault)); memmove(pLine0 + 0, BITMAP_VFO_NotDefault, sizeof(BITMAP_VFO_NotDefault));
} }
uint32_t SomeValue = 0; uint32_t duff_beer = 0;
if (gCurrentFunction == FUNCTION_TRANSMIT) if (gCurrentFunction == FUNCTION_TRANSMIT)
{ // transmitting { // transmitting
@ -151,7 +151,7 @@ void UI_DisplayMain(void)
#ifdef ENABLE_ALARM #ifdef ENABLE_ALARM
if (gAlarmState == ALARM_STATE_ALARM) if (gAlarmState == ALARM_STATE_ALARM)
{ {
SomeValue = 2; duff_beer = 2;
} }
else else
#endif #endif
@ -159,14 +159,14 @@ void UI_DisplayMain(void)
Channel = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.RX_CHANNEL : gEeprom.TX_CHANNEL; Channel = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.RX_CHANNEL : gEeprom.TX_CHANNEL;
if (Channel == vfo_num) if (Channel == vfo_num)
{ // show the TX symbol { // show the TX symbol
SomeValue = 1; duff_beer = 1;
UI_PrintStringSmall("TX", 14, 0, Line); UI_PrintStringSmall("TX", 14, 0, Line);
} }
} }
} }
else else
{ // receiving .. show the RX symbol { // receiving .. show the RX symbol
SomeValue = 2; duff_beer = 2;
if ((gCurrentFunction == FUNCTION_RECEIVE || gCurrentFunction == FUNCTION_MONITOR) && gEeprom.RX_CHANNEL == vfo_num) if ((gCurrentFunction == FUNCTION_RECEIVE || gCurrentFunction == FUNCTION_MONITOR) && gEeprom.RX_CHANNEL == vfo_num)
UI_PrintStringSmall("RX", 14, 0, Line); UI_PrintStringSmall("RX", 14, 0, Line);
} }
@ -319,7 +319,7 @@ void UI_DisplayMain(void)
#else #else
// show the frequency in the main font // show the frequency in the main font
sprintf(String, "%03u.%05u", frequency / 100000, frequency % 100000); sprintf(String, "%03u.%05u", frequency / 100000, frequency % 100000);
UI_PrintString(String, 38, 112, Line, 8); UI_PrintString(String, 31, 112, Line, 8);
#endif #endif
} }
} }
@ -329,7 +329,7 @@ void UI_DisplayMain(void)
{ // show the TX/RX level { // show the TX/RX level
uint8_t Level = 0; uint8_t Level = 0;
if (SomeValue == 1) if (duff_beer == 1)
{ // TX power level { // TX power level
switch (gRxVfo->OUTPUT_POWER) switch (gRxVfo->OUTPUT_POWER)
{ {
@ -339,7 +339,7 @@ void UI_DisplayMain(void)
} }
} }
else else
if (SomeValue == 2) if (duff_beer == 2)
{ // RX signal level { // RX signal level
#ifdef ENABLE_DBM #ifdef ENABLE_DBM
// dBm // dBm
@ -387,7 +387,7 @@ void UI_DisplayMain(void)
} }
else else
{ // or show the CTCSS/DCS symbol { // or show the CTCSS/DCS symbol
const FREQ_Config_t *pConfig = (SomeValue == 1) ? gEeprom.VfoInfo[vfo_num].pTX : gEeprom.VfoInfo[vfo_num].pRX; const FREQ_Config_t *pConfig = (duff_beer == 1) ? gEeprom.VfoInfo[vfo_num].pTX : gEeprom.VfoInfo[vfo_num].pRX;
const unsigned int code_type = pConfig->CodeType; const unsigned int code_type = pConfig->CodeType;
const char *code_list[] = {"", "CT", "DCS", "DCR"}; const char *code_list[] = {"", "CT", "DCS", "DCR"};
if (code_type >= 0 && code_type < ARRAY_SIZE(code_list)) if (code_type >= 0 && code_type < ARRAY_SIZE(code_list))
@ -448,15 +448,9 @@ void UI_DisplayMain(void)
if (gChargingWithTypeC) if (gChargingWithTypeC)
{ // charging .. show the battery state { // charging .. show the battery state
#ifdef ENABLE_SHOW_CHARGE_LEVEL #ifdef ENABLE_SHOW_CHARGE_LEVEL
const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage;
(gBatteryVoltageAverage > gMax_bat_v) ? gMax_bat_v : const uint16_t percent = (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v);
gBatteryVoltageAverage; sprintf(String, "Charge %u.%02uV %u%%", gBatteryVoltageAverage / 100, gBatteryVoltageAverage % 100, percent);
sprintf(String, "Charge %u.%02uV %u%%",
gBatteryVoltageAverage / 100,
gBatteryVoltageAverage % 100,
(100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v));
UI_PrintStringSmall(String, 2, 0, 3); UI_PrintStringSmall(String, 2, 0, 3);
#endif #endif
} }

View File

@ -48,22 +48,23 @@ const char MenuList[][7] =
"T-CTCS", // was "T_CTCS" "T-CTCS", // was "T_CTCS"
"T-DIR", // was "SFT_D" "T-DIR", // was "SFT_D"
"T-OFFS", // was "OFFSET" "T-OFFS", // was "OFFSET"
"T-VFO", // was "WX"
"T-TOUT", // was "TOT"
"W/N", "W/N",
"SCRAM", // was "SCR" "SCRAM", // was "SCR"
"BUSYCL", // was "BCL" "BUSYCL", // was "BCL"
"MEMSAV", // was "MEM-CH" "CH-SAV", // was "MEM-CH"
"CH-DEL", // was "DEL-CH"
"CH-DIS", // was "MDF"
"BATSAV", // was "SAVE" "BATSAV", // was "SAVE"
"VOX", "VOX",
"BACKLT", // was "ABR" "BACKLT", // was "ABR"
"DUALRX", // was "TDR" "DUALRX", // was "TDR"
"T-VFO", // was "WX"
"BEEP", "BEEP",
"T-TOUT", // was "TOT"
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
"VOICE", "VOICE",
#endif #endif
"SC-REV", "SC-REV",
"CHDISP", // was "MDF"
"KEYLOC", // was "AUTOLk" "KEYLOC", // was "AUTOLk"
"S-ADD1", "S-ADD1",
"S-ADD2", "S-ADD2",
@ -98,11 +99,10 @@ const char MenuList[][7] =
#ifdef ENABLE_NOAA #ifdef ENABLE_NOAA
"NOAA-S", "NOAA-S",
#endif #endif
"MEMDEL", // was "Del-CH" "RESET", // might be better to move this to the hidden menu items ?
"RESET",
// hidden menu items from here on. // hidden menu items from here on
// enabled if pressing PTT and upper side button at power-on. // enabled if pressing both the PTT and upper side button at power-on
"F-LOCK", "F-LOCK",
"TX-200", // was "200TX" "TX-200", // was "200TX"
@ -114,7 +114,7 @@ const char MenuList[][7] =
"TX-EN", // enable TX "TX-EN", // enable TX
"F-CALI", // reference xtal calibration "F-CALI", // reference xtal calibration
"" // end of list - DO NOT DELETE THIS ! "" // end of list - DO NOT DELETE THIS ! .. I use this to compute this list size
}; };
const char gSubMenu_TXP[3][5] = const char gSubMenu_TXP[3][5] =
@ -556,7 +556,8 @@ void UI_DisplayMenu(void)
{ // 2nd text line .. percentage { // 2nd text line .. percentage
UI_PrintString(String, 50, 127, 1, 8); UI_PrintString(String, 50, 127, 1, 8);
const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage;
sprintf(String, "%u%%", (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v)); const uint16_t percent = (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v);
sprintf(String, "%u%%", percent);
UI_PrintString(String, 50, 127, 3, 8); UI_PrintString(String, 50, 127, 3, 8);
#if 0 #if 0
sprintf(String, "Curr %u", gBatteryCurrent); // needs scaling into mA sprintf(String, "Curr %u", gBatteryCurrent); // needs scaling into mA

View File

@ -31,22 +31,23 @@ enum
MENU_T_CTCS, MENU_T_CTCS,
MENU_SFT_D, MENU_SFT_D,
MENU_OFFSET, MENU_OFFSET,
MENU_XB,
MENU_TOT,
MENU_W_N, MENU_W_N,
MENU_SCR, MENU_SCR,
MENU_BCL, MENU_BCL,
MENU_MEM_CH, MENU_MEM_CH,
MENU_DEL_CH,
MENU_MDF,
MENU_SAVE, MENU_SAVE,
MENU_VOX, MENU_VOX,
MENU_ABR, MENU_ABR,
MENU_TDR, MENU_TDR,
MENU_XB,
MENU_BEEP, MENU_BEEP,
MENU_TOT,
#ifdef ENABLE_VOICE #ifdef ENABLE_VOICE
MENU_VOICE, MENU_VOICE,
#endif #endif
MENU_SC_REV, MENU_SC_REV,
MENU_MDF,
MENU_AUTOLK, MENU_AUTOLK,
MENU_S_ADD1, MENU_S_ADD1,
MENU_S_ADD2, MENU_S_ADD2,
@ -81,7 +82,6 @@ enum
#ifdef ENABLE_NOAA #ifdef ENABLE_NOAA
MENU_NOAA_S, MENU_NOAA_S,
#endif #endif
MENU_DEL_CH,
MENU_RESET, MENU_RESET,
// items after here are normally hidden // items after here are normally hidden

View File

@ -122,17 +122,21 @@ void UI_DisplayStatus(const bool test_display)
UI_PrintStringSmallBuffer(s, line); UI_PrintStringSmallBuffer(s, line);
//line += 8 * 4; //line += 8 * 4;
#elif defined(ENABLE_STATUSBAR_PERCENTAGE) #elif defined(ENABLE_STATUSBAR_PERCENTAGE)
char s[6];
const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage;
sprintf(s, "%u%%", (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v)); const uint16_t percent = (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v);
UI_PrintStringSmallBuffer(s, line); const unsigned int x = (percent >= 100) ? 0 : 4; // move to the right a bit
char s[8];
sprintf(s, "%u%%", percent);
UI_PrintStringSmallBuffer(s, line + x);
//line += 8 * 4; //line += 8 * 4;
#endif #endif
} }
// else
// line += sizeof(BITMAP_F_Key);
line = gStatusLine + LCD_WIDTH - sizeof(BITMAP_BatteryLevel5) - sizeof(BITMAP_USB_C); // point to right side of the screen
// move to right side of the screen
line = gStatusLine + LCD_WIDTH - sizeof(BITMAP_BatteryLevel5) - sizeof(BITMAP_USB_C);
// USB-C charge indicator // USB-C charge indicator
if (gChargingWithTypeC || test_display) if (gChargingWithTypeC || test_display)