23#define MAX_NUM_JOINTS_PER_LEG 2
24#define MAX_RAW_BUFFER_SIZE 256
25#define MAX_DATA_SIZE 32
27#define UART_DATA_TYPE short int
28#define FIXED_POINT_FACTOR 100
29#define UART_BAUD 256000
32#define RX_TIMEOUT_US 1000
41#if defined(ARDUINO_TEENSY36) || defined(ARDUINO_TEENSY41)
42#define MY_SERIAL Serial8
43#elif defined(ARDUINO_ARDUINO_NANO33BLE) | defined(ARDUINO_NANO_RP2040_CONNECT)
44#define MY_SERIAL Serial1
46#error No Serial Object Found
71 void UART_msg(uint8_t msg_id, uint8_t len, uint8_t joint_id,
float *buffer);
96 void _pack(uint8_t msg_id, uint8_t len, uint8_t joint_id,
float *data, uint8_t *data_to_pack);
98 UART_msg_t _unpack(uint8_t* data, uint8_t len);
100 uint8_t _get_packed_length(uint8_t msg_id, uint8_t len, uint8_t joint_id,
float *data);
102 void _send_packet(uint8_t* p, uint8_t len);
104 int _recv_packet(uint8_t *p, uint8_t len =
MAX_RX_LEN);
106 void _send_char(uint8_t val);
108 uint8_t _recv_char(
void);
110 uint8_t _time_left(uint8_t should_latch = 0);
112 void _reset_partial_packet();
120 uint8_t _partial_packet_len = 0;
122 uint8_t _msg_buffer_len = 0;
#define RX_TIMEOUT_US
Definition UARTHandler.h:32
#define MAX_RX_LEN
Definition UARTHandler.h:31
Singleton Class to handle the UART Work.
Definition UARTHandler.h:54
void UART_msg(uint8_t msg_id, uint8_t len, uint8_t joint_id, float *buffer)
Packs and sends a UART message.
Definition UARTHandler.cpp:35
static UARTHandler * get_instance()
Get the instance object.
Definition UARTHandler.cpp:29
UART_msg_t poll(float timeout_us=RX_TIMEOUT_US)
Check for incoming data. If there is data read the message, timing out if it takes too long.
Definition UARTHandler.cpp:73
uint8_t check_for_data()
See if data is available in the UART buffer.
Definition UARTHandler.cpp:153
Definition UART_msg_t.h:9