diff --git a/Makefile b/Makefile index 6fe777f..f194b92 100644 --- a/Makefile +++ b/Makefile @@ -26,8 +26,8 @@ ENABLE_NO_SCAN_TIMEOUT := 1 ENABLE_AM_FIX := 1 ENABLE_AM_FIX_SHOW_DATA := 1 ENABLE_SQUELCH1_LOWER := 0 -ENABLE_RSSI_BAR := 0 -ENABLE_AUDIO_BAR := 0 +ENABLE_RSSI_BAR := 1 +ENABLE_AUDIO_BAR := 1 #ENABLE_COPY_CHAN_TO_VFO := 1 #ENABLE_SINGLE_VFO_CHAN := 1 #ENABLE_BAND_SCOPE := 1 diff --git a/firmware.bin b/firmware.bin index 395b701..99110d5 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index 086adc0..11d2deb 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ diff --git a/ui/main.c b/ui/main.c index f7a8b38..b83372d 100644 --- a/ui/main.c +++ b/ui/main.c @@ -120,6 +120,7 @@ bool center_line_is_free = true; void UI_DisplayRSSIBar(const int16_t rssi, const bool now) { const int16_t s0_dBm = -127; // S0 .. base level +// const int16_t s0_dBm = -147; // S0 .. base level const int16_t s9_dBm = s0_dBm + (6 * 9); // S9 .. 6dB/S-Point const int16_t bar_max_dBm = s9_dBm + 30; // S9+30dB @@ -131,8 +132,8 @@ bool center_line_is_free = true; const unsigned int bar_x = 2 + txt_width + 4; // X coord of bar graph const unsigned int bar_width = LCD_WIDTH - 1 - bar_x; - const int16_t dBm = (rssi / 2) - 160; - const int16_t clamped_dBm = (dBm <= bar_min_dBm) ? bar_min_dBm : (dBm >= bar_max_dBm) ? bar_max_dBm : dBm; + const int16_t rssi_dBm = (rssi / 2) - 160; + const int16_t clamped_dBm = (rssi_dBm <= bar_min_dBm) ? bar_min_dBm : (rssi_dBm >= bar_max_dBm) ? bar_max_dBm : rssi_dBm; const unsigned int bar_range_dB = bar_max_dBm - bar_min_dBm; const unsigned int len = ((clamped_dBm - bar_min_dBm) * bar_width) / bar_range_dB; @@ -141,26 +142,26 @@ bool center_line_is_free = true; char s[16]; unsigned int i; - unsigned int s_level = 0; // S0 if (gEeprom.KEY_LOCK && gKeypadLocked > 0) return; // display is in use if (gCurrentFunction == FUNCTION_TRANSMIT || gScreenToDisplay != DISPLAY_MAIN) return; // display is in use - if (dBm >= (s9_dBm + 10)) // S9+10dB - s_level = ((dBm - s9_dBm) / 10) * 10; - else - if (dBm >= s0_dBm) // S0 - s_level = (dBm - s0_dBm) / 6; // 6dB per S point - if (now) memset(pLine, 0, LCD_WIDTH); - if (s_level < 10) - sprintf(s, "%-4d S%u ", dBm, s_level); // S0 ~ S9 + if (rssi_dBm >= (s9_dBm + 6)) + { // S9+XXdB, 1dB increment + const char *fmt[] = {"%-4d +%u ", "%-4d +%u "}; + const unsigned int dB = rssi_dBm - s9_dBm; + sprintf(s, (dB < 10) ? fmt[0] : fmt[1], rssi_dBm, dB); + } else - sprintf(s, "%-4d +%2u", dBm, s_level); // S9+XX + { // S0 ~ S9, 6dB per S-point + const unsigned int s_level = (rssi_dBm >= s0_dBm) ? (rssi_dBm - s0_dBm) / 6 : 0; + sprintf(s, "%-4d S%u ", rssi_dBm, s_level); + } UI_PrintStringSmall(s, 2, 0, line); #if 1 @@ -184,7 +185,7 @@ void UI_UpdateRSSI(const int16_t rssi, const int vfo) if (!center_line_is_free) return; - + const bool rx = (gCurrentFunction == FUNCTION_RECEIVE || gCurrentFunction == FUNCTION_MONITOR || gCurrentFunction == FUNCTION_INCOMING); @@ -293,7 +294,7 @@ void UI_DisplayMain(void) unsigned int vfo_num; center_line_is_free = true; - + // #ifdef SINGLE_VFO_CHAN // const bool single_vfo = (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF && gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? true : false; // #else @@ -747,7 +748,7 @@ void UI_DisplayMain(void) UI_PrintStringSmall(String, 2, 0, 3); } #endif - + #ifdef ENABLE_SHOW_CHARGE_LEVEL else if (gChargingWithTypeC)