From 91dd120aa9f02b3fa96e33bb7aa7271f759a741a Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Wed, 24 Apr 2024 19:53:01 +0200 Subject: [PATCH] TCP Tx En GPIO type (#21269) --- CHANGELOG.md | 1 + .../TasmotaSerial-3.6.0/src/TasmotaSerial.h | 1 + .../berry_tasmota/src/be_serial_lib.c | 2 ++ tasmota/berry/include/be_gpio_defines.h | 24 +++++++++++++++++-- tasmota/include/tasmota_template.h | 3 +++ tasmota/language/af_AF.h | 1 + tasmota/language/bg_BG.h | 1 + tasmota/language/ca_AD.h | 1 + tasmota/language/cs_CZ.h | 1 + tasmota/language/de_DE.h | 1 + tasmota/language/el_GR.h | 1 + tasmota/language/en_GB.h | 1 + tasmota/language/es_ES.h | 1 + tasmota/language/fr_FR.h | 1 + tasmota/language/fy_NL.h | 1 + tasmota/language/he_HE.h | 1 + tasmota/language/hu_HU.h | 1 + tasmota/language/it_IT.h | 1 + tasmota/language/ko_KO.h | 1 + tasmota/language/nl_NL.h | 1 + tasmota/language/pl_PL.h | 1 + tasmota/language/pt_BR.h | 1 + tasmota/language/pt_PT.h | 1 + tasmota/language/ro_RO.h | 1 + tasmota/language/ru_RU.h | 1 + tasmota/language/sk_SK.h | 1 + tasmota/language/sv_SE.h | 1 + tasmota/language/tr_TR.h | 1 + tasmota/language/uk_UA.h | 1 + tasmota/language/vi_VN.h | 1 + tasmota/language/zh_CN.h | 1 + tasmota/language/zh_TW.h | 1 + .../xdrv_41_tcp_bridge.ino | 4 ++++ .../xdrv_52_3_berry_serial.ino | 16 +++++++++++++ tools/lv_gpio/gpio_convert.py | 12 ++++++---- tools/lv_gpio/lv_gpio_enum.h | 22 +++++++++++++++++ 36 files changed, 106 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b4080d68..93676fa0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file. ## [13.4.1.2] ### Added - esp32_partition_app3904k_fs3392k partition scheme for 8MB ESP32S3 +- TCP Tx En GPIO type ### Breaking Changed - ESP32-C3 OTA binary name from `tasmota32c3cdc.bin` to `tasmota32c3.bin` with USB HWCDC and fallback to serial (#21212) diff --git a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h index c17da9eb3..230dd36ff 100644 --- a/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h +++ b/lib/default/TasmotaSerial-3.6.0/src/TasmotaSerial.h @@ -40,6 +40,7 @@ class TasmotaSerial : public Stream { TasmotaSerial(int receive_pin, int transmit_pin, int hardware_fallback = 0, int nwmode = 0, int buffer_size = TM_SERIAL_BUFFER_SIZE, bool invert = false); virtual ~TasmotaSerial(); void setTransmitEnablePin(int tx_enable_pin); + void clearTransmitEnablePin(void) { m_tx_enable_pin = -1; } size_t setRxBufferSize(size_t size); size_t getRxBufferSize() { return serial_buffer_size; } diff --git a/lib/libesp32/berry_tasmota/src/be_serial_lib.c b/lib/libesp32/berry_tasmota/src/be_serial_lib.c index 01dfa3dcc..6592f270d 100644 --- a/lib/libesp32/berry_tasmota/src/be_serial_lib.c +++ b/lib/libesp32/berry_tasmota/src/be_serial_lib.c @@ -9,6 +9,7 @@ #include "esp_arduino_version.h" extern int b_serial_init(bvm *vm); +extern int b_config_tx_en(bvm *vm); extern int b_serial_deinit(bvm *vm); extern int b_serial_write(bvm *vm); @@ -83,6 +84,7 @@ class be_class_serial (scope: global, name: serial) { SERIAL_8O2, int(SERIAL_8O2) init, func(b_serial_init) + config_tx_en, func(b_config_tx_en) deinit, func(b_serial_deinit) close, func(b_serial_deinit) diff --git a/tasmota/berry/include/be_gpio_defines.h b/tasmota/berry/include/be_gpio_defines.h index 452a5414b..61bd20c71 100644 --- a/tasmota/berry/include/be_gpio_defines.h +++ b/tasmota/berry/include/be_gpio_defines.h @@ -1,5 +1,9 @@ /******************************************************************** * Generated code, don't edit + * + * The keys in the array belox must be in lexicographic order + * + * Generated by: `python3 gpio_convert.py` *******************************************************************/ const be_const_member_t lv_gpio_constants[] = { @@ -143,6 +147,15 @@ const be_const_member_t lv_gpio_constants[] = { { "LEDLNK", (int32_t) GPIO_LEDLNK }, { "LEDLNK_INV", (int32_t) GPIO_LEDLNK_INV }, { "LMT01", (int32_t) GPIO_LMT01 }, + { "LORA_BUSY", (int32_t) GPIO_LORA_BUSY }, + { "LORA_CS", (int32_t) GPIO_LORA_CS }, + { "LORA_DI0", (int32_t) GPIO_LORA_DI0 }, + { "LORA_DI1", (int32_t) GPIO_LORA_DI1 }, + { "LORA_DI2", (int32_t) GPIO_LORA_DI2 }, + { "LORA_DI3", (int32_t) GPIO_LORA_DI3 }, + { "LORA_DI4", (int32_t) GPIO_LORA_DI4 }, + { "LORA_DI5", (int32_t) GPIO_LORA_DI5 }, + { "LORA_RST", (int32_t) GPIO_LORA_RST }, { "LOW", LOW }, { "LOX_O2_RX", (int32_t) GPIO_LOX_O2_RX }, { "MAGIC_SWITCH", (int32_t) GPIO_MAGIC_SWITCH }, @@ -191,6 +204,8 @@ const be_const_member_t lv_gpio_constants[] = { { "OUTPUT_OPEN_DRAIN", OUTPUT_OPEN_DRAIN }, { "P9813_CLK", (int32_t) GPIO_P9813_CLK }, { "P9813_DAT", (int32_t) GPIO_P9813_DAT }, + { "PIPSOLAR_RX", (int32_t) GPIO_PIPSOLAR_RX }, + { "PIPSOLAR_TX", (int32_t) GPIO_PIPSOLAR_TX }, { "PMS5003_RX", (int32_t) GPIO_PMS5003_RX }, { "PMS5003_TX", (int32_t) GPIO_PMS5003_TX }, { "PN532_RXD", (int32_t) GPIO_PN532_RXD }, @@ -218,6 +233,9 @@ const be_const_member_t lv_gpio_constants[] = { { "RFSEND", (int32_t) GPIO_RFSEND }, { "RF_SENSOR", (int32_t) GPIO_RF_SENSOR }, { "RISING", RISING }, + { "RN2XX3_RST", (int32_t) GPIO_RN2XX3_RST }, + { "RN2XX3_RX", (int32_t) GPIO_RN2XX3_RX }, + { "RN2XX3_TX", (int32_t) GPIO_RN2XX3_TX }, { "ROT1A", (int32_t) GPIO_ROT1A }, { "ROT1A_NP", (int32_t) GPIO_ROT1A_NP }, { "ROT1B", (int32_t) GPIO_ROT1B }, @@ -290,6 +308,7 @@ const be_const_member_t lv_gpio_constants[] = { { "TASMOTACLIENT_TXD", (int32_t) GPIO_TASMOTACLIENT_TXD }, { "TCP_RX", (int32_t) GPIO_TCP_RX }, { "TCP_TX", (int32_t) GPIO_TCP_TX }, + { "TCP_TX_EN", (int32_t) GPIO_TCP_TX_EN }, { "TELEINFO_ENABLE", (int32_t) GPIO_TELEINFO_ENABLE }, { "TELEINFO_RX", (int32_t) GPIO_TELEINFO_RX }, { "TFMINIPLUS_RX", (int32_t) GPIO_TFMINIPLUS_RX }, @@ -303,6 +322,9 @@ const be_const_member_t lv_gpio_constants[] = { { "TM1638CLK", (int32_t) GPIO_TM1638CLK }, { "TM1638DIO", (int32_t) GPIO_TM1638DIO }, { "TM1638STB", (int32_t) GPIO_TM1638STB }, + { "TS_IRQ", (int32_t) GPIO_TS_IRQ }, + { "TS_RST", (int32_t) GPIO_TS_RST }, + { "TS_SPI_CS", (int32_t) GPIO_TS_SPI_CS }, { "TUYAMCUBR_RX", (int32_t) GPIO_TUYAMCUBR_RX }, { "TUYAMCUBR_TX", (int32_t) GPIO_TUYAMCUBR_TX }, { "TUYA_RX", (int32_t) GPIO_TUYA_RX }, @@ -334,8 +356,6 @@ const be_const_member_t lv_gpio_constants[] = { { "ZIGBEE_RST", (int32_t) GPIO_ZIGBEE_RST }, { "ZIGBEE_RX", (int32_t) GPIO_ZIGBEE_RX }, { "ZIGBEE_TX", (int32_t) GPIO_ZIGBEE_TX }, - { "PIPSOLAR_RX", (int32_t) GPIO_PIPSOLAR_RX }, - { "PIPSOLAR_TX", (int32_t) GPIO_PIPSOLAR_TX }, }; diff --git a/tasmota/include/tasmota_template.h b/tasmota/include/tasmota_template.h index e2ec4d398..6efc20425 100644 --- a/tasmota/include/tasmota_template.h +++ b/tasmota/include/tasmota_template.h @@ -219,6 +219,7 @@ enum UserSelectablePins { GPIO_LORA_CS, GPIO_LORA_RST, GPIO_LORA_BUSY, GPIO_LORA_DI0, GPIO_LORA_DI1, GPIO_LORA_DI2, GPIO_LORA_DI3, GPIO_LORA_DI4, GPIO_LORA_DI5, // LoRa SPI GPIO_TS_SPI_CS, GPIO_TS_RST, GPIO_TS_IRQ, // SPI for Universal Touch Screen GPIO_RN2XX3_TX, GPIO_RN2XX3_RX, GPIO_RN2XX3_RST, // RN2XX3 LoRaWan node Serial interface + GPIO_TCP_TX_EN, // TCP to serial bridge, EN pin GPIO_SENSOR_END }; // Error as warning to rethink GPIO usage with max 2045 @@ -485,6 +486,7 @@ const char kSensorNames[] PROGMEM = D_GPIO_LORA_CS "|" D_GPIO_LORA_RST "|" D_GPIO_LORA_BUSY "|" D_GPIO_LORA_DI "0|" D_GPIO_LORA_DI "1|" D_GPIO_LORA_DI "2|" D_GPIO_LORA_DI "3|" D_GPIO_LORA_DI "4|" D_GPIO_LORA_DI "5|" D_GPIO_TS_SPI_CS "|" D_GPIO_TS_RST "|" D_GPIO_TS_IRQ "|" D_GPIO_RN2XX3_TX "|" D_GPIO_RN2XX3_RX "|" D_GPIO_RN2XX3_RST "|" + D_SENSOR_TCP_TXD_EN "|" ; const char kSensorNamesFixed[] PROGMEM = @@ -983,6 +985,7 @@ const uint16_t kGpioNiceList[] PROGMEM = { #ifdef USE_TCP_BRIDGE AGPIO(GPIO_TCP_TX), // TCP Serial bridge AGPIO(GPIO_TCP_RX), // TCP Serial bridge + AGPIO(GPIO_TCP_TX_EN), // TCP Serial bridge EN #endif #ifdef USE_ZIGBEE AGPIO(GPIO_ZIGBEE_TX), // Zigbee Serial interface diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h index a6c787b1f..d4122d211 100644 --- a/tasmota/language/af_AF.h +++ b/tasmota/language/af_AF.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h index 8e38e49c6..9323b9d09 100644 --- a/tasmota/language/bg_BG.h +++ b/tasmota/language/bg_BG.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/ca_AD.h b/tasmota/language/ca_AD.h index 62ccb1154..14fe65a07 100644 --- a/tasmota/language/ca_AD.h +++ b/tasmota/language/ca_AD.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h index eb624b2dc..83774fd65 100644 --- a/tasmota/language/cs_CZ.h +++ b/tasmota/language/cs_CZ.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h index e2920063b..1fc8b156d 100644 --- a/tasmota/language/de_DE.h +++ b/tasmota/language/de_DE.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h index 7a9466d2d..2b25c9ea1 100644 --- a/tasmota/language/el_GR.h +++ b/tasmota/language/el_GR.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h index d7f1a0f48..1bec1eb93 100644 --- a/tasmota/language/en_GB.h +++ b/tasmota/language/en_GB.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h index fb6ad1b03..9ee96b57a 100644 --- a/tasmota/language/es_ES.h +++ b/tasmota/language/es_ES.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h index 83e5bc4b1..86b549ef6 100644 --- a/tasmota/language/fr_FR.h +++ b/tasmota/language/fr_FR.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 Tx" #define D_SENSOR_IEM3000_RX "iEM3000 Rx" diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h index f9725a863..e3bbbc78d 100644 --- a/tasmota/language/fy_NL.h +++ b/tasmota/language/fy_NL.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h index 000c4f6a1..481b8d9f7 100644 --- a/tasmota/language/he_HE.h +++ b/tasmota/language/he_HE.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h index 620861b09..39652b619 100644 --- a/tasmota/language/hu_HU.h +++ b/tasmota/language/hu_HU.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h index 68d8d26b3..b86674a22 100644 --- a/tasmota/language/it_IT.h +++ b/tasmota/language/it_IT.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH - MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH - MDIO" #define D_SENSOR_TCP_TXD "TCP - TX" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP - RX" #define D_SENSOR_IEM3000_TX "iEM3000 - TX" #define D_SENSOR_IEM3000_RX "iEM3000 - RX" diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h index f729ed63e..8f9aec18b 100644 --- a/tasmota/language/ko_KO.h +++ b/tasmota/language/ko_KO.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h index 9d4ef946f..530df849b 100644 --- a/tasmota/language/nl_NL.h +++ b/tasmota/language/nl_NL.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h index 548dbccde..adb686580 100644 --- a/tasmota/language/pl_PL.h +++ b/tasmota/language/pl_PL.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h index d080718f2..d4ebf6bf1 100644 --- a/tasmota/language/pt_BR.h +++ b/tasmota/language/pt_BR.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h index d56614bf2..d27ca6489 100644 --- a/tasmota/language/pt_PT.h +++ b/tasmota/language/pt_PT.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h index 089a3040d..5f2a6adfa 100644 --- a/tasmota/language/ro_RO.h +++ b/tasmota/language/ro_RO.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h index fec10009e..50f2a3b68 100644 --- a/tasmota/language/ru_RU.h +++ b/tasmota/language/ru_RU.h @@ -909,6 +909,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h index 76a0cca09..5edc13b7a 100644 --- a/tasmota/language/sk_SK.h +++ b/tasmota/language/sk_SK.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h index 405222efe..474311860 100644 --- a/tasmota/language/sv_SE.h +++ b/tasmota/language/sv_SE.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h index 79d266e1b..fb002ed79 100644 --- a/tasmota/language/tr_TR.h +++ b/tasmota/language/tr_TR.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h index 8ef560119..b6b15c530 100644 --- a/tasmota/language/uk_UA.h +++ b/tasmota/language/uk_UA.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h index cc9ad312c..ed5aa210f 100644 --- a/tasmota/language/vi_VN.h +++ b/tasmota/language/vi_VN.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h index 1da39c37d..e86c3b64e 100644 --- a/tasmota/language/zh_CN.h +++ b/tasmota/language/zh_CN.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h index 66322b5a9..85878d25e 100644 --- a/tasmota/language/zh_TW.h +++ b/tasmota/language/zh_TW.h @@ -908,6 +908,7 @@ #define D_SENSOR_ETH_PHY_MDC "ETH MDC" #define D_SENSOR_ETH_PHY_MDIO "ETH MDIO" #define D_SENSOR_TCP_TXD "TCP Tx" +#define D_SENSOR_TCP_TXD_EN "TCP Tx En" #define D_SENSOR_TCP_RXD "TCP Rx" #define D_SENSOR_IEM3000_TX "iEM3000 TX" #define D_SENSOR_IEM3000_RX "iEM3000 RX" diff --git a/tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino b/tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino index fdd4a2ad3..b77480f09 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino @@ -151,6 +151,10 @@ void TCPInit(void) { } TCPSerial = new TasmotaSerial(Pin(GPIO_TCP_RX), Pin(GPIO_TCP_TX), TasmotaGlobal.seriallog_level ? 1 : 2, 0, TCP_BRIDGE_BUF_SIZE); // set a receive buffer of 256 bytes tcp_serial = TCPSerial->begin(Settings->tcp_baudrate * 1200, ConvertSerialConfig(0x7F & Settings->tcp_config)); + if (PinUsed(GPIO_TCP_TX_EN)) { + TCPSerial->setTransmitEnablePin(Pin(GPIO_TCP_TX_EN)); + AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_TCP "TCP Bridge EN is used on Pin %d"), Pin(GPIO_TCP_TX_EN)); + } if (tcp_serial) { if (TCPSerial->hardwareSerial()) { ClaimSerial(); diff --git a/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_serial.ino b/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_serial.ino index 7729a6ef0..810daccf6 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_serial.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_52_3_berry_serial.ino @@ -70,6 +70,22 @@ extern "C" { be_raise(vm, kTypeError, nullptr); } + // Berry: `config_tx_en(tx_en_gpio:int) -> nil` + int32_t b_config_tx_en(struct bvm *vm); + int32_t b_config_tx_en(struct bvm *vm) { + be_getmember(vm, 1, ".p"); + TasmotaSerial * ser = (TasmotaSerial *) be_tocomptr(vm, -1); + if (ser) { + int32_t tx_en = be_toint(vm, 2); + if (tx_en >= 0) { + ser->setTransmitEnablePin(tx_en); + } else { + ser->clearTransmitEnablePin(); + } + } + be_return_nil(vm); + } + // Berry: `deinit(void)` int32_t b_serial_deinit(struct bvm *vm); int32_t b_serial_deinit(struct bvm *vm) { diff --git a/tools/lv_gpio/gpio_convert.py b/tools/lv_gpio/gpio_convert.py index 6232fd287..677d68ca7 100644 --- a/tools/lv_gpio/gpio_convert.py +++ b/tools/lv_gpio/gpio_convert.py @@ -22,9 +22,9 @@ with open(lv_module_file) as f: l_raw = l_raw.strip(" \t\n\r") # remove leading or trailing spaces if l_raw.startswith("//"): lv_module.append( [ None, l_raw ] ) # if key in None then add comment line - l_raw = re.sub('//.*$', '', l_raw) # remove trailing comments - l_raw = re.sub('\s+', '', l_raw) # remove all spaces - l_raw = re.sub(',.*$', '', l_raw) # remove comma and anything after it + l_raw = re.sub(r'//.*$', '', l_raw) # remove trailing comments + l_raw = re.sub(r'\s+', '', l_raw) # remove all spaces + l_raw = re.sub(r',.*$', '', l_raw) # remove comma and anything after it if (len(l_raw) == 0): continue k_v = l_raw.split("=") @@ -35,7 +35,7 @@ with open(lv_module_file) as f: k = k_v[0] if k.startswith("_"): continue # skip any label starting with '_' - k = re.sub('^LV_', '', k) # remove remove any LV_ prefix + k = re.sub(r'^LV_', '', k) # remove remove any LV_ prefix v = None if len(k_v) == 2: # value is included v = k_v[1] @@ -53,6 +53,10 @@ with open(lv_module_file) as f: sys.stdout = open(out_prefix + be_gpio_defines, 'w') print("/********************************************************************") print(" * Generated code, don't edit") +print(" * ") +print(" * The keys in the array belox must be in lexicographic order") +print(" * ") +print(" * Generated by: `python3 gpio_convert.py`") print(" *******************************************************************/") print(""" diff --git a/tools/lv_gpio/lv_gpio_enum.h b/tools/lv_gpio/lv_gpio_enum.h index 23649947a..ba2c64497 100644 --- a/tools/lv_gpio/lv_gpio_enum.h +++ b/tools/lv_gpio/lv_gpio_enum.h @@ -1,4 +1,6 @@ // Enum values for GPIOs +// This is manually updated to have an appropriate name in Berry +// Convert using `python3 gpio_convert.py` LOW HIGH @@ -199,6 +201,7 @@ KEY1_TC = GPIO_KEY1_TC BL0940_RX = GPIO_BL0940_RX TCP_TX = GPIO_TCP_TX TCP_RX = GPIO_TCP_RX +TCP_TX_EN = GPIO_TCP_TX_EN ETH_PHY_POWER = GPIO_ETH_PHY_POWER ETH_PHY_MDC = GPIO_ETH_PHY_MDC ETH_PHY_MDIO = GPIO_ETH_PHY_MDIO @@ -344,4 +347,23 @@ MAGIC_SWITCH = GPIO_MAGIC_SWITCH PIPSOLAR_TX = GPIO_PIPSOLAR_TX PIPSOLAR_RX = GPIO_PIPSOLAR_RX +LORA_CS = GPIO_LORA_CS +LORA_RST = GPIO_LORA_RST +LORA_BUSY = GPIO_LORA_BUSY +LORA_DI0 = GPIO_LORA_DI0 +LORA_DI1 = GPIO_LORA_DI1 +LORA_DI2 = GPIO_LORA_DI2 +LORA_DI3 = GPIO_LORA_DI3 +LORA_DI4 = GPIO_LORA_DI4 +LORA_DI5 = GPIO_LORA_DI5 + +TS_SPI_CS = GPIO_TS_SPI_CS +TS_RST = GPIO_TS_RST +TS_IRQ = GPIO_TS_IRQ + +RN2XX3_TX = GPIO_RN2XX3_TX +RN2XX3_RX = GPIO_RN2XX3_RX +RN2XX3_RST = GPIO_RN2XX3_RST + + SENSOR_END = GPIO_SENSOR_END