Skip to content

Commit

Permalink
Changed TCP bridge increased baudrate selection (#21528)
Browse files Browse the repository at this point in the history
- Bump v14.0.0.4
  • Loading branch information
arendst committed May 30, 2024
1 parent b61ea17 commit 2771827
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 17 deletions.
12 changes: 9 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
- ESP32 Core3 platform update from 2024.05.12 to 2024.05.13 (#21524)
- TCP bridge increased baudrate selection (#21528)

### Fixed
- ESP32 slow response when using UDP as in emulation (#21470)

### 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)

## [14.0.0.2] 20240529
### Added
- Disabled watchdog for ESP32 and variants (#21509)
Expand Down
3 changes: 2 additions & 1 deletion RELEASENOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down
10 changes: 5 additions & 5 deletions tasmota/include/tasmota_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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

Expand Down
2 changes: 1 addition & 1 deletion tasmota/include/tasmota_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_
3 changes: 3 additions & 0 deletions tasmota/tasmota_support/settings.ino
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
14 changes: 7 additions & 7 deletions tasmota/tasmota_xdrv_driver/xdrv_41_tcp_bridge.ino
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down Expand Up @@ -212,24 +212,24 @@ 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) {
if (XdrvMailbox.data_len > 0) {
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
}
Expand Down

0 comments on commit 2771827

Please sign in to comment.