mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-24 11:46:34 +00:00
Add dispatch_normalized_group_values to event handlers
This commit is contained in:
parent
a8a34a1528
commit
0761b3f207
@ -463,15 +463,15 @@ static inline void dispatch_state_msg(const __FlashStringHelper* subtopic, const
|
||||
// // dispatch_output_group_state(groupid, payload);
|
||||
// }
|
||||
|
||||
void dispatch_normalized_group_value(uint8_t groupid, lv_obj_t* obj, int16_t val, int16_t min, int16_t max)
|
||||
void dispatch_normalized_group_values(uint8_t groupid, lv_obj_t* obj, int16_t val, int16_t min, int16_t max)
|
||||
{
|
||||
if(groupid == 0) return;
|
||||
|
||||
LOG_VERBOSE(TAG_MSGR, F("GROUP %d value %d (%d-%d)"), groupid, val, min, max);
|
||||
#if HASP_USE_GPIO > 0
|
||||
gpio_set_normalized_group_value(groupid, val, min, max); // Update GPIO states
|
||||
gpio_set_normalized_group_values(groupid, val, min, max); // Update GPIO states
|
||||
#endif
|
||||
object_set_normalized_group_value(groupid, obj, val, min, max); // Update onsreen objects
|
||||
object_set_normalized_group_values(groupid, obj, val, min, max); // Update onsreen objects
|
||||
}
|
||||
|
||||
/********************************************** Native Commands ****************************************/
|
||||
@ -801,13 +801,6 @@ void dispatch_reboot(bool saveConfig)
|
||||
haspDevice.reboot();
|
||||
}
|
||||
|
||||
void dispatch_current_state()
|
||||
{
|
||||
dispatch_statusupdate(NULL, NULL);
|
||||
dispatch_idle(NULL, NULL);
|
||||
dispatch_current_page();
|
||||
}
|
||||
|
||||
/******************************************* Command Wrapper Functions *********************************/
|
||||
|
||||
// Periodically publish a JSON string indicating system status
|
||||
@ -907,6 +900,14 @@ void dispatch_statusupdate(const char*, const char*)
|
||||
#endif
|
||||
}
|
||||
|
||||
void dispatch_current_state()
|
||||
{
|
||||
dispatch_statusupdate(NULL, NULL);
|
||||
dispatch_idle(NULL, NULL);
|
||||
dispatch_current_page();
|
||||
dispatch_send_discovery(NULL, NULL);
|
||||
}
|
||||
|
||||
void dispatch_calibrate(const char*, const char*)
|
||||
{
|
||||
guiCalibrate();
|
||||
|
@ -64,7 +64,7 @@ void dispatch_wakeup(const char*, const char*);
|
||||
void dispatch_gpio_input_event(uint8_t pin, uint8_t group, uint8_t eventid);
|
||||
void dispatch_output_pin_value(uint8_t pin, uint16_t val);
|
||||
|
||||
void dispatch_normalized_group_value(uint8_t groupid, lv_obj_t* obj, int16_t val, int16_t min, int16_t max);
|
||||
void dispatch_normalized_group_values(uint8_t groupid, lv_obj_t* obj, int16_t val, int16_t min, int16_t max);
|
||||
|
||||
void dispatch_state_subtopic(const char* subtopic, const char* payload);
|
||||
|
||||
|
@ -103,7 +103,7 @@ static bool translate_event(lv_obj_t* obj, lv_event_t event, uint8_t& eventid)
|
||||
|
||||
// ##################### Value Senders ########################################################
|
||||
|
||||
void event_send_object_data(lv_obj_t* obj, const char* data)
|
||||
static void event_send_object_data(lv_obj_t* obj, const char* data)
|
||||
{
|
||||
uint8_t pageid;
|
||||
uint8_t objid;
|
||||
@ -117,7 +117,7 @@ void event_send_object_data(lv_obj_t* obj, const char* data)
|
||||
}
|
||||
|
||||
// Send out events with a val attribute
|
||||
void event_object_val_event(lv_obj_t* obj, uint8_t eventid, int16_t val)
|
||||
static void event_object_val_event(lv_obj_t* obj, uint8_t eventid, int16_t val)
|
||||
{
|
||||
char data[40];
|
||||
char eventname[8];
|
||||
@ -128,7 +128,7 @@ void event_object_val_event(lv_obj_t* obj, uint8_t eventid, int16_t val)
|
||||
}
|
||||
|
||||
// Send out events with a val and text attribute
|
||||
void event_object_selection_changed(lv_obj_t* obj, uint8_t eventid, int16_t val, const char* text)
|
||||
static void event_object_selection_changed(lv_obj_t* obj, uint8_t eventid, int16_t val, const char* text)
|
||||
{
|
||||
char data[200];
|
||||
char eventname[8];
|
||||
@ -157,7 +157,7 @@ void event_gpio_input(uint8_t pin, uint8_t group, uint8_t eventid)
|
||||
}
|
||||
#endif
|
||||
|
||||
void log_event(const char* name, lv_event_t event)
|
||||
static void log_event(const char* name, lv_event_t event)
|
||||
{
|
||||
return;
|
||||
|
||||
@ -346,8 +346,12 @@ void generic_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
snprintf_P(data, sizeof(data), PSTR("{\"event\":\"%s\"}"), eventname);
|
||||
event_send_object_data(obj, data);
|
||||
}
|
||||
dispatch_normalized_group_value(obj->user_data.groupid, obj, Parser::get_event_state(last_value_sent),
|
||||
HASP_EVENT_OFF, HASP_EVENT_ON);
|
||||
|
||||
// Update group objects and gpios on release
|
||||
if(last_value_sent == HASP_EVENT_UP || last_value_sent == HASP_EVENT_RELEASE) {
|
||||
dispatch_normalized_group_values(obj->user_data.groupid, obj, Parser::get_event_state(last_value_sent),
|
||||
HASP_EVENT_OFF, HASP_EVENT_ON);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -386,7 +390,11 @@ void toggle_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
}
|
||||
|
||||
event_object_val_event(obj, hasp_event_id, last_value_sent);
|
||||
dispatch_normalized_group_value(obj->user_data.groupid, obj, last_value_sent, HASP_EVENT_OFF, HASP_EVENT_ON);
|
||||
|
||||
// Update group objects and gpios on release
|
||||
if(last_value_sent == HASP_EVENT_UP) {
|
||||
dispatch_normalized_group_values(obj->user_data.groupid, obj, last_value_sent, HASP_EVENT_OFF, HASP_EVENT_ON);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -450,7 +458,11 @@ void selector_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
if(hasp_event_id == HASP_EVENT_CHANGED && last_value_sent == val) return; // same value as before
|
||||
last_value_sent = val;
|
||||
event_object_selection_changed(obj, hasp_event_id, val, buffer);
|
||||
// if(max > 0) dispatch_normalized_group_value(obj->user_data.groupid, obj, val, 0, max);
|
||||
|
||||
if(max > 0) // max a cannot be 0, its the divider
|
||||
if(hasp_event_id == HASP_EVENT_UP || hasp_event_id == LV_EVENT_VALUE_CHANGED) {
|
||||
dispatch_normalized_group_values(obj->user_data.groupid, obj, last_value_sent, 0, max);
|
||||
}
|
||||
|
||||
// set the property
|
||||
// snprintf_P(property, sizeof(property), PSTR("val\":%d,\"text"), val);
|
||||
@ -485,7 +497,11 @@ void btnmatrix_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
|
||||
last_value_sent = val;
|
||||
event_object_selection_changed(obj, hasp_event_id, val, buffer);
|
||||
// if(max > 0) dispatch_normalized_group_value(obj->user_data.groupid, obj, val, 0, max);
|
||||
|
||||
// if(max > 0) // max a cannot be 0, its the divider
|
||||
// if(hasp_event_id == HASP_EVENT_UP || hasp_event_id == LV_EVENT_VALUE_CHANGED) {
|
||||
// dispatch_normalized_group_values(obj->user_data.groupid, obj, last_value_sent, 0, max);
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
@ -517,7 +533,7 @@ void msgbox_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
|
||||
last_value_sent = val;
|
||||
event_object_selection_changed(obj, hasp_event_id, val, buffer);
|
||||
// if(max > 0) dispatch_normalized_group_value(obj->user_data.groupid, obj, val, 0, max);
|
||||
// if(max > 0) dispatch_normalized_group_values(obj->user_data.groupid, obj, val, 0, max);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -555,7 +571,9 @@ void slider_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
|
||||
last_value_sent = val;
|
||||
event_object_val_event(obj, hasp_event_id, val);
|
||||
dispatch_normalized_group_value(obj->user_data.groupid, obj, val, min, max);
|
||||
|
||||
if(hasp_event_id == HASP_EVENT_CHANGED && min != max)
|
||||
dispatch_normalized_group_values(obj->user_data.groupid, obj, val, min, max);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -587,5 +605,5 @@ void cpicker_event_handler(lv_obj_t* obj, lv_event_t event)
|
||||
eventname, c32.ch.red, c32.ch.green, c32.ch.blue, c32.ch.red, c32.ch.green, c32.ch.blue);
|
||||
event_send_object_data(obj, data);
|
||||
|
||||
// dispatch_normalized_group_value(obj->user_data.groupid, obj, val, min, max);
|
||||
// dispatch_normalized_group_values(obj->user_data.groupid, obj, val, min, max);
|
||||
}
|
||||
|
@ -11,6 +11,7 @@
|
||||
#define HASP_NUM_PAGE_BACK (HASP_NUM_PAGES + 2)
|
||||
#define HASP_NUM_PAGE_NEXT (HASP_NUM_PAGES + 3)
|
||||
|
||||
// Object event Handlers
|
||||
void wakeup_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void generic_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void toggle_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
@ -21,6 +22,7 @@ void msgbox_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
void cpicker_event_handler(lv_obj_t* obj, lv_event_t event);
|
||||
|
||||
#if HASP_USE_GPIO > 0
|
||||
// GPIO event Handler
|
||||
void event_gpio_input(uint8_t pin, uint8_t group, uint8_t eventid);
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user