30 #include "proto/hdlc/tiny_hdlc.h" 33 # include <HardwareSerial.h> 63 , m_bufferSize( bufferSize )
96 begin([](
void *p,
const void *b,
int s)->
int {
return Serial.write((
const uint8_t *)b, s); },
97 [](
void *p,
void *b,
int s)->
int {
return Serial.readBytes((uint8_t *)b, s); });
100 #ifdef HAVE_HWSERIAL1 108 begin([](
void *p,
const void *b,
int s)->
int {
return Serial1.write((
const uint8_t *)b, s); },
109 [](
void *p,
void *b,
int s)->
int {
return Serial1.readBytes((uint8_t *)b, s); });
113 #ifdef HAVE_HWSERIAL2 121 begin([](
void *p,
const void *b,
int s)->
int {
return Serial2.write((
const uint8_t *)b, s); },
122 [](
void *p,
void *b,
int s)->
int {
return Serial2.readBytes((uint8_t *)b, s); });
126 #ifdef HAVE_HWSERIAL3 134 begin([](
void *p,
const void *b,
int s)->
int {
return Serial3.write((
const uint8_t *)b, s); },
135 [](
void *p,
void *b,
int s)->
int {
return Serial3.readBytes((uint8_t *)b, s); });
140 #ifdef HAVE_SERIALUSB 146 inline void beginToSerialUSB()
148 begin([](
void *p,
const void *b,
int s)->
int {
return SerialUSB.write((
const char *)b, s); },
149 [](
void *p,
void *b,
int s)->
int {
return SerialUSB.readBytes((
char *)b, s); });
168 int write(
char* buf,
int size);
186 int run_rx(
const void *data,
int len);
194 int run_tx(
void *data,
int max_len);
259 IPacket pkt((
char *)pdata, size);
261 if ( m_onReceive ) m_onReceive( pkt );
270 virtual void onSend(
const uint8_t *pdata,
int size)
272 IPacket pkt((
char *)pdata, size);
274 if ( m_onSend ) m_onSend( pkt );
283 void *m_buffer =
nullptr;
285 int m_bufferSize = 0;
290 void (*m_onReceive)(
IPacket &pkt) =
nullptr;
293 void (*m_onSend)(
IPacket &pkt) =
nullptr;
296 static int onReceiveInternal(
void *handle,
void *pdata,
int size);
299 static int onSendInternal(
void *handle,
const void *pdata,
int size);
hdlc_crc_t
Definition: tiny_hdlc.h:54
Tiny protocol Arduino API.
int run_rx(const void *data, int len)
If default is specified HDLC will auto select CRC option.
Definition: tiny_hdlc.h:56
void beginToSerial2()
Definition: TinyProtocolHdlc.h:119
void beginToSerial()
Definition: TinyProtocolHdlc.h:94
Definition: TinyLightProtocol.h:39
Definition: TinyProtocolHdlc.h:53
virtual void onSend(const uint8_t *pdata, int size)
Definition: TinyProtocolHdlc.h:270
virtual void onReceive(uint8_t *pdata, int size)
Definition: TinyProtocolHdlc.h:257
int(* read_block_cb_t)(void *pdata, void *buffer, int size)
Definition: tiny_types.h:141
void enableCrc(hdlc_crc_t crc)
int write(char *buf, int size)
void beginToSerial3()
Definition: TinyProtocolHdlc.h:132
ProtoHdlc(void *buffer, int bufferSize)
Definition: TinyProtocolHdlc.h:61
Definition: TinyPacket.h:46
Definition: tiny_hdlc.h:68
void setReceiveCallback(void(*on_receive)(IPacket &pkt)=nullptr)
Definition: TinyProtocolHdlc.h:242
int(* write_block_cb_t)(void *pdata, const void *buffer, int size)
Definition: tiny_types.h:130
int run_tx(void *data, int max_len)
void beginToSerial1()
Definition: TinyProtocolHdlc.h:106
void setSendCallback(void(*on_send)(IPacket &pkt)=nullptr)
Definition: TinyProtocolHdlc.h:248