Merge pull request #582 from perexg/topic/idle-scripts

sleep state - run idle scripts and allow to control the backlight
This commit is contained in:
fvanroie 2023-11-29 20:49:50 +01:00 committed by GitHub
commit 894370b4cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 14 deletions

View File

@ -119,20 +119,17 @@ HASP_ATTRIBUTE_FAST_MEM void hasp_update_sleep_state()
if(sleepTimeLong > 0 && idle >= (sleepTimeShort + sleepTimeLong)) { if(sleepTimeLong > 0 && idle >= (sleepTimeShort + sleepTimeLong)) {
if(hasp_sleep_state != HASP_SLEEP_LONG) { if(hasp_sleep_state != HASP_SLEEP_LONG) {
gui_hide_pointer(true); gui_hide_pointer(true);
hasp_sleep_state = HASP_SLEEP_LONG; hasp_set_sleep_state(HASP_SLEEP_LONG, TAG_MAIN);
dispatch_idle_state(HASP_SLEEP_LONG);
} }
} else if(sleepTimeShort > 0 && idle >= sleepTimeShort) { } else if(sleepTimeShort > 0 && idle >= sleepTimeShort) {
if(hasp_sleep_state != HASP_SLEEP_SHORT) { if(hasp_sleep_state != HASP_SLEEP_SHORT) {
gui_hide_pointer(true); gui_hide_pointer(true);
hasp_sleep_state = HASP_SLEEP_SHORT; hasp_set_sleep_state(HASP_SLEEP_SHORT, TAG_MAIN);
dispatch_idle_state(HASP_SLEEP_SHORT);
} }
} else { } else {
if(hasp_sleep_state != HASP_SLEEP_OFF) { if(hasp_sleep_state != HASP_SLEEP_OFF) {
gui_hide_pointer(false); gui_hide_pointer(false);
hasp_sleep_state = HASP_SLEEP_OFF; hasp_set_sleep_state(HASP_SLEEP_OFF, TAG_MAIN);
dispatch_idle_state(HASP_SLEEP_OFF);
} }
} }
} }
@ -147,18 +144,21 @@ uint8_t hasp_get_sleep_state()
return hasp_sleep_state; return hasp_sleep_state;
} }
void hasp_set_sleep_state(uint8_t state) void hasp_set_sleep_state(uint8_t state, uint8_t source)
{ {
switch(state) { switch(state) {
case HASP_SLEEP_LONG: case HASP_SLEEP_LONG:
hasp_set_sleep_offset(sleepTimeShort + sleepTimeLong); hasp_set_sleep_offset(sleepTimeShort + sleepTimeLong);
dispatch_run_script(NULL, "L:/idle_long.cmd", source);
break; break;
case HASP_SLEEP_SHORT: case HASP_SLEEP_SHORT:
hasp_set_sleep_offset(sleepTimeShort); hasp_set_sleep_offset(sleepTimeShort);
dispatch_run_script(NULL, "L:/idle_short.cmd", source);
break; break;
case HASP_SLEEP_OFF: case HASP_SLEEP_OFF:
hasp_set_sleep_offset(0); hasp_set_sleep_offset(0);
// hasp_set_wakeup_touch(false); // hasp_set_wakeup_touch(false);
dispatch_run_script(NULL, "L:/idle_off.cmd", source);
break; break;
default: default:
return; return;

View File

@ -79,7 +79,7 @@ lv_font_t* hasp_get_font(uint8_t fontid);
HASP_ATTRIBUTE_FAST_MEM void hasp_update_sleep_state(); HASP_ATTRIBUTE_FAST_MEM void hasp_update_sleep_state();
void hasp_get_sleep_payload(uint8_t state, char* payload); void hasp_get_sleep_payload(uint8_t state, char* payload);
uint8_t hasp_get_sleep_state(); uint8_t hasp_get_sleep_state();
void hasp_set_sleep_state(uint8_t state); void hasp_set_sleep_state(uint8_t state, uint8_t source);
void hasp_get_sleep_time(uint16_t& short_time, uint16_t& long_time); void hasp_get_sleep_time(uint16_t& short_time, uint16_t& long_time);
void hasp_set_sleep_time(uint16_t short_time, uint16_t long_time); void hasp_set_sleep_time(uint16_t short_time, uint16_t long_time);
void hasp_set_sleep_offset(uint32_t offset); void hasp_set_sleep_offset(uint32_t offset);

View File

@ -1356,14 +1356,11 @@ void dispatch_idle(const char*, const char* payload, uint8_t source)
if(payload && strlen(payload)) { if(payload && strlen(payload)) {
uint8_t state = HASP_SLEEP_LAST; uint8_t state = HASP_SLEEP_LAST;
if(!strcmp_P(payload, "off")) { if(!strcmp_P(payload, "off")) {
hasp_set_sleep_state(HASP_SLEEP_OFF); hasp_set_sleep_state(HASP_SLEEP_OFF, source);
dispatch_run_script(NULL, "L:/idle_off.cmd", source);
} else if(!strcmp_P(payload, "short")) { } else if(!strcmp_P(payload, "short")) {
hasp_set_sleep_state(HASP_SLEEP_SHORT); hasp_set_sleep_state(HASP_SLEEP_SHORT, source);
dispatch_run_script(NULL, "L:/idle_short.cmd", source);
} else if(!strcmp_P(payload, "long")) { } else if(!strcmp_P(payload, "long")) {
hasp_set_sleep_state(HASP_SLEEP_LONG); hasp_set_sleep_state(HASP_SLEEP_LONG, source);
dispatch_run_script(NULL, "L:/idle_long.cmd", source);
} else { } else {
LOG_WARNING(TAG_MSGR, F("Invalid idle value %s"), payload); LOG_WARNING(TAG_MSGR, F("Invalid idle value %s"), payload);
return; return;