diff --git a/src/app/weather/weather_setup.cpp b/src/app/weather/weather_setup.cpp index a83a21e..938696d 100644 --- a/src/app/weather/weather_setup.cpp +++ b/src/app/weather/weather_setup.cpp @@ -131,6 +131,7 @@ void weather_setup_tile_setup( uint32_t tile_num ) { lv_obj_add_style( weather_autosync_cont, LV_OBJ_PART_MAIN, &weather_setup_style ); lv_obj_align( weather_autosync_cont, weather_lat_cont, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 5 ); weather_autosync_onoff = lv_switch_create( weather_autosync_cont, NULL ); + lv_obj_add_style( weather_autosync_onoff, LV_SWITCH_PART_INDIC, mainbar_get_switch_style() ); lv_switch_off( weather_autosync_onoff, LV_ANIM_ON ); lv_obj_align( weather_autosync_onoff, weather_autosync_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 ); lv_obj_set_event_cb( weather_autosync_onoff, weather_autosync_onoff_event_handler ); @@ -144,6 +145,7 @@ void weather_setup_tile_setup( uint32_t tile_num ) { lv_obj_add_style( weather_wind_cont, LV_OBJ_PART_MAIN, &weather_setup_style ); lv_obj_align( weather_wind_cont, weather_autosync_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 ); weather_wind_onoff = lv_switch_create( weather_wind_cont, NULL); + lv_obj_add_style( weather_wind_onoff, LV_SWITCH_PART_INDIC, mainbar_get_switch_style() ); lv_switch_off( weather_wind_onoff, LV_ANIM_ON); lv_obj_align( weather_wind_onoff, weather_wind_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0); lv_obj_set_event_cb( weather_wind_onoff, weather_wind_onoff_event_handler); diff --git a/src/config.h b/src/config.h index 9f57dd3..89229d7 100644 --- a/src/config.h +++ b/src/config.h @@ -31,6 +31,6 @@ /* * firmeware version string */ - #define __FIRMWARE__ "2020073007" + #define __FIRMWARE__ "2020073016" #endif // _CONFIG_H diff --git a/src/gui/mainbar/app_tile/app_tile.cpp b/src/gui/mainbar/app_tile/app_tile.cpp index 36c5c09..8ee4c7a 100644 --- a/src/gui/mainbar/app_tile/app_tile.cpp +++ b/src/gui/mainbar/app_tile/app_tile.cpp @@ -28,6 +28,7 @@ lv_app_entry_t app_entry[ MAX_APPS_ICON ]; static lv_obj_t *app_cont = NULL; static lv_obj_t *app_label = NULL; +static uint32_t app_tile_num; static lv_style_t *style; static lv_style_t appstyle; @@ -35,8 +36,8 @@ LV_FONT_DECLARE(Ubuntu_72px); LV_FONT_DECLARE(Ubuntu_16px); void app_tile_setup( void ) { - - app_cont = mainbar_get_tile_obj( mainbar_add_tile( 1, 0 ) ); + app_tile_num = mainbar_add_tile( 1, 0 ); + app_cont = mainbar_get_tile_obj( app_tile_num ); style = mainbar_get_style(); lv_style_copy( &appstyle, style); @@ -85,3 +86,7 @@ lv_obj_t *app_tile_register_app( const char* appname ) { log_e("no space for an app icon"); return( NULL ); } + +uint32_t app_tile_get_tile_num( void ) { + return( app_tile_num ); +} diff --git a/src/gui/mainbar/app_tile/app_tile.h b/src/gui/mainbar/app_tile/app_tile.h index 7943b0e..8ee6540 100644 --- a/src/gui/mainbar/app_tile/app_tile.h +++ b/src/gui/mainbar/app_tile/app_tile.h @@ -46,7 +46,23 @@ bool active; } lv_app_entry_t; + /* + * @brief setup the app tile + */ void app_tile_setup( void ); + /* + * @brief register an app icon an the app tile + * + * @param appname app name + * + * @return lv_obj_t icon container, here you can set your own icon with imgbtn + */ lv_obj_t *app_tile_register_app( const char* appname ); + /* + * @brief get the tile number for the app tile + * + * @return tile number + */ + uint32_t app_tile_get_tile_num( void ); #endif // _APP_TILE_H \ No newline at end of file diff --git a/src/gui/mainbar/main_tile/main_tile.cpp b/src/gui/mainbar/main_tile/main_tile.cpp index 87100eb..062d885 100644 --- a/src/gui/mainbar/main_tile/main_tile.cpp +++ b/src/gui/mainbar/main_tile/main_tile.cpp @@ -30,6 +30,7 @@ static lv_obj_t *main_cont = NULL; static lv_obj_t *clock_cont = NULL; static lv_obj_t *timelabel = NULL; static lv_obj_t *datelabel = NULL; +uint32_t main_tile_num; static lv_style_t *style; static lv_style_t timestyle; @@ -37,14 +38,15 @@ static lv_style_t datestyle; lv_widget_entry_t widget_entry[ MAX_WIDGET_NUM ]; -lv_task_t * task; - LV_FONT_DECLARE(Ubuntu_72px); LV_FONT_DECLARE(Ubuntu_16px); -void main_tile_setup( void ) { +lv_task_t * task; +void main_tile_task( lv_task_t * task ); - main_cont = mainbar_get_tile_obj( mainbar_add_tile( 0, 0 ) ); +void main_tile_setup( void ) { + main_tile_num = mainbar_add_tile( 0, 0 ); + main_cont = mainbar_get_tile_obj( main_tile_num ); style = mainbar_get_style(); lv_style_copy( ×tyle, style); @@ -110,9 +112,11 @@ lv_obj_t *main_tile_register_widget( void ) { return( NULL ); } -/* - * - */ +uint32_t main_tile_get_tile_num( void ) { + return( main_tile_num ); +} + + void main_tile_task( lv_task_t * task ) { time_t now; struct tm info; diff --git a/src/gui/mainbar/main_tile/main_tile.h b/src/gui/mainbar/main_tile/main_tile.h index c77edc3..fc31df7 100644 --- a/src/gui/mainbar/main_tile/main_tile.h +++ b/src/gui/mainbar/main_tile/main_tile.h @@ -33,8 +33,21 @@ bool active; } lv_widget_entry_t; + /* + * @brief setup the app tile + */ void main_tile_setup( void ); - void main_tile_task( lv_task_t * task ); + /* + * @brief register an widget icon an the main tile + * + * @return lv_obj_t icon container, here you can set your own icon with imgbtn or NULL if failed + */ lv_obj_t *main_tile_register_widget( void ); + /* + * @brief get the tile number for the main tile + * + * @return tile number + */ + uint32_t main_tile_get_tile_num( void ); #endif // _MAIL_TILE_H \ No newline at end of file diff --git a/src/gui/mainbar/mainbar.cpp b/src/gui/mainbar/mainbar.cpp index f61e451..d7fe38c 100644 --- a/src/gui/mainbar/mainbar.cpp +++ b/src/gui/mainbar/mainbar.cpp @@ -36,7 +36,9 @@ #include "setup_tile/time_settings/time_settings.h" #include "setup_tile/update/update.h" -static lv_style_t mainbarstyle; +static lv_style_t mainbar_style; +static lv_style_t mainbar_switch_style; + static lv_obj_t *mainbar = NULL; static lv_tile_t *tile = NULL; @@ -45,18 +47,21 @@ static uint32_t tile_entrys = 0; static uint32_t app_tile_pos = MAINBAR_APP_TILE_X_START; void mainbar_setup( void ) { - lv_style_init( &mainbarstyle ); - lv_style_set_radius(&mainbarstyle, LV_OBJ_PART_MAIN, 0); - lv_style_set_bg_color(&mainbarstyle, LV_OBJ_PART_MAIN, LV_COLOR_GRAY); - lv_style_set_bg_opa(&mainbarstyle, LV_OBJ_PART_MAIN, LV_OPA_0); - lv_style_set_border_width(&mainbarstyle, LV_OBJ_PART_MAIN, 0); - lv_style_set_text_color(&mainbarstyle, LV_OBJ_PART_MAIN, LV_COLOR_WHITE); - lv_style_set_image_recolor(&mainbarstyle, LV_OBJ_PART_MAIN, LV_COLOR_WHITE); + lv_style_init( &mainbar_style ); + lv_style_set_radius(&mainbar_style, LV_OBJ_PART_MAIN, 0); + lv_style_set_bg_color(&mainbar_style, LV_OBJ_PART_MAIN, LV_COLOR_GRAY); + lv_style_set_bg_opa(&mainbar_style, LV_OBJ_PART_MAIN, LV_OPA_0); + lv_style_set_border_width(&mainbar_style, LV_OBJ_PART_MAIN, 0); + lv_style_set_text_color(&mainbar_style, LV_OBJ_PART_MAIN, LV_COLOR_WHITE); + lv_style_set_image_recolor(&mainbar_style, LV_OBJ_PART_MAIN, LV_COLOR_WHITE); + + lv_style_init( &mainbar_switch_style ); + lv_style_set_bg_color( &mainbar_switch_style, LV_STATE_CHECKED, LV_COLOR_GREEN ); mainbar = lv_tileview_create( lv_scr_act(), NULL); lv_tileview_set_valid_positions(mainbar, tile_pos_table, tile_entrys ); lv_tileview_set_edge_flash( mainbar, false); - lv_obj_add_style( mainbar, LV_OBJ_PART_MAIN, &mainbarstyle ); + lv_obj_add_style( mainbar, LV_OBJ_PART_MAIN, &mainbar_style ); lv_page_set_scrlbar_mode(mainbar, LV_SCRLBAR_MODE_OFF); } @@ -85,7 +90,7 @@ uint32_t mainbar_add_tile( uint16_t x, uint16_t y ) { tile[ tile_entrys - 1 ].tile = my_tile; lv_obj_set_size( tile[ tile_entrys - 1 ].tile, LV_HOR_RES, LV_VER_RES); lv_obj_reset_style_list( tile[ tile_entrys - 1 ].tile, LV_OBJ_PART_MAIN ); - lv_obj_add_style( tile[ tile_entrys - 1 ].tile, LV_OBJ_PART_MAIN, &mainbarstyle ); + lv_obj_add_style( tile[ tile_entrys - 1 ].tile, LV_OBJ_PART_MAIN, &mainbar_style ); lv_obj_set_pos( tile[ tile_entrys - 1 ].tile, tile_pos_table[ tile_entrys - 1 ].x * LV_HOR_RES , tile_pos_table[ tile_entrys - 1 ].y * LV_VER_RES ); lv_tileview_add_element( mainbar, tile[ tile_entrys - 1 ].tile ); lv_tileview_set_valid_positions( mainbar, tile_pos_table, tile_entrys ); @@ -95,9 +100,14 @@ uint32_t mainbar_add_tile( uint16_t x, uint16_t y ) { } lv_style_t *mainbar_get_style( void ) { - return( &mainbarstyle ); + return( &mainbar_style ); } +lv_style_t *mainbar_get_switch_style( void ) { + return( &mainbar_switch_style ); +} + + uint32_t mainbar_add_app_tile( uint16_t x, uint16_t y ) { uint32_t retval = -1; diff --git a/src/gui/mainbar/mainbar.h b/src/gui/mainbar/mainbar.h index f4a804b..a33e30c 100644 --- a/src/gui/mainbar/mainbar.h +++ b/src/gui/mainbar/mainbar.h @@ -83,5 +83,11 @@ * @return lv_style_t */ lv_style_t *mainbar_get_style( void ); + /* + * @brief get main tile switch style + * + * @return lv_style_t + */ + lv_style_t *mainbar_get_switch_style( void ); #endif // _MAINBAR_H \ No newline at end of file diff --git a/src/gui/mainbar/setup_tile/battery_settings/battery_settings.h b/src/gui/mainbar/setup_tile/battery_settings/battery_settings.h index 3fec130..4b59609 100644 --- a/src/gui/mainbar/setup_tile/battery_settings/battery_settings.h +++ b/src/gui/mainbar/setup_tile/battery_settings/battery_settings.h @@ -24,14 +24,6 @@ #include - /* - * @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( void ); #endif // _BATTERY_SETTINGS_H \ No newline at end of file diff --git a/src/gui/mainbar/setup_tile/display_settings/display_settings.h b/src/gui/mainbar/setup_tile/display_settings/display_settings.h index 2f4e549..445894f 100644 --- a/src/gui/mainbar/setup_tile/display_settings/display_settings.h +++ b/src/gui/mainbar/setup_tile/display_settings/display_settings.h @@ -24,14 +24,6 @@ #include - /* - * @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( void ); #endif // _DISPLAY_SETTINGS_H \ No newline at end of file diff --git a/src/gui/mainbar/setup_tile/move_settings/move_settings.cpp b/src/gui/mainbar/setup_tile/move_settings/move_settings.cpp index c781110..a9627bb 100644 --- a/src/gui/mainbar/setup_tile/move_settings/move_settings.cpp +++ b/src/gui/mainbar/setup_tile/move_settings/move_settings.cpp @@ -82,6 +82,7 @@ void move_settings_tile_setup( void ) { lv_obj_add_style( stepcounter_cont, LV_OBJ_PART_MAIN, &move_settings_style ); lv_obj_align( stepcounter_cont, move_settings_tile, LV_ALIGN_IN_TOP_RIGHT, 0, 75 ); stepcounter_onoff = lv_switch_create( stepcounter_cont, NULL ); + lv_obj_add_style( stepcounter_onoff, LV_SWITCH_PART_INDIC, mainbar_get_switch_style() ); lv_switch_off( stepcounter_onoff, LV_ANIM_ON ); lv_obj_align( stepcounter_onoff, stepcounter_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 ); lv_obj_set_event_cb( stepcounter_onoff, stepcounter_onoff_event_handler ); @@ -95,6 +96,7 @@ void move_settings_tile_setup( void ) { lv_obj_add_style( doubleclick_cont, LV_OBJ_PART_MAIN, &move_settings_style ); lv_obj_align( doubleclick_cont, stepcounter_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 ); doubleclick_onoff = lv_switch_create( doubleclick_cont, NULL ); + lv_obj_add_style( doubleclick_onoff, LV_SWITCH_PART_INDIC, mainbar_get_switch_style() ); lv_switch_off( doubleclick_onoff, LV_ANIM_ON ); lv_obj_align( doubleclick_onoff, doubleclick_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 ); lv_obj_set_event_cb( doubleclick_onoff, doubleclick_onoff_event_handler ); diff --git a/src/gui/mainbar/setup_tile/setup.h b/src/gui/mainbar/setup_tile/setup.h index 69a7716..1998444 100644 --- a/src/gui/mainbar/setup_tile/setup.h +++ b/src/gui/mainbar/setup_tile/setup.h @@ -48,14 +48,19 @@ /* * @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( void ); + /* + * @brief register an setup icon an the setup tile + * + * @return lv_obj_t icon container, here you can set your own icon with imgbtn + */ lv_obj_t *setup_tile_register_setup( void ); + /* + * @brief get the tile number for the setup tile + * + * @return tile number + */ uint32_t setup_get_tile_num( void ); #endif // _SETUP_H \ No newline at end of file diff --git a/src/gui/mainbar/setup_tile/time_settings/time_settings.cpp b/src/gui/mainbar/setup_tile/time_settings/time_settings.cpp index 8b6a253..f3c5abb 100644 --- a/src/gui/mainbar/setup_tile/time_settings/time_settings.cpp +++ b/src/gui/mainbar/setup_tile/time_settings/time_settings.cpp @@ -86,6 +86,7 @@ void time_settings_tile_setup( void ) { lv_obj_add_style( wifisync_cont, LV_OBJ_PART_MAIN, &time_settings_style ); lv_obj_align( wifisync_cont, time_settings_tile, LV_ALIGN_IN_TOP_RIGHT, 0, 75 ); wifisync_onoff = lv_switch_create( wifisync_cont, NULL ); + lv_obj_add_style( wifisync_onoff, LV_SWITCH_PART_INDIC, mainbar_get_switch_style() ); lv_switch_off( wifisync_onoff, LV_ANIM_ON ); lv_obj_align( wifisync_onoff, wifisync_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 ); lv_obj_set_event_cb( wifisync_onoff, wifisync_onoff_event_handler ); @@ -99,6 +100,7 @@ void time_settings_tile_setup( void ) { lv_obj_add_style( daylight_cont, LV_OBJ_PART_MAIN, &time_settings_style ); lv_obj_align( daylight_cont, wifisync_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 ); daylight_onoff = lv_switch_create( daylight_cont, NULL ); + lv_obj_add_style( daylight_onoff, LV_SWITCH_PART_INDIC, mainbar_get_switch_style() ); lv_switch_off( daylight_onoff, LV_ANIM_ON ); lv_obj_align( daylight_onoff, daylight_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 ); lv_obj_set_event_cb( daylight_onoff, daylight_onoff_event_handler ); diff --git a/src/gui/mainbar/setup_tile/time_settings/time_settings.h b/src/gui/mainbar/setup_tile/time_settings/time_settings.h index d96c62c..2bd100e 100644 --- a/src/gui/mainbar/setup_tile/time_settings/time_settings.h +++ b/src/gui/mainbar/setup_tile/time_settings/time_settings.h @@ -24,14 +24,6 @@ #include - /* - * @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 time_settings_tile_setup( void ); #endif // _TIME_SETTINGS_H \ No newline at end of file diff --git a/src/gui/mainbar/setup_tile/update/update.cpp b/src/gui/mainbar/setup_tile/update/update.cpp index ebcee44..04f9eeb 100644 --- a/src/gui/mainbar/setup_tile/update/update.cpp +++ b/src/gui/mainbar/setup_tile/update/update.cpp @@ -171,8 +171,11 @@ void update_Task( void * pvParameters ) { log_i("start update task"); if ( xEventGroupGetBits( update_event_handle) & UPDATE_GET_VERSION_REQUEST ) { - if ( update_check_new_version() > atol( __FIRMWARE__ ) ) { - lv_label_set_text( update_status_label, "new version available" ); + int64_t firmware_version = update_check_new_version(); + if ( firmware_version > atol( __FIRMWARE__ ) && firmware_version > 0 ) { + char version_msg[48] = ""; + snprintf( version_msg, sizeof( version_msg ), "new version: %lld", firmware_version ); + lv_label_set_text( update_status_label, (const char*)version_msg ); lv_obj_align( update_status_label, update_btn, LV_ALIGN_OUT_BOTTOM_MID, 0, 15 ); } } diff --git a/src/gui/mainbar/setup_tile/update/update_check_version.cpp b/src/gui/mainbar/setup_tile/update/update_check_version.cpp index e9257de..c996548 100644 --- a/src/gui/mainbar/setup_tile/update/update_check_version.cpp +++ b/src/gui/mainbar/setup_tile/update/update_check_version.cpp @@ -37,13 +37,13 @@ uint64_t update_check_new_version( void ) { return( -1 ); } - check_version_client.printf( "GET /ttgo-t-watch2020_v1.version.json HTTP/1.1\r\n" - "Host: %s\r\n" + check_version_client.printf( "GET /" FIRMWARE_VERSION_FILE " HTTP/1.1\r\n" + "Host: " FIRMWARE_HOST "\r\n" "Connection: close\r\n" "Pragma: no-cache\r\n" "Cache-Control: no-cache\r\n" "User-Agent: ESP32-" __FIRMWARE__ "\r\n" - "Accept: text/html,application/json\r\n\r\n", FIRMWARE_HOST ); + "Accept: text/html,application/json\r\n\r\n" ); uint64_t startMillis = millis(); while ( check_version_client.available() == 0 ) { diff --git a/src/gui/mainbar/setup_tile/update/update_check_version.h b/src/gui/mainbar/setup_tile/update/update_check_version.h index 0f4d154..edc15ef 100644 --- a/src/gui/mainbar/setup_tile/update/update_check_version.h +++ b/src/gui/mainbar/setup_tile/update/update_check_version.h @@ -24,8 +24,9 @@ #include - #define FIRMWARE_HOST "www.neo-guerillaz.de" - #define FIRMWARE_HOST_PORT 80 + #define FIRMWARE_HOST "www.neo-guerillaz.de" + #define FIRMWARE_HOST_PORT 80 + #define FIRMWARE_VERSION_FILE "ttgo-t-watch2020_v1.version.json" uint64_t update_check_new_version(); diff --git a/src/gui/mainbar/setup_tile/wlan_settings/wlan_settings.cpp b/src/gui/mainbar/setup_tile/wlan_settings/wlan_settings.cpp index d766c60..fa169d6 100644 --- a/src/gui/mainbar/setup_tile/wlan_settings/wlan_settings.cpp +++ b/src/gui/mainbar/setup_tile/wlan_settings/wlan_settings.cpp @@ -97,8 +97,9 @@ void wlan_settings_tile_setup( void ) { lv_label_set_text( exit_label, "wlan settings"); lv_obj_align( exit_label, exit_btn, LV_ALIGN_OUT_RIGHT_MID, 5, 0 ); - /*Copy the first switch and turn it ON*/ + /*Copy the first switch and turn it ON*/ wifi_onoff = lv_switch_create( wifi_settings_tile, NULL ); + lv_obj_add_style( wifi_onoff, LV_SWITCH_PART_INDIC, mainbar_get_switch_style() ); lv_switch_off( wifi_onoff, LV_ANIM_ON ); lv_obj_align( wifi_onoff, exit_label, LV_ALIGN_OUT_RIGHT_MID, 30, 0 ); lv_obj_set_event_cb( wifi_onoff, wifi_onoff_event_handler); diff --git a/ttgo-t-watch2020_v1.ino.bin b/ttgo-t-watch2020_v1.ino.bin index f9abde1..c95ff2f 100644 Binary files a/ttgo-t-watch2020_v1.ino.bin and b/ttgo-t-watch2020_v1.ino.bin differ diff --git a/ttgo-t-watch2020_v1.version.json b/ttgo-t-watch2020_v1.version.json index 3b0ecb0..33863ca 100644 --- a/ttgo-t-watch2020_v1.version.json +++ b/ttgo-t-watch2020_v1.version.json @@ -1 +1 @@ -{"version":"2020073007","url":"http://www.neo-guerillaz.de/ttgo-t-watch2020_v1.ino.bin"} +{"version":"2020073016","host":"http://www.neo-guerillaz.de","file":"ttgo-t-watch2020_v1.ino.bin"}