mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-29 05:36:39 +00:00
Fix Pow R2 / S31 buffer sync
Fix Pow R2 / S31 buffer sync
This commit is contained in:
parent
df3a07fad8
commit
e15aeabbcf
@ -383,7 +383,9 @@ bool CseSerialInput()
|
|||||||
if (cse_receive_flag) {
|
if (cse_receive_flag) {
|
||||||
serial_in_buffer[serial_in_byte_counter++] = serial_in_byte;
|
serial_in_buffer[serial_in_byte_counter++] = serial_in_byte;
|
||||||
if (24 == serial_in_byte_counter) {
|
if (24 == serial_in_byte_counter) {
|
||||||
|
|
||||||
AddLogSerial(LOG_LEVEL_DEBUG_MORE);
|
AddLogSerial(LOG_LEVEL_DEBUG_MORE);
|
||||||
|
|
||||||
uint8_t checksum = 0;
|
uint8_t checksum = 0;
|
||||||
for (byte i = 2; i < 23; i++) { checksum += serial_in_buffer[i]; }
|
for (byte i = 2; i < 23; i++) { checksum += serial_in_buffer[i]; }
|
||||||
if (checksum == serial_in_buffer[23]) {
|
if (checksum == serial_in_buffer[23]) {
|
||||||
@ -395,11 +397,8 @@ bool CseSerialInput()
|
|||||||
do { // Sync buffer with data (issue #1907 and #3425)
|
do { // Sync buffer with data (issue #1907 and #3425)
|
||||||
memmove(serial_in_buffer, serial_in_buffer +1, 24);
|
memmove(serial_in_buffer, serial_in_buffer +1, 24);
|
||||||
serial_in_byte_counter--;
|
serial_in_byte_counter--;
|
||||||
} while ((serial_in_byte_counter > 1) && (0x5A != serial_in_buffer[1]));
|
} while ((serial_in_byte_counter > 2) && (0x5A != serial_in_buffer[1]));
|
||||||
if (0x5A == serial_in_buffer[1]) {
|
if (0x5A != serial_in_buffer[1]) {
|
||||||
AddLog_P(LOG_LEVEL_DEBUG, PSTR("CSE: Fixed out-of-sync"));
|
|
||||||
serial_in_byte_counter++;
|
|
||||||
} else {
|
|
||||||
cse_receive_flag = 0;
|
cse_receive_flag = 0;
|
||||||
serial_in_byte_counter = 0;
|
serial_in_byte_counter = 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user