Fix Pow R2 / S31 buffer sync

Fix Pow R2 / S31 buffer sync
This commit is contained in:
Theo Arends 2018-08-13 11:33:33 +02:00
parent df3a07fad8
commit e15aeabbcf

View File

@ -383,7 +383,9 @@ bool CseSerialInput()
if (cse_receive_flag) {
serial_in_buffer[serial_in_byte_counter++] = serial_in_byte;
if (24 == serial_in_byte_counter) {
AddLogSerial(LOG_LEVEL_DEBUG_MORE);
uint8_t checksum = 0;
for (byte i = 2; i < 23; i++) { checksum += serial_in_buffer[i]; }
if (checksum == serial_in_buffer[23]) {
@ -395,11 +397,8 @@ bool CseSerialInput()
do { // Sync buffer with data (issue #1907 and #3425)
memmove(serial_in_buffer, serial_in_buffer +1, 24);
serial_in_byte_counter--;
} while ((serial_in_byte_counter > 1) && (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 {
} while ((serial_in_byte_counter > 2) && (0x5A != serial_in_buffer[1]));
if (0x5A != serial_in_buffer[1]) {
cse_receive_flag = 0;
serial_in_byte_counter = 0;
}