mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-24 00:53:36 +05:00
Adding ext device support
This commit is contained in:
@@ -199,6 +199,7 @@ protected:
|
||||
this->emergency();
|
||||
this->cascadeControl();
|
||||
this->externalPump();
|
||||
this->externalDev();
|
||||
this->miscRunned = millis();
|
||||
|
||||
return true;
|
||||
@@ -688,4 +689,46 @@ protected:
|
||||
Log.sinfoln(FPSTR(L_EXTPUMP), F("Enabled: anti stuck"));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void externalDev() {
|
||||
static uint8_t configuredGpio = GPIO_IS_NOT_CONFIGURED;
|
||||
|
||||
if(!settings.externalDev.use) return;
|
||||
|
||||
// configure output
|
||||
// if settings are different than the configured GPIO, update
|
||||
if (settings.externalDev.gpio != configuredGpio) {
|
||||
if (configuredGpio != GPIO_IS_NOT_CONFIGURED) {
|
||||
digitalWrite(configuredGpio, LOW);
|
||||
}
|
||||
|
||||
if (GPIO_IS_VALID(settings.externalDev.gpio)) {
|
||||
configuredGpio = settings.externalDev.gpio;
|
||||
pinMode(configuredGpio, OUTPUT);
|
||||
digitalWrite(configuredGpio, LOW);
|
||||
|
||||
} else if (configuredGpio != GPIO_IS_NOT_CONFIGURED) {
|
||||
configuredGpio = GPIO_IS_NOT_CONFIGURED;
|
||||
}
|
||||
}
|
||||
|
||||
if (configuredGpio == GPIO_IS_NOT_CONFIGURED) {
|
||||
if (vars.externalDev.state) {
|
||||
vars.externalDev.state = false;
|
||||
|
||||
Log.sinfoln(FPSTR(L_EXTDEV), F("Disabled: use = off"));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// output configured update relay if required
|
||||
if(settings.externalDev.state != vars.externalDev.state ) {
|
||||
digitalWrite(configuredGpio, settings.externalDev.state? HIGH:LOW );
|
||||
vars.externalDev.state = settings.externalDev.state;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user