add update url textarea

This commit is contained in:
sharandac
2020-08-25 14:44:45 +02:00
parent f6fee4ca90
commit c4ee5292ff
4 changed files with 62 additions and 16 deletions

View File

@@ -38,10 +38,12 @@ lv_style_t update_setup_style;
uint32_t update_setup_tile_num; uint32_t update_setup_tile_num;
lv_obj_t *update_check_autosync_onoff = NULL; lv_obj_t *update_check_autosync_onoff = NULL;
lv_obj_t *update_check_url_textfield = NULL;
LV_IMG_DECLARE(exit_32px); LV_IMG_DECLARE(exit_32px);
LV_IMG_DECLARE(setup_32px); LV_IMG_DECLARE(setup_32px);
static void update_check_url_textarea_event_cb( lv_obj_t * obj, lv_event_t event );
static void exit_update_check_setup_event_cb( lv_obj_t * obj, lv_event_t event ); static void exit_update_check_setup_event_cb( lv_obj_t * obj, lv_event_t event );
static void update_check_autosync_onoff_event_handler( lv_obj_t * obj, lv_event_t event ); static void update_check_autosync_onoff_event_handler( lv_obj_t * obj, lv_event_t event );
void update_read_config( void ); void update_read_config( void );
@@ -90,6 +92,23 @@ void update_setup_tile_setup( uint32_t tile_num ) {
lv_label_set_text( update_check_autosync_label, "check for updates"); lv_label_set_text( update_check_autosync_label, "check for updates");
lv_obj_align( update_check_autosync_label, update_check_autosync_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 ); lv_obj_align( update_check_autosync_label, update_check_autosync_cont, LV_ALIGN_IN_LEFT_MID, 5, 0 );
lv_obj_t *update_check_url_cont = lv_obj_create( update_setup_tile, NULL );
lv_obj_set_size(update_check_url_cont, LV_HOR_RES_MAX , 60);
lv_obj_add_style( update_check_url_cont, LV_OBJ_PART_MAIN, &update_setup_style );
lv_obj_align( update_check_url_cont, update_check_autosync_cont, LV_ALIGN_OUT_BOTTOM_MID, 0, 0 );
lv_obj_t *update_check_url_label = lv_label_create( update_check_url_cont, NULL);
lv_obj_add_style( update_check_url_label, LV_OBJ_PART_MAIN, &update_setup_style );
lv_label_set_text( update_check_url_label, "update URL");
lv_obj_align( update_check_url_label, update_check_url_cont, LV_ALIGN_IN_TOP_LEFT, 5, 0 );
update_check_url_textfield = lv_textarea_create( update_check_url_cont, NULL);
lv_textarea_set_text( update_check_url_textfield, update_config.updateurl );
lv_textarea_set_pwd_mode( update_check_url_textfield, false);
lv_textarea_set_one_line( update_check_url_textfield, true);
lv_textarea_set_cursor_hidden( update_check_url_textfield, true);
lv_obj_set_width( update_check_url_textfield, LV_HOR_RES - 10 );
lv_obj_align( update_check_url_textfield, update_check_url_cont, LV_ALIGN_IN_BOTTOM_MID, 0, 0 );
lv_obj_set_event_cb( update_check_url_textfield, update_check_url_textarea_event_cb );
if ( update_config.autosync ) if ( update_config.autosync )
lv_switch_on( update_check_autosync_onoff, LV_ANIM_OFF); lv_switch_on( update_check_autosync_onoff, LV_ANIM_OFF);
else else
@@ -97,11 +116,15 @@ void update_setup_tile_setup( uint32_t tile_num ) {
} }
static void update_check_url_textarea_event_cb( lv_obj_t * obj, lv_event_t event ) {
if( event == LV_EVENT_CLICKED ) {
keyboard_set_textarea( obj );
}
}
static void update_check_autosync_onoff_event_handler( lv_obj_t * obj, lv_event_t event ) { static void update_check_autosync_onoff_event_handler( lv_obj_t * obj, lv_event_t event ) {
switch (event) { switch (event) {
case (LV_EVENT_VALUE_CHANGED): update_config.autosync = lv_switch_get_state( obj ); case ( LV_EVENT_VALUE_CHANGED ): update_config.autosync = lv_switch_get_state( obj );
update_save_config();
break; break;
} }
} }
@@ -109,6 +132,8 @@ static void update_check_autosync_onoff_event_handler( lv_obj_t * obj, lv_event_
static void exit_update_check_setup_event_cb( lv_obj_t * obj, lv_event_t event ) { static void exit_update_check_setup_event_cb( lv_obj_t * obj, lv_event_t event ) {
switch( event ) { switch( event ) {
case( LV_EVENT_CLICKED ): mainbar_jump_to_tilenumber( update_setup_tile_num - 1, false ); case( LV_EVENT_CLICKED ): mainbar_jump_to_tilenumber( update_setup_tile_num - 1, false );
strlcpy( update_config.updateurl , lv_textarea_get_text( update_check_url_textfield ), sizeof( update_config.updateurl ) );
update_save_config();
break; break;
} }
} }

View File

@@ -56,7 +56,7 @@ void pmu_setup( TTGOClass *ttgo ) {
// Turn i2s DAC on // Turn i2s DAC on
ttgo->power->setLDO3Mode( AXP202_LDO3_MODE_DCIN ); ttgo->power->setLDO3Mode( AXP202_LDO3_MODE_DCIN );
ttgo->power->setPowerOutPut(AXP202_LDO3, AXP202_ON ); ttgo->power->setPowerOutPut( AXP202_LDO3, AXP202_ON );
pinMode( AXP202_INT, INPUT ); pinMode( AXP202_INT, INPUT );
attachInterrupt( AXP202_INT, &pmu_irq, FALLING ); attachInterrupt( AXP202_INT, &pmu_irq, FALLING );
@@ -92,32 +92,34 @@ void pmu_standby( void ) {
} }
if ( pmu_get_experimental_power_save() ) { if ( pmu_get_experimental_power_save() ) {
ttgo->power->setDCDC3Voltage( 2700 ); ttgo->power->setDCDC3Voltage( pmu_config.experimental_power_save_voltage );
log_i("go standby, enable 2.7V standby voltage"); log_i("go standby, enable %dmV standby voltage", pmu_config.experimental_power_save_voltage );
} }
else { else {
ttgo->power->setDCDC3Voltage( 3000 ); ttgo->power->setDCDC3Voltage( pmu_config.normal_power_save_voltage );
log_i("go standby, enable 3.0V standby voltage"); log_i("go standby, enable %dmV standby voltage", pmu_config.normal_power_save_voltage );
} }
ttgo->power->setPowerOutPut(AXP202_LDO3, AXP202_OFF ); ttgo->power->setPowerOutPut( AXP202_LDO3, AXP202_OFF );
ttgo->power->setPowerOutPut( AXP202_LDO2, AXP202_OFF );
} }
void pmu_wakeup( void ) { void pmu_wakeup( void ) {
TTGOClass *ttgo = TTGOClass::getWatch(); TTGOClass *ttgo = TTGOClass::getWatch();
if ( pmu_get_experimental_power_save() ) { if ( pmu_get_experimental_power_save() ) {
ttgo->power->setDCDC3Voltage( 3000 ); ttgo->power->setDCDC3Voltage( pmu_config.experimental_normal_voltage );
log_i("go wakeup, enable 3.0V voltage"); log_i("go wakeup, enable %dmV voltage", pmu_config.experimental_normal_voltage );
} }
else { else {
ttgo->power->setDCDC3Voltage( 3300 ); ttgo->power->setDCDC3Voltage( pmu_config.normal_voltage );
log_i("go wakeup, enable 3.3V voltage"); log_i("go wakeup, enable %dmV voltage", pmu_config.normal_voltage );
} }
ttgo->power->clearTimerStatus(); ttgo->power->clearTimerStatus();
ttgo->power->offTimer(); ttgo->power->offTimer();
ttgo->power->setPowerOutPut( AXP202_LDO3, AXP202_ON ); ttgo->power->setPowerOutPut( AXP202_LDO3, AXP202_ON );
ttgo->power->setPowerOutPut( AXP202_LDO2, AXP202_ON );
} }
/* /*
* *
@@ -134,12 +136,16 @@ void pmu_save_config( void ) {
log_e("Can't open file: %s!", PMU_JSON_CONFIG_FILE ); log_e("Can't open file: %s!", PMU_JSON_CONFIG_FILE );
} }
else { else {
SpiRamJsonDocument doc( 1000 ); SpiRamJsonDocument doc( 3000 );
doc["silence_wakeup"] = pmu_config.silence_wakeup; doc["silence_wakeup"] = pmu_config.silence_wakeup;
doc["silence_wakeup_time"] = pmu_config.silence_wakeup_time; doc["silence_wakeup_time"] = pmu_config.silence_wakeup_time;
doc["silence_wakeup_time_vbplug"] = pmu_config.silence_wakeup_time_vbplug; doc["silence_wakeup_time_vbplug"] = pmu_config.silence_wakeup_time_vbplug;
doc["experimental_power_save"] = pmu_config.experimental_power_save; doc["experimental_power_save"] = pmu_config.experimental_power_save;
doc["normal_voltage"] = pmu_config.normal_voltage;
doc["normal_power_save_voltage"] = pmu_config.normal_power_save_voltage;
doc["experimental_normal_voltage"] = pmu_config.experimental_normal_voltage;
doc["experimental_power_save_voltage"] = pmu_config.experimental_power_save_voltage;
doc["compute_percent"] = pmu_config.compute_percent; doc["compute_percent"] = pmu_config.compute_percent;
doc["high_charging_target_voltage"] = pmu_config.high_charging_target_voltage; doc["high_charging_target_voltage"] = pmu_config.high_charging_target_voltage;
doc["designed_battery_cap"] = pmu_config.designed_battery_cap; doc["designed_battery_cap"] = pmu_config.designed_battery_cap;
@@ -177,6 +183,10 @@ void pmu_read_config( void ) {
pmu_config.compute_percent = doc["compute_percent"] | false; pmu_config.compute_percent = doc["compute_percent"] | false;
pmu_config.high_charging_target_voltage = doc["high_charging_target_voltage"] | false; pmu_config.high_charging_target_voltage = doc["high_charging_target_voltage"] | false;
pmu_config.designed_battery_cap = doc["designed_battery_cap"] | 300; pmu_config.designed_battery_cap = doc["designed_battery_cap"] | 300;
pmu_config.normal_voltage = doc["normal_voltage"] | 3300;
pmu_config.normal_power_save_voltage = doc["normal_power_save_voltage"] | 3000;
pmu_config.experimental_normal_voltage = doc["experimental_normal_voltage"] | 3000;
pmu_config.experimental_power_save_voltage = doc["experimental_power_save_voltage"] | 2700;
} }
doc.clear(); doc.clear();
} }

View File

@@ -33,6 +33,10 @@
int32_t designed_battery_cap = 300; int32_t designed_battery_cap = 300;
int32_t silence_wakeup_time = 60; int32_t silence_wakeup_time = 60;
int32_t silence_wakeup_time_vbplug = 3; int32_t silence_wakeup_time_vbplug = 3;
int32_t normal_voltage = 3300;
int32_t normal_power_save_voltage = 3000;
int32_t experimental_normal_voltage = 3000;
int32_t experimental_power_save_voltage = 2700;
bool high_charging_target_voltage = true; bool high_charging_target_voltage = true;
bool compute_percent = false; bool compute_percent = false;
bool experimental_power_save = false; bool experimental_power_save = false;

View File

@@ -160,9 +160,16 @@ void powermgm_loop( TTGOClass *ttgo ) {
} }
powermgm_clear_event( POWERMGM_SILENCE_WAKEUP_REQUEST | POWERMGM_WAKEUP_REQUEST | POWERMGM_STANDBY_REQUEST ); powermgm_clear_event( POWERMGM_SILENCE_WAKEUP_REQUEST | POWERMGM_WAKEUP_REQUEST | POWERMGM_STANDBY_REQUEST );
if ( powermgm_get_event( POWERMGM_STANDBY ) ) {
vTaskDelay( 100 );
pmu_loop( ttgo );
bma_loop( ttgo );
}
else {
pmu_loop( ttgo ); pmu_loop( ttgo );
bma_loop( ttgo ); bma_loop( ttgo );
display_loop( ttgo ); display_loop( ttgo );
}
} }
/* /*