From c61f2cc5ec481ed1bbb44d96fad952509f5ac3ba Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Fri, 16 Aug 2019 16:54:36 +0200 Subject: [PATCH] Refactor WebSensor Refactor WebSensor --- sonoff/i18n.h | 1 + sonoff/support_command.ino | 14 ++------------ sonoff/xdrv_01_webserver.ino | 14 ++++++++++++-- sonoff/xsns_interface.ino | 2 ++ 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/sonoff/i18n.h b/sonoff/i18n.h index f61d3d40a..cb68dcd4c 100644 --- a/sonoff/i18n.h +++ b/sonoff/i18n.h @@ -324,6 +324,7 @@ #define D_CMND_WEBREFRESH "WebRefresh" #define D_CMND_WEBSEND "WebSend" #define D_CMND_WEBCOLOR "WebColor" +#define D_CMND_WEBSENSOR "WebSensor" #define D_CMND_EMULATION "Emulation" // Commands xdrv_03_energy.ino diff --git a/sonoff/support_command.ino b/sonoff/support_command.ino index b69a144cc..de7d9a60d 100644 --- a/sonoff/support_command.ino +++ b/sonoff/support_command.ino @@ -30,7 +30,7 @@ const char kTasmotaCommands[] PROGMEM = "|" // No prefix #ifdef USE_I2C D_CMND_I2CSCAN "|" #endif - D_CMND_SENSOR "|" D_CMND_DRIVER "|WebSensor"; + D_CMND_SENSOR "|" D_CMND_DRIVER; void (* const TasmotaCommand[])(void) PROGMEM = { &CmndBacklog, &CmndDelay, &CmndPower, &CmndStatus, &CmndState, &CmndSleep, &CmndUpgrade, &CmndUpgrade, &CmndOtaUrl, @@ -45,7 +45,7 @@ void (* const TasmotaCommand[])(void) PROGMEM = { #ifdef USE_I2C &CmndI2cScan, #endif - &CmndSensor, &CmndDriver, &CmndWebSensor }; + &CmndSensor, &CmndDriver }; /********************************************************************************************/ @@ -662,16 +662,6 @@ void CmndSetoption(void) } } -void CmndWebSensor(void) -{ - if (XdrvMailbox.index < MAX_XSNS_DRIVERS) { - if (XdrvMailbox.payload >= 0) { - bitWrite(Settings.sensors[XdrvMailbox.index / 32], XdrvMailbox.index % 32, XdrvMailbox.payload &1); - } - ResponseCmndIdxChar(GetStateText(bitRead(Settings.sensors[XdrvMailbox.index / 32], XdrvMailbox.index % 32))); - } -} - void CmndTemperatureResolution(void) { if ((XdrvMailbox.payload >= 0) && (XdrvMailbox.payload <= 3)) { diff --git a/sonoff/xdrv_01_webserver.ino b/sonoff/xdrv_01_webserver.ino index f11480c58..0589c52f0 100644 --- a/sonoff/xdrv_01_webserver.ino +++ b/sonoff/xdrv_01_webserver.ino @@ -2460,13 +2460,13 @@ const char kWebCommands[] PROGMEM = "|" // No prefix #ifdef USE_EMULATION D_CMND_EMULATION "|" #endif - D_CMND_WEBSERVER "|" D_CMND_WEBPASSWORD "|" D_CMND_WEBLOG "|" D_CMND_WEBREFRESH "|" D_CMND_WEBSEND "|" D_CMND_WEBCOLOR ; + D_CMND_WEBSERVER "|" D_CMND_WEBPASSWORD "|" D_CMND_WEBLOG "|" D_CMND_WEBREFRESH "|" D_CMND_WEBSEND "|" D_CMND_WEBCOLOR "|" D_CMND_WEBSENSOR; void (* const WebCommand[])(void) PROGMEM = { #ifdef USE_EMULATION &CmndEmulation, #endif - &CmndWebServer, &CmndWebPassword, &CmndWeblog, &CmndWebRefresh, &CmndWebSend, &CmndWebColor }; + &CmndWebServer, &CmndWebPassword, &CmndWeblog, &CmndWebRefresh, &CmndWebSend, &CmndWebColor, &CmndWebSensor }; /*********************************************************************************************\ * Commands @@ -2563,6 +2563,16 @@ void CmndWebColor(void) ResponseAppend_P(PSTR("]}")); } +void CmndWebSensor(void) +{ + if (XdrvMailbox.index < MAX_XSNS_DRIVERS) { + if (XdrvMailbox.payload >= 0) { + bitWrite(Settings.sensors[XdrvMailbox.index / 32], XdrvMailbox.index % 32, XdrvMailbox.payload &1); + } + ResponseCmndIdxChar(GetStateText(bitRead(Settings.sensors[XdrvMailbox.index / 32], XdrvMailbox.index % 32))); + } +} + /*********************************************************************************************\ * Interface \*********************************************************************************************/ diff --git a/sonoff/xsns_interface.ino b/sonoff/xsns_interface.ino index 229fa63be..519dbf683 100644 --- a/sonoff/xsns_interface.ino +++ b/sonoff/xsns_interface.ino @@ -813,6 +813,8 @@ const uint8_t kXsnsList[] = { #endif }; +/*********************************************************************************************/ + bool XsnsEnabled(uint32_t sns_index) { if (sns_index < sizeof(kXsnsList)) {