diff --git a/src/W800_SDK_v1.00.10/app/gfx/settings_screen.c b/src/W800_SDK_v1.00.10/app/gfx/settings_screen.c index 18d80d2..d0ed3ac 100644 --- a/src/W800_SDK_v1.00.10/app/gfx/settings_screen.c +++ b/src/W800_SDK_v1.00.10/app/gfx/settings_screen.c @@ -22,6 +22,7 @@ static const char* language_options = "Francais\nDeutsch\nEnglish"; static void _simulate_side_screen_item_click(SettingsScreen_t * const settingsScreen, lv_obj_t *item); static void _set_rtc_time_to_label(SettingsScreen_t * const settingsScreen); +static void _set_battery_voltage_to_label(SettingsScreen_t * const settingsScreen); static void _settings_screen_update_labels_language(SettingsScreen_t * const settingsScreen) { @@ -232,6 +233,7 @@ static void about_refresh_timer_cb(lv_timer_t *timer) { SettingsScreen_t *settingsScreen = timer->user_data; _set_rtc_time_to_label(settingsScreen); + _set_battery_voltage_to_label(settingsScreen); } static lv_obj_t *add_menu_list_item(lv_obj_t *list, const char *text, lv_event_cb_t event_cb, void *user_data) @@ -479,10 +481,22 @@ static void load_connectivity_side_screen(SettingsScreen_t *settingsScreen) lv_label_set_text_static(label, "Bluetooth"); lv_obj_align_to(label, settingsScreen->ble_switch, LV_ALIGN_OUT_RIGHT_MID, 10, 0); + label = lv_label_create(settingsScreen->side_screen); + lv_label_set_text_static(label, "Device Name :"); + lv_obj_align_to(label, settingsScreen->ble_switch, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + + lv_obj_t *dev_name_label = lv_label_create(settingsScreen->side_screen); + const char * ble_dev_name = NULL; + if(settingsScreen->settingsScreenAPIInterface.getBLEDeviceNameCb) settingsScreen->settingsScreenAPIInterface.getBLEDeviceNameCb(&ble_dev_name); + lv_label_set_text_static(dev_name_label, ble_dev_name); + lv_obj_set_style_text_color(dev_name_label, lv_color_make(130, 130, 130), LV_PART_MAIN); + lv_obj_align_to(dev_name_label, label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + settingsScreen->wifi_switch = lv_switch_create(settingsScreen->side_screen); - lv_obj_align_to(settingsScreen->wifi_switch, settingsScreen->ble_switch, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10); + lv_obj_align_to(settingsScreen->wifi_switch, dev_name_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10); if(settingsScreen->settingsScreenAPIInterface.setWiFiEnabledSettingsCb)settingsScreen->settingsScreenAPIInterface.setWiFiEnabledSettingsCb(&toggled, SETTING_MODE_GET); if(toggled) lv_obj_add_state(settingsScreen->wifi_switch, LV_STATE_CHECKED); + lv_obj_add_state(settingsScreen->wifi_switch, LV_STATE_DISABLED); lv_obj_add_event_cb(settingsScreen->wifi_switch, &(activation_switch_cb), LV_EVENT_VALUE_CHANGED, settingsScreen); label = lv_label_create(settingsScreen->side_screen); @@ -541,9 +555,18 @@ static void load_about_side_screen(SettingsScreen_t *settingsScreen) lv_obj_align_to(settingsScreen->currentTime.current_time_label, rtc_time, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); _set_rtc_time_to_label(settingsScreen); + lv_obj_t *battery_label = lv_label_create(settingsScreen->side_screen); + lv_label_set_text_static(battery_label, "Battery Voltage :"); + lv_obj_align_to(battery_label, settingsScreen->currentTime.current_time_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + + settingsScreen->batteryVoltage.batteryVoltageLabel = lv_label_create(settingsScreen->side_screen); + _set_battery_voltage_to_label(settingsScreen); + lv_obj_set_style_text_color(settingsScreen->batteryVoltage.batteryVoltageLabel, lv_color_make(130, 130, 130), LV_PART_MAIN); + lv_obj_align_to(settingsScreen->batteryVoltage.batteryVoltageLabel, battery_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + label = lv_label_create(settingsScreen->side_screen); lv_label_set_text_static(label, "Factory Reset :"); - lv_obj_align_to(label, settingsScreen->currentTime.current_time_label, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); + lv_obj_align_to(label, settingsScreen->batteryVoltage.batteryVoltageLabel, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5); lv_obj_t *factory_rst_btn = lv_btn_create(settingsScreen->side_screen); lv_obj_align_to(factory_rst_btn, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 5); @@ -720,3 +743,11 @@ static void _set_rtc_time_to_label(SettingsScreen_t * const settingsScreen) year+2000); lv_label_set_text_static(settingsScreen->currentTime.current_time_label, settingsScreen->currentTime.current_time_text); } + +static void _set_battery_voltage_to_label(SettingsScreen_t * const settingsScreen) +{ + uint16_t voltage = 0; + if(settingsScreen->settingsScreenAPIInterface.getBatteryVoltageCb) settingsScreen->settingsScreenAPIInterface.getBatteryVoltageCb(&voltage); + sprintf(settingsScreen->batteryVoltage.batteryVoltageText, "%u mV", voltage); + lv_label_set_text_static(settingsScreen->batteryVoltage.batteryVoltageLabel, settingsScreen->batteryVoltage.batteryVoltageText); +} diff --git a/src/W800_SDK_v1.00.10/app/gfx/settings_screen.h b/src/W800_SDK_v1.00.10/app/gfx/settings_screen.h index b8feb4c..7280a8f 100644 --- a/src/W800_SDK_v1.00.10/app/gfx/settings_screen.h +++ b/src/W800_SDK_v1.00.10/app/gfx/settings_screen.h @@ -21,6 +21,8 @@ typedef struct SettingsScreenAPIInterface void (*setBLEEnabledSettingsCb)(bool *enabled, SettingMode_e mode); void (*setWiFiEnabledSettingsCb)(bool *enabled, SettingMode_e mode); void (*setLanguageSettingsCb)(uint8_t *language, SettingMode_e mode); + void (*getBLEDeviceNameCb)(const char **dev_name); + void (*getBatteryVoltageCb)(uint16_t *battery_voltage); void (*saveSettingsCb)(void); void (*factoryResetCb)(void); } SettingsScreenAPIInterface_t; @@ -38,6 +40,7 @@ typedef struct SettingsScreen lv_obj_t *side_screen; + /* Menu widgets */ lv_obj_t *hour_roller; lv_obj_t *minute_roller; lv_obj_t *second_roller; @@ -56,6 +59,12 @@ typedef struct SettingsScreen char current_time_text[20]; } currentTime; + struct + { + lv_obj_t *batteryVoltageLabel; + char batteryVoltageText[8]; + } batteryVoltage; + /* Main screen */ lv_obj_t *display;