mirror of https://github.com/arendst/Tasmota.git
fix RF bridge raw receive
This commit is contained in:
parent
f5eb2919bd
commit
b88aabfd8d
|
@ -301,7 +301,7 @@ void SonoffBridgeReceived()
|
|||
boolean SonoffBridgeSerialInput()
|
||||
{
|
||||
// iTead Rf Universal Transceiver Module Serial Protocol Version 1.0 (20170420)
|
||||
int8_t receive_len = 0;
|
||||
static int8_t receive_len = 0;
|
||||
|
||||
if (sonoff_bridge_receive_flag) {
|
||||
if (sonoff_bridge_receive_raw_flag) {
|
||||
|
@ -309,12 +309,12 @@ boolean SonoffBridgeSerialInput()
|
|||
serial_in_buffer[serial_in_byte_counter++] = 0xAA;
|
||||
}
|
||||
serial_in_buffer[serial_in_byte_counter++] = serial_in_byte;
|
||||
if (serial_in_byte_counter > 2) {
|
||||
if ((0xA6 == serial_in_buffer[1]) || (0xAB == serial_in_buffer[1])) { // AA A6 06 023908010155 55 - 06 is receive_len
|
||||
receive_len = serial_in_buffer[2] + 3 - serial_in_byte_counter; // Get at least receive_len bytes
|
||||
if (serial_in_byte_counter == 3) {
|
||||
if ((0xA6 == serial_in_buffer[serial_in_byte_counter - 2]) || (0xAB == serial_in_buffer[serial_in_byte_counter - 2])) { // AA A6 06 023908010155 55 - 06 is receive_len
|
||||
receive_len = serial_in_buffer[serial_in_byte_counter - 1]; // Get at least receive_len bytes
|
||||
}
|
||||
}
|
||||
if ((0 == receive_len) && (0x55 == serial_in_byte)) { // 0x55 - End of text
|
||||
if (((0 == receive_len) && (0x55 == serial_in_byte)) || (serial_in_byte_counter == receive_len + 4)) { // 0x55 - End of text
|
||||
SonoffBridgeReceivedRaw();
|
||||
sonoff_bridge_receive_flag = 0;
|
||||
return 1;
|
||||
|
@ -345,6 +345,7 @@ boolean SonoffBridgeSerialInput()
|
|||
serial_in_byte_counter = 0;
|
||||
serial_in_byte = 0;
|
||||
sonoff_bridge_receive_flag = 1;
|
||||
receive_len = 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue