mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-28 05:36:37 +00:00
Add bool return value
This commit is contained in:
parent
669a173cf4
commit
cb51dd96d0
@ -248,6 +248,11 @@ void gpioSetup()
|
||||
input_mode = INPUT_PULLUP;
|
||||
}
|
||||
|
||||
if(gpioIsSystemPin(gpioConfig[i].pin)) {
|
||||
LOG_WARNING(TAG_GPIO, F("Invalid pin %d"), gpioConfig[i].pin);
|
||||
// continue;
|
||||
}
|
||||
|
||||
switch(gpioConfig[i].type) {
|
||||
case HASP_GPIO_SWITCH:
|
||||
gpioAddSwitch(gpioConfig[i].pin, input_mode, HIGH, i);
|
||||
@ -320,7 +325,7 @@ void gpioLoop(void)
|
||||
|
||||
/* ********************************* State Setters *************************************** */
|
||||
|
||||
void gpio_get_value(hasp_gpio_config_t gpio)
|
||||
bool gpio_get_value(hasp_gpio_config_t gpio)
|
||||
{
|
||||
char payload[32];
|
||||
char topic[12];
|
||||
@ -328,17 +333,19 @@ void gpio_get_value(hasp_gpio_config_t gpio)
|
||||
snprintf_P(payload, sizeof(payload), PSTR("%d"), gpio.val);
|
||||
|
||||
dispatch_state_subtopic(topic, payload);
|
||||
return true;
|
||||
}
|
||||
|
||||
void gpio_get_value(uint8_t pin)
|
||||
bool gpio_get_value(uint8_t pin)
|
||||
{
|
||||
for(uint8_t i = 0; i < HASP_NUM_GPIO_CONFIG; i++) {
|
||||
if(gpioConfig[i].pin == pin && gpioConfigInUse(i)) return gpio_get_value(gpioConfig[i]);
|
||||
}
|
||||
LOG_WARNING(TAG_GPIO, F(D_BULLET "Pin %d is not configured"), pin);
|
||||
return false;
|
||||
}
|
||||
|
||||
void gpio_set_value(hasp_gpio_config_t& gpio, int16_t val)
|
||||
bool gpio_set_value(hasp_gpio_config_t& gpio, int16_t val)
|
||||
{
|
||||
bool inverted = false;
|
||||
|
||||
@ -347,7 +354,7 @@ void gpio_set_value(hasp_gpio_config_t& gpio, int16_t val)
|
||||
inverted = true;
|
||||
case HASP_GPIO_RELAY:
|
||||
gpio.val = val > 0 ? HIGH : LOW;
|
||||
digitalWrite(gpio.pin, inverted ? gpio.val : !gpio.val);
|
||||
digitalWrite(gpio.pin, inverted ? !gpio.val : gpio.val);
|
||||
break;
|
||||
|
||||
case HASP_GPIO_LED_INVERTED:
|
||||
@ -396,18 +403,20 @@ void gpio_set_value(hasp_gpio_config_t& gpio, int16_t val)
|
||||
}
|
||||
|
||||
default:
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
gpio_get_value(gpio);
|
||||
LOG_VERBOSE(TAG_GPIO, F("Group %d - Pin %d = %d"), gpio.group, gpio.pin, gpio.val);
|
||||
return true;
|
||||
}
|
||||
|
||||
void gpio_set_value(uint8_t pin, int16_t val)
|
||||
bool gpio_set_value(uint8_t pin, int16_t val)
|
||||
{
|
||||
for(uint8_t i = 0; i < HASP_NUM_GPIO_CONFIG; i++) {
|
||||
if(gpioConfig[i].pin == pin && gpioConfigInUse(i)) return gpio_set_value(gpioConfig[i], val);
|
||||
}
|
||||
LOG_WARNING(TAG_GPIO, F(D_BULLET "Pin %d is not configured"), pin);
|
||||
return false;
|
||||
}
|
||||
|
||||
void gpio_set_normalized_value(hasp_gpio_config_t gpio, int16_t val, int16_t min, int16_t max)
|
||||
|
@ -17,6 +17,7 @@ struct hasp_gpio_config_t
|
||||
uint8_t type; // switch, button, ...
|
||||
uint8_t gpio_function; // INPUT, OUTPUT, PULLUP, etc
|
||||
uint16_t val;
|
||||
uint16_t max;
|
||||
};
|
||||
|
||||
void gpioSetup(void);
|
||||
@ -26,8 +27,8 @@ 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_gpio_state(uint8_t pin, uint16_t state);
|
||||
void gpio_get_value(uint8_t pin);
|
||||
void gpio_set_value(uint8_t pin, int16_t val);
|
||||
bool gpio_get_value(uint8_t pin);
|
||||
bool gpio_set_value(uint8_t pin, int16_t val);
|
||||
void gpio_set_moodlight(uint8_t r, uint8_t g, uint8_t b);
|
||||
|
||||
void gpio_discovery(JsonArray& relay, JsonArray& led);
|
||||
|
Loading…
x
Reference in New Issue
Block a user