Disable RTC related code on platforms without a functional RTC

This commit is contained in:
Federico Amedeo Izzo 2021-01-01 18:58:35 +01:00
parent 8163eba67b
commit 94b7be826a
8 changed files with 36 additions and 0 deletions

View File

@ -31,7 +31,9 @@ void state_init()
* or initialize them to sane defaults
*/
state.radioStateUpdated = true;
#ifdef HAS_RTC
state.time = rtc_getTime();
#endif
state.v_bat = platform_getVbat();
state.channelInfoUpdated = true;

View File

@ -237,7 +237,9 @@ static void dev_task(void *arg)
// Lock mutex and update internal state
OSMutexPend(&state_mutex, 0u, OS_OPT_PEND_BLOCKING, 0u, &os_err);
#ifdef HAS_RTC
state.time = rtc_getTime();
#endif
state.v_bat = platform_getVbat();
OSMutexPost(&state_mutex, OS_OPT_POST_NONE, &os_err);

View File

@ -97,7 +97,9 @@ const uint8_t menu_num = sizeof(menu_items)/sizeof(menu_items[0]);
const char *settings_items[1] =
{
#ifdef HAS_RTC
"Time & Date"
#endif
};
// Calculate number of settings menu entries
const uint8_t settings_num = sizeof(settings_items)/sizeof(settings_items[0]);
@ -150,9 +152,12 @@ freq_t new_rx_frequency;
freq_t new_tx_frequency;
char new_rx_freq_buf[14] = "";
char new_tx_freq_buf[14] = "";
#ifdef HAS_RTC
curTime_t new_timedate = {0};
char new_date_buf[9] = "";
char new_time_buf[9] = "";
#endif
layout_t _ui_calculateLayout()
{
@ -273,12 +278,14 @@ void _ui_drawVFOBackground()
void _ui_drawVFOTop(state_t* last_state)
{
#ifdef HAS_RTC
// Print clock on top bar
char clock_buf[9] = "";
snprintf(clock_buf, sizeof(clock_buf), "%02d:%02d:%02d", last_state->time.hour,
last_state->time.minute, last_state->time.second);
gfx_print(layout.top_pos, clock_buf, layout.top_font, TEXT_ALIGN_CENTER,
color_white);
#endif
// Print battery icon on top bar, use 4 px padding
float charge = battery_getCharge(last_state->v_bat);
@ -483,6 +490,7 @@ void _ui_drawMenuSettings()
_ui_drawMenuList(layout.line1_pos, settings_items, settings_num, menu_selected);
}
#ifdef HAS_RTC
void _ui_drawSettingsTimeDate(state_t* last_state)
{
gfx_clearScreen();
@ -541,6 +549,7 @@ void _ui_drawSettingsTimeDateSet(state_t* last_state)
gfx_print(layout.line3_pos, new_time_buf, layout.line3_font, TEXT_ALIGN_CENTER,
color_white);
}
#endif
void ui_init()
{
@ -597,6 +606,7 @@ freq_t _ui_freq_add_digit(freq_t freq, uint8_t pos, uint8_t number)
return freq += number * coefficient;
}
#ifdef HAS_RTC
curTime_t _ui_timedate_add_digit(curTime_t timedate, uint8_t pos, uint8_t number)
{
switch(pos)
@ -639,6 +649,7 @@ curTime_t _ui_timedate_add_digit(curTime_t timedate, uint8_t pos, uint8_t number
}
return timedate;
}
#endif
bool _ui_freq_check_limits(freq_t freq)
{
@ -860,10 +871,12 @@ void ui_updateFSM(event_t event, bool *sync_rtx)
// Open selected menu item
switch(menu_selected)
{
#ifdef HAS_RTC
// TODO: Add missing submenu states
case 0:
state.ui_screen = SETTINGS_TIMEDATE;
break;
#endif
default:
state.ui_screen = MENU_TOP;
}
@ -878,6 +891,7 @@ void ui_updateFSM(event_t event, bool *sync_rtx)
menu_selected = 0;
}
break;
#ifdef HAS_RTC
// Time&Date settings screen
case SETTINGS_TIMEDATE:
if(msg.keys & KEY_ENTER)
@ -923,6 +937,7 @@ void ui_updateFSM(event_t event, bool *sync_rtx)
input_position, input_number);
}
break;
#endif
}
}
}
@ -957,6 +972,7 @@ bool ui_updateGUI(state_t last_state)
_ui_drawMenuSettings();
screen_update = true;
break;
#ifdef HAS_RTC
// Time&Date settings screen
case SETTINGS_TIMEDATE:
_ui_drawSettingsTimeDate(&last_state);
@ -967,6 +983,7 @@ bool ui_updateGUI(state_t last_state)
_ui_drawSettingsTimeDateSet(&last_state);
screen_update = true;
break;
#endif
// Low battery screen
case LOW_BAT:
screen_update = _ui_drawLowBatteryScreen();

View File

@ -22,6 +22,9 @@
#include <stm32f4xx.h>
/* Device has a working real time clock */
#define HAS_RTC
/* Supported radio bands */
#define BAND_VHF
#define BAND_UHF

View File

@ -22,6 +22,9 @@
#include <stm32f4xx.h>
/* Device has a working real time clock */
#define HAS_RTC
/* Supported radio bands */
#define BAND_VHF
#define BAND_UHF

View File

@ -23,6 +23,9 @@
#include <stm32f4xx.h>
/* Device has a working real time clock */
#define HAS_RTC
/* Supported radio bands */
#define BAND_VHF
#define BAND_UHF

View File

@ -22,6 +22,9 @@
#include <stm32f4xx.h>
/* Device has a working real time clock */
#define HAS_RTC
/* Supported radio bands */
#define BAND_VHF
#define BAND_UHF

View File

@ -18,6 +18,9 @@
#define PLATFORM_LINUX
/* Device has a working real time clock */
#define HAS_RTC
/* Supported radio bands */
#define BAND_VHF
#define BAND_UHF