Changed TCP bridge increased baudrate selection (#21528)

- Bump v14.0.0.4
This commit is contained in:
Theo Arends 2024-05-30 10:50:12 +02:00
parent b61ea17ce1
commit 2771827c15
6 changed files with 27 additions and 17 deletions

View File

@ -3,19 +3,25 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - Development
## [14.0.0.3]
## [14.0.0.4]
### Added
### Breaking Changed
### Changed
- TCP bridge increased baudrate selection (#21528)
### Fixed
### Removed
## [14.0.0.3] 20240530
### Changed
- ESP32 Core3 platform update from 2024.05.12 to 2024.05.13 (#21524)
### Fixed
- ESP32 slow response when using UDP as in emulation (#21470)
### Removed
## [14.0.0.2] 20240529
### Added
- Disabled watchdog for ESP32 and variants (#21509)

View File

@ -119,7 +119,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
[Complete list](BUILDS.md) of available feature and sensors.
## Changelog v14.0.0.3
## Changelog v14.0.0.4
### Added
- Optional command ``WebRun`` (as WebQuery extension) [#21364](https://github.com/arendst/Tasmota/issues/21364)
- Support for Knx dimmer and color [#21434](https://github.com/arendst/Tasmota/issues/21434)
@ -132,6 +132,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
- ESP32 Core3 platform update from 2024.05.11 to 2024.05.13 [#21524](https://github.com/arendst/Tasmota/issues/21524)
- GPIOViewer from v1.5.2 to v1.5.3
- On universal display remove default backlight power if a PWM channel is used for backlight
- TCP bridge increased baudrate selection [#21528](https://github.com/arendst/Tasmota/issues/21528)
- Support W5500 SPI ethernet using four SPI GPIOs only without IRQ and RESET
- ESP32 compiler option from `target-align` to `no-target-align` [#21407](https://github.com/arendst/Tasmota/issues/21407)
- ESP32 I2S audio improvements [#21433](https://github.com/arendst/Tasmota/issues/21433)

View File

@ -697,8 +697,9 @@ typedef struct {
uint8_t mqtt_wifi_timeout; // 530
uint8_t ina219_mode; // 531
uint16_t ex_pulse_timer[8]; // 532 ex_pulse_timer free since 11.0.0.3
uint16_t ex_pulse_timer[7]; // 532 ex_pulse_timer free since 11.0.0.3
uint16_t tcp_baudrate; // 540
uint16_t button_debounce; // 542
uint32_t ipv4_address[5]; // 544
uint32_t ipv4_rgx_address; // 558
@ -742,7 +743,6 @@ typedef struct {
uint16_t shutter_motorstop; // 738
uint8_t battery_level_percent; // 73A
uint8_t hdmi_addr[2]; // 73B HDMI CEC physical address - warning this is a non-aligned uint16
uint8_t novasds_startingoffset; // 73D
uint8_t web_color[18][3]; // 73E
uint16_t display_width; // 774
@ -832,7 +832,9 @@ typedef struct {
uint8_t windmeter_tele_pchange; // F3E
uint8_t ledpwm_on; // F3F
uint8_t ledpwm_off; // F40
uint8_t tcp_baudrate; // F41
uint8_t ex_tcp_baudrate; // F41 ex_tcp_baudrate, free since v14.0.0.4
uint8_t fallback_module; // F42
uint8_t shutter_mode; // F43
uint16_t energy_power_delta[3]; // F44
@ -843,9 +845,7 @@ typedef struct {
uint8_t shd_warmup_time; // F5E
uint8_t tcp_config; // F5F
uint8_t light_step_pixels; // F60
uint8_t hdmi_cec_device_type; // F61 - v13.1.0.1 (was ex_modbus_sbaudrate v12.2.0.5)
uint8_t modbus_sconfig; // F62
uint8_t windmeter_measure_intvl; // F63

View File

@ -22,6 +22,6 @@
#define TASMOTA_SHA_SHORT // Filled by Github sed
const uint32_t TASMOTA_VERSION = 0x0E000003; // 14.0.0.3
const uint32_t TASMOTA_VERSION = 0x0E000004; // 14.0.0.4
#endif // _TASMOTA_VERSION_H_

View File

@ -1813,6 +1813,9 @@ void SettingsDelta(void) {
if (Settings->version < 0x0D040004) { // 13.4.0.4
Settings->power_lock = 0;
}
if (Settings->version < 0x0E000004) { // 14.0.0.4
Settings->tcp_baudrate = Settings->ex_tcp_baudrate / 4;
}
Settings->version = TASMOTA_VERSION;
SettingsSave(1);

View File

@ -147,10 +147,10 @@ void TCPInit(void) {
}
if (!Settings->tcp_baudrate) {
Settings->tcp_baudrate = 115200 / 1200;
Settings->tcp_baudrate = 115200 / 300;
}
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));
tcp_serial = TCPSerial->begin(Settings->tcp_baudrate * 300, 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));
@ -212,16 +212,16 @@ void CmndTCPStart(void) {
}
void CmndTCPBaudrate(void) {
if ((XdrvMailbox.payload >= 1200) && (XdrvMailbox.payload <= 115200)) {
XdrvMailbox.payload /= 1200; // Make it a valid baudrate
if (XdrvMailbox.payload >= 300) {
XdrvMailbox.payload /= 300; // Make it a valid baudrate
if (Settings->tcp_baudrate != XdrvMailbox.payload) {
Settings->tcp_baudrate = XdrvMailbox.payload;
if (!TCPSerial->begin(Settings->tcp_baudrate * 1200, ConvertSerialConfig(0x7F & Settings->tcp_config))) {
if (!TCPSerial->begin(Settings->tcp_baudrate * 300, ConvertSerialConfig(0x7F & Settings->tcp_config))) {
AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_TCP "failed reinit serial"));
} // Reinitialize serial port with new baud rate
}
}
ResponseCmndNumber(Settings->tcp_baudrate * 1200);
ResponseCmndNumber(Settings->tcp_baudrate * 300);
}
void CmndTCPConfig(void) {
@ -229,7 +229,7 @@ void CmndTCPConfig(void) {
uint8_t serial_config = ParseSerialConfig(XdrvMailbox.data);
if ((serial_config >= 0) && (Settings->tcp_config != (0x80 | serial_config))) {
Settings->tcp_config = 0x80 | serial_config; // default 0x00 should be 8N1
if (!TCPSerial->begin(Settings->tcp_baudrate * 1200, ConvertSerialConfig(0x7F & Settings->tcp_config))) {
if (!TCPSerial->begin(Settings->tcp_baudrate * 300, ConvertSerialConfig(0x7F & Settings->tcp_config))) {
AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_TCP "failed reinit serial"));
} // Reinitialize serial port with new config
}