From a8a34a1528065c190c86ffa0eaa99faf80d94714 Mon Sep 17 00:00:00 2001 From: fvanroie <15969459+fvanroie@users.noreply.github.com> Date: Tue, 4 May 2021 02:19:03 +0200 Subject: [PATCH] Remove inverted types, add inverted parameter and add DAC --- src/sys/gpio/hasp_gpio.h | 46 ++++++++++++++++++++------------------- src/sys/svc/hasp_http.cpp | 39 ++++++++++++++------------------- 2 files changed, 40 insertions(+), 45 deletions(-) diff --git a/src/sys/gpio/hasp_gpio.h b/src/sys/gpio/hasp_gpio.h index fc823c8b..2174fb61 100644 --- a/src/sys/gpio/hasp_gpio.h +++ b/src/sys/gpio/hasp_gpio.h @@ -18,6 +18,7 @@ struct hasp_gpio_config_t uint8_t gpio_function; // INPUT, OUTPUT, PULLUP, etc uint16_t val; uint16_t max; + bool inverted; }; void gpioSetup(void); @@ -25,7 +26,7 @@ void gpioLoop(void); void gpioEvery5Seconds(void); // void gpio_set_group_onoff(uint8_t groupid, bool ison); -void gpio_set_normalized_group_value(uint8_t groupid, int16_t val, int16_t min, int16_t max); +void gpio_set_normalized_group_values(uint8_t group, int32_t val, int32_t min, int32_t max); // void gpio_set_gpio_state(uint8_t pin, uint16_t state); bool gpio_get_value(uint8_t pin, uint16_t& val); bool gpio_set_pin_value(uint8_t pin, int32_t val); @@ -48,44 +49,45 @@ bool gpioSetConfig(const JsonObject& settings); #define HASP_GPIO_FREE 0x00 #define HASP_GPIO_USED 0x01 #define HASP_GPIO_SWITCH 0x02 // User Inputs -#define HASP_GPIO_SWITCH_INVERTED 0x03 +// #define HASP_GPIO_SWITCH_INVERTED 0x03 #define HASP_GPIO_BUTTON 0x04 -#define HASP_GPIO_BUTTON_INVERTED 0x05 +// #define HASP_GPIO_BUTTON_INVERTED 0x05 #define HASP_GPIO_TOUCH 0x06 -#define HASP_GPIO_TOUCH_INVERTED 0x07 +// #define HASP_GPIO_TOUCH_INVERTED 0x07 #define HASP_GPIO_COUNTER_RISE 0x10 // User Counters -#define HASP_GPIO_COUNTER_RISE_INVERTED 0x11 +// #define HASP_GPIO_COUNTER_RISE_INVERTED 0x11 #define HASP_GPIO_COUNTER_FALL 0x12 -#define HASP_GPIO_COUNTER_FALL_INVERTED 0x13 +// #define HASP_GPIO_COUNTER_FALL_INVERTED 0x13 #define HASP_GPIO_COUNTER_BOTH 0x14 -#define HASP_GPIO_COUNTER_BOTH_INVERTED 0x15 +// #define HASP_GPIO_COUNTER_BOTH_INVERTED 0x15 #define HASP_GPIO_RELAY 0x20 // User Outputs -#define HASP_GPIO_RELAY_INVERTED 0x21 +// #define HASP_GPIO_RELAY_INVERTED 0x21 +#define HASP_GPIO_ALL_LEDS 0x22 ... 0x2F #define HASP_GPIO_LED 0x22 -#define HASP_GPIO_LED_INVERTED 0x23 +// #define HASP_GPIO_LED_INVERTED 0x23 #define HASP_GPIO_LED_R 0x24 -#define HASP_GPIO_LED_R_INVERTED 0x25 +// #define HASP_GPIO_LED_R_INVERTED 0x25 #define HASP_GPIO_LED_G 0x26 -#define HASP_GPIO_LED_G_INVERTED 0x27 +// #define HASP_GPIO_LED_G_INVERTED 0x27 #define HASP_GPIO_LED_B 0x28 -#define HASP_GPIO_LED_B_INVERTED 0x29 +// #define HASP_GPIO_LED_B_INVERTED 0x29 #define HASP_GPIO_LED_W 0x2A -#define HASP_GPIO_LED_W_INVERTED 0x2B +// #define HASP_GPIO_LED_W_INVERTED 0x2B #define HASP_GPIO_LED_WW 0x2C -#define HASP_GPIO_LED_WW_INVERTED 0x2D +// #define HASP_GPIO_LED_WW_INVERTED 0x2D #define HASP_GPIO_LED_CW 0x2E -#define HASP_GPIO_LED_CW_INVERTED 0x2F -#define HASP_GPIO_BUZZER 0x30 -#define HASP_GPIO_BUZZER_INVERTED 0x31 -#define HASP_GPIO_HAPTIC 0x32 -#define HASP_GPIO_HAPTIC_INVERTED 0x33 +// #define HASP_GPIO_LED_CW_INVERTED 0x2F #define HASP_GPIO_PWM 0x40 -#define HASP_GPIO_PWM_INVERTED 0x41 +// #define HASP_GPIO_PWM_INVERTED 0x41 #define HASP_GPIO_DAC 0x50 -#define HASP_GPIO_DAC_INVERTED 0x51 +// #define HASP_GPIO_DAC_INVERTED 0x51 #define HASP_GPIO_ADC 0x52 -#define HASP_GPIO_ADC_INVERTED 0x53 +// #define HASP_GPIO_ADC_INVERTED 0x53 #define HASP_GPIO_SERIAL_DIMMER 0x60 +#define HASP_GPIO_BUZZER 0x70 +// #define HASP_GPIO_BUZZER_INVERTED 0x71 +#define HASP_GPIO_HAPTIC 0x72 +// #define HASP_GPIO_HAPTIC_INVERTED 0x73 #define HASP_GPIO_USER 0xFF #ifdef __cplusplus diff --git a/src/sys/svc/hasp_http.cpp b/src/sys/svc/hasp_http.cpp index 18ef3e23..f6da2ad6 100644 --- a/src/sys/svc/hasp_http.cpp +++ b/src/sys/svc/hasp_http.cpp @@ -1547,31 +1547,25 @@ void webHandleGpioConfig() httpMessage += haspDevice.gpio_name(gpio).c_str(); httpMessage += F(""); - switch(conf.type & 0xfe) { + switch(conf.type) { case HASP_GPIO_SWITCH: - // case HASP_GPIO_SWITCH_INVERTED: httpMessage += F("Switch"); break; case HASP_GPIO_BUTTON: - // case HASP_GPIO_BUTTON_INVERTED: httpMessage += F("Button"); break; case HASP_GPIO_LED: - // case HASP_GPIO_LED_INVERTED: httpMessage += F("Led"); break; case HASP_GPIO_LED_R: case HASP_GPIO_LED_G: case HASP_GPIO_LED_B: - // case HASP_GPIO_LED_INVERTED: httpMessage += F("Mood "); break; case HASP_GPIO_RELAY: - // case HASP_GPIO_RELAY_INVERTED: httpMessage += F("Relay"); break; case HASP_GPIO_PWM: - // case HASP_GPIO_PWM_INVERTED: httpMessage += F("PWM"); break; case HASP_GPIO_SERIAL_DIMMER: @@ -1581,7 +1575,7 @@ void webHandleGpioConfig() httpMessage += F("Unknown"); } - switch(conf.type & 0xfe) { + switch(conf.type) { case HASP_GPIO_LED_R: httpMessage += F("Red"); break; @@ -1596,7 +1590,7 @@ void webHandleGpioConfig() httpMessage += F(""); httpMessage += conf.group; httpMessage += F(""); - httpMessage += (conf.type & 0x1) ? F("High") : F("Low"); + httpMessage += (conf.inverted) ? F("Inverted") : F("Normal"); httpMessage += F(""); - // httpMessage += getOption(HASP_GPIO_FREE, F("Unused"), false); - selected = (conf.type == HASP_GPIO_SWITCH) || (conf.type == HASP_GPIO_SWITCH_INVERTED); + selected = (conf.type == HASP_GPIO_SWITCH); httpMessage += getOption(HASP_GPIO_SWITCH, F("Switch"), selected); - selected = (conf.type == HASP_GPIO_BUTTON) || (conf.type == HASP_GPIO_BUTTON_INVERTED); + selected = (conf.type == HASP_GPIO_BUTTON); httpMessage += getOption(HASP_GPIO_BUTTON, F("Button"), selected); - selected = (conf.type == HASP_GPIO_LED) || (conf.type == HASP_GPIO_LED_INVERTED); + selected = (conf.type == HASP_GPIO_LED); httpMessage += getOption(HASP_GPIO_LED, F("Led"), selected); - selected = (conf.type == HASP_GPIO_LED_R) || (conf.type == HASP_GPIO_LED_R_INVERTED); + selected = (conf.type == HASP_GPIO_LED_R); httpMessage += getOption(HASP_GPIO_LED_R, F("Mood Red"), selected); - selected = (conf.type == HASP_GPIO_LED_G) || (conf.type == HASP_GPIO_LED_G_INVERTED); + selected = (conf.type == HASP_GPIO_LED_G); httpMessage += getOption(HASP_GPIO_LED_G, F("Mood Green"), selected); - selected = (conf.type == HASP_GPIO_LED_B) || (conf.type == HASP_GPIO_LED_B_INVERTED); + selected = (conf.type == HASP_GPIO_LED_B); httpMessage += getOption(HASP_GPIO_LED_B, F("Mood Blue"), selected); - selected = (conf.type == HASP_GPIO_RELAY) || (conf.type == HASP_GPIO_RELAY_INVERTED); + selected = (conf.type == HASP_GPIO_RELAY); httpMessage += getOption(HASP_GPIO_RELAY, F("Relay"), selected); + selected = (conf.type == HASP_GPIO_RELAY); + httpMessage += getOption(HASP_GPIO_RELAY, F("DAC"), selected); + selected = (conf.type == HASP_GPIO_SERIAL_DIMMER); httpMessage += getOption(HASP_GPIO_SERIAL_DIMMER, F("Serial Dimmer"), selected); if(digitalPinHasPWM(webServer.arg(0).toInt())) { - selected = (conf.type == HASP_GPIO_PWM) || (conf.type == HASP_GPIO_PWM_INVERTED); + selected = (conf.type == HASP_GPIO_PWM); httpMessage += getOption(HASP_GPIO_PWM, F("PWM"), selected); } httpMessage += F("

"); @@ -1713,11 +1709,8 @@ void webHandleGpioOptions() httpMessage += F("

"); httpMessage += F("

Default State

"); httpMessage +=