From ec1913346c57f80b4e4d65a905264c7666c8f287 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Sat, 2 May 2020 17:53:57 +0200 Subject: [PATCH] Fix ESP32 GPIO selection if Counters are disabled --- tasmota/xdrv_01_webserver.ino | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tasmota/xdrv_01_webserver.ino b/tasmota/xdrv_01_webserver.ino index d22b07b5c..4dddafaec 100644 --- a/tasmota/xdrv_01_webserver.ino +++ b/tasmota/xdrv_01_webserver.ino @@ -1469,12 +1469,28 @@ void HandleTemplateConfiguration(void) #ifdef ESP32 WSContentSend_P(PSTR("hs=[")); bool first_done = false; +/* for (uint32_t i = 0; i < ARRAY_SIZE(kGpioNiceList); i++) { uint32_t midx = pgm_read_word(kGpioNiceList + i) & 0x001F; if (first_done) { WSContentSend_P(PSTR(",")); } WSContentSend_P(PSTR("%d"), midx); first_done = true; } +*/ + uint32_t j = 0; + for (uint32_t i = 0; i < GPIO_SENSOR_END; i++) { + uint32_t midx = pgm_read_word(kGpioNiceList + j); + if ((midx >> 5) != i) { + midx = 0; + } else { + midx &= 0x001F; + j++; + } + if (first_done) { WSContentSend_P(PSTR(",")); } + WSContentSend_P(PSTR("%d"), midx); + first_done = true; + } + WSContentSend_P(PSTR("];")); #endif // ESP32 @@ -1635,12 +1651,28 @@ void HandleModuleConfiguration(void) #ifdef ESP32 WSContentSend_P(PSTR("hs=[")); bool first_done = false; +/* for (uint32_t i = 0; i < ARRAY_SIZE(kGpioNiceList); i++) { midx = pgm_read_word(kGpioNiceList + i) & 0x001F; if (first_done) { WSContentSend_P(PSTR(",")); } WSContentSend_P(PSTR("%d"), midx); first_done = true; } +*/ + uint32_t j = 0; + for (uint32_t i = 0; i < GPIO_SENSOR_END; i++) { + midx = pgm_read_word(kGpioNiceList + j); + if ((midx >> 5) != i) { + midx = 0; + } else { + midx &= 0x001F; + j++; + } + if (first_done) { WSContentSend_P(PSTR(",")); } + WSContentSend_P(PSTR("%d"), midx); + first_done = true; + } + WSContentSend_P(PSTR("];")); #endif // ESP32