mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-03-30 14:55:46 +00:00
* companion_radio_usb: encoding in ArduinoSerialInterface changed to 16-bit frame lengths
* MAX_FRAME_SIZE now 172 (to fit max 160 byte text msg)
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
#include "ArduinoSerialInterface.h"
|
||||
|
||||
#define RECV_STATE_IDLE 0
|
||||
#define RECV_STATE_HDR_FOUND 1
|
||||
#define RECV_STATE_LEN_FOUND 2
|
||||
#define RECV_STATE_IDLE 0
|
||||
#define RECV_STATE_HDR_FOUND 1
|
||||
#define RECV_STATE_LEN1_FOUND 2
|
||||
#define RECV_STATE_LEN2_FOUND 3
|
||||
|
||||
void ArduinoSerialInterface::enable() {
|
||||
_isEnabled = true;
|
||||
@@ -26,10 +27,12 @@ size_t ArduinoSerialInterface::writeFrame(const uint8_t src[], size_t len) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t hdr[2];
|
||||
uint8_t hdr[3];
|
||||
hdr[0] = '>';
|
||||
hdr[1] = len;
|
||||
_serial->write(hdr, 2);
|
||||
hdr[1] = (len & 0xFF); // LSB
|
||||
hdr[2] = (len >> 8); // MSB
|
||||
|
||||
_serial->write(hdr, 3);
|
||||
return _serial->write(src, len);
|
||||
}
|
||||
|
||||
@@ -45,9 +48,13 @@ size_t ArduinoSerialInterface::checkRecvFrame(uint8_t dest[]) {
|
||||
}
|
||||
break;
|
||||
case RECV_STATE_HDR_FOUND:
|
||||
_frame_len = (uint8_t)c;
|
||||
_frame_len = (uint8_t)c; // LSB
|
||||
_state = RECV_STATE_LEN1_FOUND;
|
||||
break;
|
||||
case RECV_STATE_LEN1_FOUND:
|
||||
_frame_len |= ((uint16_t)c) << 8; // MSB
|
||||
rx_len = 0;
|
||||
_state = _frame_len > 0 ? RECV_STATE_LEN_FOUND : RECV_STATE_IDLE;
|
||||
_state = _frame_len > 0 ? RECV_STATE_LEN2_FOUND : RECV_STATE_IDLE;
|
||||
break;
|
||||
default:
|
||||
if (rx_len < MAX_FRAME_SIZE) {
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
class ArduinoSerialInterface : public BaseSerialInterface {
|
||||
bool _isEnabled;
|
||||
uint8_t _state;
|
||||
uint8_t _frame_len;
|
||||
uint8_t rx_len;
|
||||
uint16_t _frame_len;
|
||||
uint16_t rx_len;
|
||||
HardwareSerial* _serial;
|
||||
uint8_t rx_buf[MAX_FRAME_SIZE];
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#define MAX_FRAME_SIZE 160
|
||||
#define MAX_FRAME_SIZE 172
|
||||
|
||||
class BaseSerialInterface {
|
||||
protected:
|
||||
|
||||
Reference in New Issue
Block a user