39 #include "proto/hdlc/high_level/hdlc.h" 42 #include <HardwareSerial.h> 70 Hdlc(
void *buffer,
int bufferSize)
72 , m_bufferSize(bufferSize)
76 virtual ~
Hdlc() =
default;
109 int write(
const char *buf,
int size);
127 int run_rx(
const void *data,
int len);
135 int run_tx(
void *data,
int max_len);
185 m_onReceive = on_receive;
206 IPacket pkt((
char *)pdata, size);
218 virtual void onSend(
const uint8_t *pdata,
int size)
220 IPacket pkt((
char *)pdata, size);
232 void *m_buffer =
nullptr;
234 int m_bufferSize = 0;
236 hdlc_crc_t m_crc = HDLC_CRC_DEFAULT;
239 void (*m_onReceive)(
IPacket &pkt) =
nullptr;
242 void (*m_onSend)(
IPacket &pkt) =
nullptr;
245 static int onReceiveInternal(
void *handle,
void *pdata,
int size);
248 static int onSendInternal(
void *handle,
const void *pdata,
int size);
int run_rx(const void *data, int len)
Processes incoming rx data, specified by a user.
Definition: TinyProtocolHdlc.cpp:92
void setSendCallback(void(*on_send)(IPacket &pkt)=nullptr)
Sets send callback for outgoing messages.
Definition: TinyProtocolHdlc.h:192
This is Tiny protocol implementation for microcontrollers.
void enableCrc(hdlc_crc_t crc)
Enables CRC by specified bit-size.
Definition: TinyProtocolHdlc.cpp:107
Describes packet entity and provides API methods to manipulate the packet.
Definition: TinyPacket.h:56
void disableCrc()
Disable CRC field in the protocol.
Definition: TinyProtocolHdlc.cpp:102
void begin()
Initializes protocol internal variables.
Definition: TinyProtocolHdlc.cpp:70
bool enableCheckSum()
Enables CRC 8-bit field in the protocol.
Definition: TinyProtocolHdlc.cpp:112
int(* read_block_cb_t)(void *pdata, void *buffer, int size)
The function reads data from communication channel.
Definition: tiny_types.h:185
virtual void onReceive(uint8_t *pdata, int size)
Method called by hdlc protocol upon receiving new frame.
Definition: TinyProtocolHdlc.h:204
int write(const char *buf, int size)
Sends data block over communication channel.
Definition: TinyProtocolHdlc.cpp:82
Hdlc(void *buffer, int bufferSize)
Initializes Hdlc object.
Definition: TinyProtocolHdlc.h:70
bool enableCrc32()
Enables CRC 32-bit field in the protocol.
Definition: TinyProtocolHdlc.cpp:124
Structure describes configuration of lowest HDLC level Initialize this structure by 0 before passing ...
Definition: hdlc.h:56
virtual void onSend(const uint8_t *pdata, int size)
Method called by hdlc protocol upon sending next frame.
Definition: TinyProtocolHdlc.h:218
void end()
Resets protocol state.
Definition: TinyProtocolHdlc.cpp:75
bool enableCrc16()
Enables CRC 16-bit field in the protocol.
Definition: TinyProtocolHdlc.cpp:118
int(* write_block_cb_t)(void *pdata, const void *buffer, int size)
The function writes data to communication channel port.
Definition: tiny_types.h:174
int run_tx(void *data, int max_len)
Generates data for tx channel.
Definition: TinyProtocolHdlc.cpp:97
Definition: TinySerial.cpp:22
Hdlc class incapsulates hdlc Protocol functionality.
Definition: TinyProtocolHdlc.h:62
void setReceiveCallback(void(*on_receive)(IPacket &pkt)=nullptr)
Sets receive callback for incoming messages.
Definition: TinyProtocolHdlc.h:183