change battery measurement, add battery monitor
This commit is contained in:
@@ -43,17 +43,23 @@ void gui_loop( TTGOClass *ttgo ){
|
||||
|
||||
// do task handler if still an useraction or go to standby after timeout
|
||||
if ( !powermgm_get_event( POWERMGM_STANDBY ) ) {
|
||||
if (lv_disp_get_inactive_time(NULL) < display_get_timeout() * 1000 ) {
|
||||
if ( display_get_timeout() == DISPLAY_MAX_TIMEOUT ) {
|
||||
lv_task_handler();
|
||||
if ( lv_disp_get_inactive_time(NULL) > ( ( display_get_timeout() * 1000 ) - display_get_brightness() * 8 ) ) {
|
||||
ttgo->bl->adjust( ( ( display_get_timeout() * 1000 ) - lv_disp_get_inactive_time(NULL) ) / 8 );
|
||||
}
|
||||
else {
|
||||
ttgo->bl->adjust( display_get_brightness() );
|
||||
}
|
||||
ttgo->bl->adjust( display_get_brightness() );
|
||||
}
|
||||
else {
|
||||
powermgm_set_event( POWERMGM_PMU_BUTTON );
|
||||
if ( lv_disp_get_inactive_time(NULL) < display_get_timeout() * 1000 ) {
|
||||
lv_task_handler();
|
||||
if ( lv_disp_get_inactive_time(NULL) > ( ( display_get_timeout() * 1000 ) - display_get_brightness() * 8 ) ) {
|
||||
ttgo->bl->adjust( ( ( display_get_timeout() * 1000 ) - lv_disp_get_inactive_time(NULL) ) / 8 );
|
||||
}
|
||||
else {
|
||||
ttgo->bl->adjust( display_get_brightness() );
|
||||
}
|
||||
}
|
||||
else {
|
||||
powermgm_set_event( POWERMGM_PMU_BUTTON );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "note_tile/note_tile.h"
|
||||
#include "app_tile/app_tile.h"
|
||||
|
||||
#include "setup_tile/battery_settings/battery_settings.h"
|
||||
#include "setup_tile/wlan_settings/wlan_settings.h"
|
||||
#include "setup_tile/move_settings/move_settings.h"
|
||||
#include "setup_tile/display_settings/display_settings.h"
|
||||
@@ -24,7 +25,8 @@ lv_tile_entry_t tile_entry[ TILE_NUM ] {
|
||||
{ NULL, WLAN_SETTINGS_TILE, wlan_settings_tile_setup, { 1,3 } },
|
||||
{ NULL, WLAN_PASSWORD_TILE, wlan_password_tile_setup, { 2,3 } },
|
||||
{ NULL, MOVE_SETTINGS_TILE, move_settings_tile_setup, { 3,3 } },
|
||||
{ NULL, DISPLAY_SETTINGS_TILE, display_settings_tile_setup, { 5,3 } }
|
||||
{ NULL, DISPLAY_SETTINGS_TILE, display_settings_tile_setup, { 5,3 } },
|
||||
{ NULL, BATTERY_SETTINGS_TILE, battery_settings_tile_setup, { 7,3 } }
|
||||
};
|
||||
|
||||
void mainbar_setup( void ) {
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
WLAN_PASSWORD_TILE,
|
||||
MOVE_SETTINGS_TILE,
|
||||
DISPLAY_SETTINGS_TILE,
|
||||
BATTERY_SETTINGS_TILE,
|
||||
TILE_NUM
|
||||
} lv_tile_number;
|
||||
|
||||
|
||||
165
src/gui/mainbar/setup_tile/battery_settings/battery_settings.cpp
Normal file
165
src/gui/mainbar/setup_tile/battery_settings/battery_settings.cpp
Normal file
@@ -0,0 +1,165 @@
|
||||
#include "config.h"
|
||||
#include <TTGO.h>
|
||||
#include "battery_settings.h"
|
||||
|
||||
#include "gui/mainbar/mainbar.h"
|
||||
#include "gui/statusbar.h"
|
||||
#include "hardware/pmu.h"
|
||||
|
||||
lv_obj_t *battery_settings_tile1=NULL;
|
||||
lv_style_t battery_settings_style;
|
||||
|
||||
lv_obj_t *battery_design_cap;
|
||||
lv_obj_t *battery_current_cap;
|
||||
lv_obj_t *battery_voltage;
|
||||
lv_obj_t *charge_current;
|
||||
lv_obj_t *discharge_current;
|
||||
lv_obj_t *vbus_voltage;
|
||||
|
||||
LV_IMG_DECLARE(exit_32px);
|
||||
|
||||
static void exit_battery_setup_event_cb( lv_obj_t * obj, lv_event_t event );
|
||||
void battery_update_task( lv_task_t *task );
|
||||
|
||||
void battery_settings_tile_setup( lv_obj_t *tile, lv_style_t *style, lv_coord_t hres, lv_coord_t vres ) {
|
||||
lv_style_init( &battery_settings_style );
|
||||
lv_style_set_radius( &battery_settings_style, LV_OBJ_PART_MAIN, 0);
|
||||
lv_style_set_bg_color( &battery_settings_style, LV_OBJ_PART_MAIN, LV_COLOR_GRAY);
|
||||
lv_style_set_bg_opa( &battery_settings_style, LV_OBJ_PART_MAIN, LV_OPA_100);
|
||||
lv_style_set_border_width( &battery_settings_style, LV_OBJ_PART_MAIN, 0);
|
||||
lv_style_set_text_color( &battery_settings_style, LV_OBJ_PART_MAIN, LV_COLOR_BLACK);
|
||||
lv_style_set_image_recolor( &battery_settings_style, LV_OBJ_PART_MAIN, LV_COLOR_BLACK);
|
||||
|
||||
battery_settings_tile1 = lv_obj_create( tile, NULL);
|
||||
lv_obj_set_size(battery_settings_tile1, hres , vres);
|
||||
lv_obj_align(battery_settings_tile1, NULL, LV_ALIGN_CENTER, 0, 0);
|
||||
lv_obj_add_style( battery_settings_tile1, LV_OBJ_PART_MAIN, &battery_settings_style );
|
||||
|
||||
lv_obj_t *exit_btn = lv_imgbtn_create( battery_settings_tile1, NULL);
|
||||
lv_imgbtn_set_src( exit_btn, LV_BTN_STATE_RELEASED, &exit_32px);
|
||||
lv_imgbtn_set_src( exit_btn, LV_BTN_STATE_PRESSED, &exit_32px);
|
||||
lv_imgbtn_set_src( exit_btn, LV_BTN_STATE_CHECKED_RELEASED, &exit_32px);
|
||||
lv_imgbtn_set_src( exit_btn, LV_BTN_STATE_CHECKED_PRESSED, &exit_32px);
|
||||
lv_obj_add_style( exit_btn, LV_IMGBTN_PART_MAIN, style);
|
||||
lv_obj_align( exit_btn, battery_settings_tile1, LV_ALIGN_IN_TOP_LEFT, 10, STATUSBAR_HEIGHT + 10 );
|
||||
lv_obj_set_event_cb( exit_btn, exit_battery_setup_event_cb );
|
||||
|
||||
lv_obj_t *exit_label = lv_label_create( battery_settings_tile1, NULL);
|
||||
lv_obj_add_style( exit_label, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( exit_label, "battery");
|
||||
lv_obj_align( exit_label, exit_btn, LV_ALIGN_OUT_RIGHT_MID, 5, 0 );
|
||||
|
||||
lv_obj_t *battery_design_cont = lv_obj_create( battery_settings_tile1, NULL );
|
||||
lv_obj_set_size( battery_design_cont, hres , 25 );
|
||||
lv_obj_add_style( battery_design_cont, LV_OBJ_PART_MAIN, style );
|
||||
lv_obj_align( battery_design_cont, battery_settings_tile1, LV_ALIGN_IN_TOP_RIGHT, 0, 75 );
|
||||
lv_obj_t *battery_design_cap_label = lv_label_create( battery_design_cont, NULL);
|
||||
lv_obj_add_style( battery_design_cap_label, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( battery_design_cap_label, "designed cap");
|
||||
lv_obj_align( battery_design_cap_label, battery_design_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
|
||||
battery_design_cap = lv_label_create( battery_design_cont, NULL);
|
||||
lv_obj_add_style( battery_design_cap, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( battery_design_cap, "380mAh");
|
||||
lv_obj_align( battery_design_cap, battery_design_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
lv_obj_t *battery_current_cont = lv_obj_create( battery_settings_tile1, NULL );
|
||||
lv_obj_set_size( battery_current_cont, hres , 25 );
|
||||
lv_obj_add_style( battery_current_cont, LV_OBJ_PART_MAIN, style );
|
||||
lv_obj_align( battery_current_cont, battery_design_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 );
|
||||
lv_obj_t *battery_current_cap_label = lv_label_create( battery_current_cont, NULL);
|
||||
lv_obj_add_style( battery_current_cap_label, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( battery_current_cap_label, "charged capacity");
|
||||
lv_obj_align( battery_current_cap_label, battery_current_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
|
||||
battery_current_cap = lv_label_create( battery_current_cont, NULL);
|
||||
lv_obj_add_style( battery_current_cap, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( battery_current_cap, "380mAh");
|
||||
lv_obj_align( battery_current_cap, battery_current_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
lv_obj_t *battery_voltage_cont = lv_obj_create( battery_settings_tile1, NULL );
|
||||
lv_obj_set_size( battery_voltage_cont, hres , 25 );
|
||||
lv_obj_add_style( battery_voltage_cont, LV_OBJ_PART_MAIN, style );
|
||||
lv_obj_align( battery_voltage_cont, battery_current_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 );
|
||||
lv_obj_t *battery_voltage_label = lv_label_create( battery_voltage_cont, NULL);
|
||||
lv_obj_add_style( battery_voltage_label, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( battery_voltage_label, "battery voltage");
|
||||
lv_obj_align( battery_voltage_label, battery_voltage_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
|
||||
battery_voltage = lv_label_create( battery_voltage_cont, NULL);
|
||||
lv_obj_add_style( battery_voltage, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( battery_voltage, "2.4mV");
|
||||
lv_obj_align( battery_voltage, battery_voltage_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
lv_obj_t *battery_charge_cont = lv_obj_create( battery_settings_tile1, NULL );
|
||||
lv_obj_set_size( battery_charge_cont, hres , 25 );
|
||||
lv_obj_add_style( battery_charge_cont, LV_OBJ_PART_MAIN, style );
|
||||
lv_obj_align( battery_charge_cont, battery_voltage_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 5 );
|
||||
lv_obj_t *battery_charge_label = lv_label_create( battery_charge_cont, NULL);
|
||||
lv_obj_add_style( battery_charge_label, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( battery_charge_label, "charge current");
|
||||
lv_obj_align( battery_charge_label, battery_charge_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
|
||||
charge_current = lv_label_create( battery_charge_cont, NULL);
|
||||
lv_obj_add_style( charge_current, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( charge_current, "100mA");
|
||||
lv_obj_align( charge_current, battery_charge_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
lv_obj_t *battery_discharge_cont = lv_obj_create( battery_settings_tile1, NULL );
|
||||
lv_obj_set_size( battery_discharge_cont, hres , 25 );
|
||||
lv_obj_add_style( battery_discharge_cont, LV_OBJ_PART_MAIN, style );
|
||||
lv_obj_align( battery_discharge_cont, battery_charge_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 );
|
||||
lv_obj_t *battery_discharge_label = lv_label_create( battery_discharge_cont, NULL);
|
||||
lv_obj_add_style( battery_discharge_label, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( battery_discharge_label, "discharge current");
|
||||
lv_obj_align( battery_discharge_label, battery_discharge_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
|
||||
discharge_current = lv_label_create( battery_discharge_cont, NULL);
|
||||
lv_obj_add_style( discharge_current, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( discharge_current, "100mA");
|
||||
lv_obj_align( discharge_current, battery_discharge_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
lv_obj_t *vbus_voltage_cont = lv_obj_create( battery_settings_tile1, NULL );
|
||||
lv_obj_set_size( vbus_voltage_cont, hres , 25 );
|
||||
lv_obj_add_style( vbus_voltage_cont, LV_OBJ_PART_MAIN, style );
|
||||
lv_obj_align( vbus_voltage_cont, battery_discharge_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 );
|
||||
lv_obj_t *vbus_voltage_label = lv_label_create( vbus_voltage_cont, NULL);
|
||||
lv_obj_add_style( vbus_voltage_label, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( vbus_voltage_label, "VBUS voltage");
|
||||
lv_obj_align( vbus_voltage_label, vbus_voltage_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
|
||||
vbus_voltage = lv_label_create( vbus_voltage_cont, NULL);
|
||||
lv_obj_add_style( vbus_voltage, LV_OBJ_PART_MAIN, style );
|
||||
lv_label_set_text( vbus_voltage, "2.4mV");
|
||||
lv_obj_align( vbus_voltage, vbus_voltage_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
lv_task_t * task = lv_task_create(battery_update_task, 1000, LV_TASK_PRIO_LOWEST, NULL );
|
||||
}
|
||||
|
||||
|
||||
static void exit_battery_setup_event_cb( lv_obj_t * obj, lv_event_t event ) {
|
||||
switch( event ) {
|
||||
case( LV_EVENT_CLICKED ): mainbar_jump_to_tilenumber( SETUP_TILE, LV_ANIM_OFF );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void battery_update_task( lv_task_t *task ) {
|
||||
char temp[16]="";
|
||||
TTGOClass *ttgo = TTGOClass::getWatch();
|
||||
|
||||
snprintf( temp, sizeof( temp ), "%0.1fmAh", ttgo->power->getCoulombData() );
|
||||
lv_label_set_text( battery_current_cap, temp );
|
||||
lv_obj_align( battery_current_cap, lv_obj_get_parent( battery_current_cap ), LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
snprintf( temp, sizeof( temp ), "%0.2fV", ttgo->power->getBattVoltage() / 1000 );
|
||||
lv_label_set_text( battery_voltage, temp );
|
||||
lv_obj_align( battery_voltage, lv_obj_get_parent( battery_voltage ), LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
snprintf( temp, sizeof( temp ), "%0.1fmA", ttgo->power->getBattChargeCurrent() );
|
||||
lv_label_set_text( charge_current, temp );
|
||||
lv_obj_align( charge_current, lv_obj_get_parent( charge_current ), LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
snprintf( temp, sizeof( temp ), "%0.1fmA", ttgo->power->getBattDischargeCurrent() );
|
||||
lv_label_set_text( discharge_current, temp );
|
||||
lv_obj_align( discharge_current, lv_obj_get_parent( discharge_current ), LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
|
||||
snprintf( temp, sizeof( temp ), "%0.2fV", ttgo->power->getVbusVoltage() / 1000 );
|
||||
lv_label_set_text( vbus_voltage, temp );
|
||||
lv_obj_align( vbus_voltage, lv_obj_get_parent( vbus_voltage ), LV_ALIGN_IN_RIGHT_MID, -5, 0 );
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef _BATTERY_SETTINGS_H
|
||||
#define _BATTERY_SETTINGS_H
|
||||
|
||||
#include <TTGO.h>
|
||||
|
||||
/*
|
||||
* @brief setup the battery setup tile
|
||||
*
|
||||
* @param tile pointer to the tile obj
|
||||
* @param style pointer to the style obj
|
||||
* @param hres horizonal resolution
|
||||
* @param vres vertical resolution
|
||||
*/
|
||||
void battery_settings_tile_setup( lv_obj_t *tile, lv_style_t *style, lv_coord_t hres, lv_coord_t vres );
|
||||
|
||||
#endif // _BATTERY_SETTINGS_H
|
||||
@@ -52,7 +52,7 @@ void display_settings_tile_setup( lv_obj_t *tile, lv_style_t *style, lv_coord_t
|
||||
lv_obj_add_style( brightness_cont, LV_OBJ_PART_MAIN, style );
|
||||
lv_obj_align( brightness_cont, display_settings_tile1, LV_ALIGN_IN_TOP_RIGHT, 0, 75 );
|
||||
display_brightness_slider = lv_slider_create( brightness_cont, NULL );
|
||||
lv_slider_set_range( display_brightness_slider, 32, 255 );
|
||||
lv_slider_set_range( display_brightness_slider, DISPLAY_MIN_BRIGHTNESS, DISPLAY_MAX_BRIGHTNESS );
|
||||
lv_obj_set_size( display_brightness_slider, hres - 100 , 10 );
|
||||
lv_obj_align( display_brightness_slider, brightness_cont, LV_ALIGN_IN_RIGHT_MID, -15, 0 );
|
||||
lv_obj_set_event_cb( display_brightness_slider, exit_display_brightness_setup_event_cb );
|
||||
@@ -65,7 +65,7 @@ void display_settings_tile_setup( lv_obj_t *tile, lv_style_t *style, lv_coord_t
|
||||
lv_obj_add_style( timeout_cont, LV_OBJ_PART_MAIN, style );
|
||||
lv_obj_align( timeout_cont, brightness_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 );
|
||||
display_timeout_slider = lv_slider_create( timeout_cont, NULL );
|
||||
lv_slider_set_range( display_timeout_slider, 15, 300 );
|
||||
lv_slider_set_range( display_timeout_slider, DISPLAY_MIN_TIMEOUT, DISPLAY_MAX_TIMEOUT );
|
||||
lv_obj_set_size(display_timeout_slider, hres - 100 , 10 );
|
||||
lv_obj_align( display_timeout_slider, timeout_cont, LV_ALIGN_IN_RIGHT_MID, -15, 0 );
|
||||
lv_obj_set_event_cb( display_timeout_slider, exit_display_timeout_setup_event_cb );
|
||||
@@ -80,7 +80,12 @@ void display_settings_tile_setup( lv_obj_t *tile, lv_style_t *style, lv_coord_t
|
||||
lv_slider_set_value( display_brightness_slider, display_get_brightness(), LV_ANIM_OFF );
|
||||
lv_slider_set_value( display_timeout_slider, display_get_timeout(), LV_ANIM_OFF );
|
||||
char temp[16]="";
|
||||
snprintf( temp, sizeof( temp ), "%d secounds", display_get_timeout() );
|
||||
if ( lv_slider_get_value( display_timeout_slider ) == DISPLAY_MAX_TIMEOUT ) {
|
||||
snprintf( temp, sizeof( temp ), "no timeout" );
|
||||
}
|
||||
else {
|
||||
snprintf( temp, sizeof( temp ), "%d secounds", lv_slider_get_value( display_timeout_slider ) );
|
||||
}
|
||||
lv_label_set_text( display_timeout_slider_label, temp );
|
||||
lv_obj_align( display_timeout_slider_label, display_timeout_slider, LV_ALIGN_OUT_BOTTOM_MID, 0, 15 );
|
||||
}
|
||||
@@ -105,7 +110,12 @@ static void exit_display_timeout_setup_event_cb( lv_obj_t * obj, lv_event_t even
|
||||
switch( event ) {
|
||||
case( LV_EVENT_VALUE_CHANGED ): display_set_timeout( lv_slider_get_value( obj ) );
|
||||
char temp[16]="";
|
||||
snprintf( temp, sizeof( temp ), "%d secounds", lv_slider_get_value(obj) );
|
||||
if ( lv_slider_get_value(obj) == DISPLAY_MAX_TIMEOUT ) {
|
||||
snprintf( temp, sizeof( temp ), "no timeout" );
|
||||
}
|
||||
else {
|
||||
snprintf( temp, sizeof( temp ), "%d secounds", lv_slider_get_value(obj) );
|
||||
}
|
||||
lv_label_set_text( display_timeout_slider_label, temp );
|
||||
lv_obj_align( display_timeout_slider_label, display_timeout_slider, LV_ALIGN_OUT_BOTTOM_MID, 0, 15 );
|
||||
break;
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
|
||||
#include <TTGO.h>
|
||||
|
||||
/*
|
||||
* @brief setup the display setup tile
|
||||
*
|
||||
* @param tile pointer to the tile obj
|
||||
* @param style pointer to the style obj
|
||||
* @param hres horizonal resolution
|
||||
* @param vres vertical resolution
|
||||
*/
|
||||
void display_settings_tile_setup( lv_obj_t *tile, lv_style_t *style, lv_coord_t hres, lv_coord_t vres );
|
||||
|
||||
#endif // _DISPLAY_SETTINGS_H
|
||||
@@ -4,11 +4,12 @@
|
||||
#include "gui/mainbar/mainbar.h"
|
||||
|
||||
static void wifi_setup_event_cb( lv_obj_t * obj, lv_event_t event );
|
||||
static void battery_setup_event_cb( lv_obj_t * obj, lv_event_t event );
|
||||
static void move_setup_event_cb( lv_obj_t * obj, lv_event_t event );
|
||||
static void display_setup_event_cb( lv_obj_t * obj, lv_event_t event );
|
||||
|
||||
LV_IMG_DECLARE(wifi_64px);
|
||||
LV_IMG_DECLARE(bluetooth_64px);
|
||||
LV_IMG_DECLARE(battery_icon_64px);
|
||||
LV_IMG_DECLARE(move_64px);
|
||||
LV_IMG_DECLARE(brightness_64px);
|
||||
|
||||
@@ -23,13 +24,14 @@ void setup_tile_setup( lv_obj_t *tile, lv_style_t *style, lv_coord_t hres, lv_co
|
||||
lv_obj_align(wifi_setup, tile, LV_ALIGN_IN_TOP_LEFT, 48, 48 );
|
||||
lv_obj_set_event_cb( wifi_setup, wifi_setup_event_cb );
|
||||
|
||||
lv_obj_t * bluetooth_setup = lv_imgbtn_create(tile, NULL);
|
||||
lv_imgbtn_set_src( bluetooth_setup, LV_BTN_STATE_RELEASED, &bluetooth_64px);
|
||||
lv_imgbtn_set_src( bluetooth_setup, LV_BTN_STATE_PRESSED, &bluetooth_64px);
|
||||
lv_imgbtn_set_src( bluetooth_setup, LV_BTN_STATE_CHECKED_RELEASED, &bluetooth_64px);
|
||||
lv_imgbtn_set_src( bluetooth_setup, LV_BTN_STATE_CHECKED_PRESSED, &bluetooth_64px);
|
||||
lv_obj_add_style( bluetooth_setup, LV_IMGBTN_PART_MAIN, style);
|
||||
lv_obj_align( bluetooth_setup, tile, LV_ALIGN_IN_TOP_LEFT, 48+86, 48 );
|
||||
lv_obj_t * battery_setup = lv_imgbtn_create(tile, NULL);
|
||||
lv_imgbtn_set_src( battery_setup, LV_BTN_STATE_RELEASED, &battery_icon_64px);
|
||||
lv_imgbtn_set_src( battery_setup, LV_BTN_STATE_PRESSED, &battery_icon_64px);
|
||||
lv_imgbtn_set_src( battery_setup, LV_BTN_STATE_CHECKED_RELEASED, &battery_icon_64px);
|
||||
lv_imgbtn_set_src( battery_setup, LV_BTN_STATE_CHECKED_PRESSED, &battery_icon_64px);
|
||||
lv_obj_add_style( battery_setup, LV_IMGBTN_PART_MAIN, style);
|
||||
lv_obj_align( battery_setup, tile, LV_ALIGN_IN_TOP_LEFT, 48+86, 48 );
|
||||
lv_obj_set_event_cb( battery_setup, battery_setup_event_cb );
|
||||
|
||||
lv_obj_t * move_setup = lv_imgbtn_create(tile, NULL);
|
||||
lv_imgbtn_set_src( move_setup, LV_BTN_STATE_RELEASED, &move_64px);
|
||||
@@ -57,6 +59,13 @@ static void wifi_setup_event_cb( lv_obj_t * obj, lv_event_t event ) {
|
||||
}
|
||||
}
|
||||
|
||||
static void battery_setup_event_cb( lv_obj_t * obj, lv_event_t event ) {
|
||||
switch( event ) {
|
||||
case( LV_EVENT_CLICKED ): mainbar_jump_to_tilenumber( BATTERY_SETTINGS_TILE, LV_ANIM_OFF );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void move_setup_event_cb( lv_obj_t * obj, lv_event_t event ) {
|
||||
switch( event ) {
|
||||
case( LV_EVENT_CLICKED ): mainbar_jump_to_tilenumber( MOVE_SETTINGS_TILE, LV_ANIM_OFF );
|
||||
|
||||
@@ -3,6 +3,14 @@
|
||||
|
||||
#include <TTGO.h>
|
||||
|
||||
/*
|
||||
* @brief setup the setup tile
|
||||
*
|
||||
* @param tile pointer to the tile obj
|
||||
* @param style pointer to the style obj
|
||||
* @param hres horizonal resolution
|
||||
* @param vres vertical resolution
|
||||
*/
|
||||
void setup_tile_setup( lv_obj_t *tile, lv_style_t *style, lv_coord_t hres, lv_coord_t vres );
|
||||
|
||||
#endif // _SETUP_H
|
||||
@@ -22,8 +22,8 @@ void screenshot_take( void ) {
|
||||
}
|
||||
|
||||
void screenshot_save( void ) {
|
||||
SPIFFS.remove("/screen.565");
|
||||
fs::File file = SPIFFS.open( "/screen.565", FILE_WRITE );
|
||||
SPIFFS.remove( SCREENSHOT_FILE_NAME );
|
||||
fs::File file = SPIFFS.open( SCREENSHOT_FILE_NAME, FILE_WRITE );
|
||||
|
||||
file.write( (uint8_t *)png, LV_HOR_RES_MAX * LV_VER_RES_MAX * 2 );
|
||||
file.close();
|
||||
|
||||
@@ -3,10 +3,19 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#define SCREENSHOT_EVENT _BV(0)
|
||||
#define SCREENSHOT_FILE_NAME "/screen.565"
|
||||
|
||||
/*
|
||||
* @brief setup screenshot
|
||||
*/
|
||||
void screenshot_setup( void );
|
||||
/*
|
||||
* @brief take a screenshoot an store it in psram
|
||||
*/
|
||||
void screenshot_take( void );
|
||||
/*
|
||||
* @brief store a screenshoot to spiffs
|
||||
*/
|
||||
void screenshot_save( void );
|
||||
|
||||
struct PNG_IMAGE {
|
||||
|
||||
@@ -222,7 +222,7 @@ void statusbar_bluetooth_set_state( bool state ) {
|
||||
/*
|
||||
*
|
||||
*/
|
||||
void statusbar_hide_icon( int icon ) {
|
||||
void statusbar_hide_icon( statusbar_icon_t icon ) {
|
||||
if ( icon >= STATUSBAR_NUM ) return;
|
||||
|
||||
lv_obj_set_hidden( statusicon[ icon ].icon, true );
|
||||
@@ -232,7 +232,7 @@ void statusbar_hide_icon( int icon ) {
|
||||
/*
|
||||
*
|
||||
*/
|
||||
void statusbar_show_icon( int icon ) {
|
||||
void statusbar_show_icon( statusbar_icon_t icon ) {
|
||||
if ( icon >= STATUSBAR_NUM ) return;
|
||||
|
||||
lv_obj_set_hidden( statusicon[ icon ].icon, false );
|
||||
@@ -242,7 +242,7 @@ void statusbar_show_icon( int icon ) {
|
||||
/*
|
||||
*
|
||||
*/
|
||||
void statusbar_style_icon( int icon, int style ) {
|
||||
void statusbar_style_icon( statusbar_icon_t icon, statusbar_style_t style ) {
|
||||
if ( icon >= STATUSBAR_NUM || style >= STATUSBAR_STYLE_NUM ) return;
|
||||
|
||||
statusicon[ icon ].style = &statusbarstyle[ style ];
|
||||
|
||||
@@ -14,16 +14,16 @@
|
||||
lv_style_t *style;
|
||||
} lv_status_bar_t;
|
||||
|
||||
enum {
|
||||
typedef enum {
|
||||
STATUSBAR_BATTERY_PERCENT,
|
||||
STATUSBAR_BATTERY,
|
||||
STATUSBAR_WIFI,
|
||||
STATUSBAR_BELL,
|
||||
STATUSBAR_WARNING,
|
||||
STATUSBAR_NUM
|
||||
};
|
||||
} statusbar_icon_t;
|
||||
|
||||
enum {
|
||||
typedef enum {
|
||||
STATUSBAR_STYLE_NORMAL,
|
||||
STATUSBAR_STYLE_WHITE,
|
||||
STATUSBAR_STYLE_RED,
|
||||
@@ -32,15 +32,31 @@
|
||||
STATUSBAR_STYLE_GREEN,
|
||||
STATUSBAR_STYLE_BLUE,
|
||||
STATUSBAR_STYLE_NUM
|
||||
};
|
||||
} statusbar_style_t;
|
||||
|
||||
/*
|
||||
* @brief setup statusbar
|
||||
*/
|
||||
void statusbar_setup( void );
|
||||
/*
|
||||
*
|
||||
* @brief hide an icon from statusbar
|
||||
*
|
||||
* @param icon icon name
|
||||
*/
|
||||
void statusbar_hide_icon( int icon );
|
||||
void statusbar_show_icon( int icon );
|
||||
void statusbar_style_icon( int icon, int style );
|
||||
void statusbar_hide_icon( statusbar_icon_t icon );
|
||||
/*
|
||||
* @brief show an icon from statusbar
|
||||
*
|
||||
* @param icon icon name
|
||||
*/
|
||||
void statusbar_show_icon( statusbar_icon_t icon );
|
||||
/*
|
||||
* @brief hide an icon from statusbar
|
||||
*
|
||||
* @param icon icon name
|
||||
* @param style style name
|
||||
*/
|
||||
void statusbar_style_icon( statusbar_icon_t icon, statusbar_style_t style );
|
||||
void statusbar_refresh( void );
|
||||
void statusbar_update_stepcounter( int step );
|
||||
void statusbar_update_battery( uint32_t percent, bool charging, bool plug );
|
||||
|
||||
Reference in New Issue
Block a user