mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-28 13:46:36 +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;
|
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) {
|
switch(gpioConfig[i].type) {
|
||||||
case HASP_GPIO_SWITCH:
|
case HASP_GPIO_SWITCH:
|
||||||
gpioAddSwitch(gpioConfig[i].pin, input_mode, HIGH, i);
|
gpioAddSwitch(gpioConfig[i].pin, input_mode, HIGH, i);
|
||||||
@ -320,7 +325,7 @@ void gpioLoop(void)
|
|||||||
|
|
||||||
/* ********************************* State Setters *************************************** */
|
/* ********************************* State Setters *************************************** */
|
||||||
|
|
||||||
void gpio_get_value(hasp_gpio_config_t gpio)
|
bool gpio_get_value(hasp_gpio_config_t gpio)
|
||||||
{
|
{
|
||||||
char payload[32];
|
char payload[32];
|
||||||
char topic[12];
|
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);
|
snprintf_P(payload, sizeof(payload), PSTR("%d"), gpio.val);
|
||||||
|
|
||||||
dispatch_state_subtopic(topic, payload);
|
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++) {
|
for(uint8_t i = 0; i < HASP_NUM_GPIO_CONFIG; i++) {
|
||||||
if(gpioConfig[i].pin == pin && gpioConfigInUse(i)) return gpio_get_value(gpioConfig[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);
|
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;
|
bool inverted = false;
|
||||||
|
|
||||||
@ -347,7 +354,7 @@ void gpio_set_value(hasp_gpio_config_t& gpio, int16_t val)
|
|||||||
inverted = true;
|
inverted = true;
|
||||||
case HASP_GPIO_RELAY:
|
case HASP_GPIO_RELAY:
|
||||||
gpio.val = val > 0 ? HIGH : LOW;
|
gpio.val = val > 0 ? HIGH : LOW;
|
||||||
digitalWrite(gpio.pin, inverted ? gpio.val : !gpio.val);
|
digitalWrite(gpio.pin, inverted ? !gpio.val : gpio.val);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HASP_GPIO_LED_INVERTED:
|
case HASP_GPIO_LED_INVERTED:
|
||||||
@ -396,18 +403,20 @@ void gpio_set_value(hasp_gpio_config_t& gpio, int16_t val)
|
|||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
gpio_get_value(gpio);
|
gpio_get_value(gpio);
|
||||||
LOG_VERBOSE(TAG_GPIO, F("Group %d - Pin %d = %d"), gpio.group, gpio.pin, gpio.val);
|
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++) {
|
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);
|
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);
|
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)
|
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 type; // switch, button, ...
|
||||||
uint8_t gpio_function; // INPUT, OUTPUT, PULLUP, etc
|
uint8_t gpio_function; // INPUT, OUTPUT, PULLUP, etc
|
||||||
uint16_t val;
|
uint16_t val;
|
||||||
|
uint16_t max;
|
||||||
};
|
};
|
||||||
|
|
||||||
void gpioSetup(void);
|
void gpioSetup(void);
|
||||||
@ -26,8 +27,8 @@ void gpioEvery5Seconds(void);
|
|||||||
// void gpio_set_group_onoff(uint8_t groupid, bool ison);
|
// 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_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_set_gpio_state(uint8_t pin, uint16_t state);
|
||||||
void gpio_get_value(uint8_t pin);
|
bool gpio_get_value(uint8_t pin);
|
||||||
void gpio_set_value(uint8_t pin, int16_t val);
|
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_set_moodlight(uint8_t r, uint8_t g, uint8_t b);
|
||||||
|
|
||||||
void gpio_discovery(JsonArray& relay, JsonArray& led);
|
void gpio_discovery(JsonArray& relay, JsonArray& led);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user