From 1100388ce303c10a9994d8e37139e09b9cc30d70 Mon Sep 17 00:00:00 2001 From: Armel FAUVEAU Date: Sun, 11 Feb 2024 20:01:31 +0100 Subject: [PATCH] Add SetMet to set meter --- app/menu.c | 10 +++++++++ misc.c | 1 + misc.h | 1 + settings.c | 7 +++++-- ui/main.c | 59 ++++++++++++++++++++++++++++++++++++------------------ ui/menu.c | 11 ++++++++++ ui/menu.h | 2 ++ 7 files changed, 69 insertions(+), 22 deletions(-) diff --git a/app/menu.c b/app/menu.c index 2d3d05a..589a33b 100644 --- a/app/menu.c +++ b/app/menu.c @@ -392,6 +392,10 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax) *pMin = 0; *pMax = ARRAY_SIZE(gSubMenu_SET_LCK) - 1; break; + case MENU_SET_MET: + *pMin = 0; + *pMax = ARRAY_SIZE(gSubMenu_SET_MET) - 1; + break; #endif default: @@ -859,6 +863,9 @@ void MENU_AcceptSetting(void) case MENU_SET_LCK: gSetting_set_lck = gSubMenuSelection; break; + case MENU_SET_MET: + gSetting_set_met = gSubMenuSelection; + break; #endif } @@ -1248,6 +1255,9 @@ void MENU_ShowCurrentSetting(void) case MENU_SET_LCK: gSubMenuSelection = gSetting_set_lck; break; + case MENU_SET_MET: + gSubMenuSelection = gSetting_set_met; + break; #endif default: diff --git a/misc.c b/misc.c index f858a86..ed707df 100644 --- a/misc.c +++ b/misc.c @@ -103,6 +103,7 @@ enum BacklightOnRxTx_t gSetting_backlight_on_tx_rx; bool gSetting_set_inv = false; uint8_t gSetting_set_eot = 0; bool gSetting_set_lck = false; + bool gSetting_set_met = 0; bool gSetting_set_ptt_session; #endif diff --git a/misc.h b/misc.h index e069a13..e7fd9bb 100644 --- a/misc.h +++ b/misc.h @@ -164,6 +164,7 @@ extern enum BacklightOnRxTx_t gSetting_backlight_on_tx_rx; extern bool gSetting_set_inv; extern uint8_t gSetting_set_eot; extern bool gSetting_set_lck; + extern bool gSetting_set_met; extern bool gSetting_set_ptt_session; #endif diff --git a/settings.c b/settings.c index 661d001..65b556b 100644 --- a/settings.c +++ b/settings.c @@ -297,6 +297,7 @@ void SETTINGS_InitEEPROM(void) gSetting_set_inv = (((tmp >> 0) & 0x01) < 2) ? ((tmp >> 0) & 0x01): 0; gSetting_set_lck = (((tmp >> 1) & 0x01) < 2) ? ((tmp >> 1) & 0x01): 0; + gSetting_set_met = (((tmp >> 2) & 0x01) < 2) ? ((tmp >> 2) & 0x01): 0; gSetting_set_ctr = (((Data[5] & 0x0F)) < 16) ? ((Data[5] & 0x0F)) : 5; // And set special session settings for actions @@ -637,9 +638,11 @@ void SETTINGS_SaveSettings(void) */ if(gSetting_set_inv == 1) - tmp = tmp | (1 << 0); + tmp = tmp | (1 << 0); if (gSetting_set_lck == 1) - tmp = tmp | (1 << 1); + tmp = tmp | (1 << 1); + if (gSetting_set_met == 1) + tmp = tmp | (2 << 1); State[5] = ((tmp << 4) | (gSetting_set_ctr & 0x0F)); State[6] = ((gSetting_set_tot << 4) | (gSetting_set_eot & 0x0F)); diff --git a/ui/main.c b/ui/main.c index ebb6d0b..6dac042 100644 --- a/ui/main.c +++ b/ui/main.c @@ -90,22 +90,7 @@ static void DrawSmallAntennaAndBars(uint8_t *p, unsigned int level) static void DrawLevelBar(uint8_t xpos, uint8_t line, uint8_t level) { -#ifdef ENABLE_FEAT_F4HWN - const char hollowBar[] = { - 0b00111110, - 0b00100010, - 0b00100010, - 0b00111110 - }; - - const char simpleBar[] = { - 0b00111110, - 0b00111110, - 0b00111110, - 0b00111110 - }; - -#else +#ifndef ENABLE_FEAT_F4HWN const char hollowBar[] = { 0b01111111, 0b01000001, @@ -119,11 +104,45 @@ static void DrawLevelBar(uint8_t xpos, uint8_t line, uint8_t level) for(uint8_t i = 0; i < level; i++) { #ifdef ENABLE_FEAT_F4HWN - if(i < 9) { - memcpy(p_line + (xpos + i * 5), &simpleBar, ARRAY_SIZE(simpleBar)); + if(gSetting_set_met) + { + const char hollowBar[] = { + 0b01111111, + 0b01000001, + 0b01000001, + 0b01111111 + }; + + if(i < 9) { + for(uint8_t j = 0; j < 4; j++) + p_line[xpos + i * 5 + j] = (~(0x7F >> (i+1))) & 0x7F; + } + else { + memcpy(p_line + (xpos + i * 5), &hollowBar, ARRAY_SIZE(hollowBar)); + } } - else { - memcpy(p_line + (xpos + i * 5), &hollowBar, ARRAY_SIZE(hollowBar)); + else + { + const char hollowBar[] = { + 0b00111110, + 0b00100010, + 0b00100010, + 0b00111110 + }; + + const char simpleBar[] = { + 0b00111110, + 0b00111110, + 0b00111110, + 0b00111110 + }; + + if(i < 9) { + memcpy(p_line + (xpos + i * 5), &simpleBar, ARRAY_SIZE(simpleBar)); + } + else { + memcpy(p_line + (xpos + i * 5), &hollowBar, ARRAY_SIZE(hollowBar)); + } } #else if(i < 9) { diff --git a/ui/menu.c b/ui/menu.c index 0cde85c..7e4e0c8 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -133,6 +133,7 @@ const t_menu_item MenuList[] = {"SetCtr", VOICE_ID_INVALID, MENU_SET_CTR }, {"SetInv", VOICE_ID_INVALID, MENU_SET_INV }, {"SetLck", VOICE_ID_INVALID, MENU_SET_LCK }, + {"SetMet", VOICE_ID_INVALID, MENU_SET_MET }, #endif // hidden menu items from here on // enabled if pressing both the PTT and upper side button at power-on @@ -377,6 +378,12 @@ const char gSubMenu_SCRAMBLER[][7] = "KEYS", "KEYS+PTT" }; + + const char gSubMenu_SET_MET[][8] = + { + "TINY", + "CLASSIC" + }; #endif const t_sidefunction gSubMenu_SIDEFUNCTIONS[] = @@ -933,6 +940,10 @@ void UI_DisplayMenu(void) case MENU_SET_LCK: strcpy(String, gSubMenu_SET_LCK[gSubMenuSelection]); break; + + case MENU_SET_MET: + strcpy(String, gSubMenu_SET_MET[gSubMenuSelection]); + break; #endif } diff --git a/ui/menu.h b/ui/menu.h index 48142bb..0dc4966 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -129,6 +129,7 @@ enum MENU_SET_CTR, MENU_SET_INV, MENU_SET_LCK, + MENU_SET_MET, #endif MENU_BATCAL, // battery voltage calibration MENU_F1SHRT, @@ -167,6 +168,7 @@ extern const char gSubMenu_D_RSP[4][11]; extern const char gSubMenu_SET_PTT[2][8]; extern const char gSubMenu_SET_TOT[4][7]; extern const char gSubMenu_SET_LCK[2][9]; + extern const char gSubMenu_SET_MET[2][8]; #endif extern const char* const gSubMenu_PTT_ID[5];