33 # include <HardwareSerial.h> 64 : m_buffer( (uint8_t *)buffer )
65 , m_bufferSize( bufferSize )
90 begin([](
void *p,
const void *b,
int s)->
int {
return Serial.write((
const uint8_t *)b, s); },
91 [](
void *p,
void *b,
int s)->
int {
return Serial.readBytes((uint8_t *)b, s); });
102 begin([](
void *p,
const void *b,
int s)->
int {
return Serial1.write((
const uint8_t *)b, s); },
103 [](
void *p,
void *b,
int s)->
int {
return Serial1.readBytes((uint8_t *)b, s); });
107 #ifdef HAVE_HWSERIAL2 115 begin([](
void *p,
const void *b,
int s)->
int {
return Serial2.write((
const uint8_t *)b, s); },
116 [](
void *p,
void *b,
int s)->
int {
return Serial2.readBytes((uint8_t *)b, s); });
120 #ifdef HAVE_HWSERIAL3 128 begin([](
void *p,
const void *b,
int s)->
int {
return Serial3.write((
const uint8_t *)b, s); },
129 [](
void *p,
void *b,
int s)->
int {
return Serial3.readBytes((uint8_t *)b, s); });
134 #ifdef HAVE_SERIALUSB 140 inline void beginToSerialUSB()
142 begin([](
void *p,
const void *b,
int s)->
int {
return SerialUSB.write((
const char *)b, s); },
143 [](
void *p,
void *b,
int s)->
int {
return SerialUSB.readBytes((
char *)b, s); });
162 int write(
char* buf,
int size);
182 int run_rx(uint16_t timeout = 0);
188 int run_tx(uint16_t timeout = 0);
267 IPacket pkt((
char *)pdata, size);
269 if ( m_onReceive ) m_onReceive( pkt );
278 virtual void onSend(uint8_t *pdata,
int size)
280 IPacket pkt((
char *)pdata, size);
282 if ( m_onSend ) m_onSend( pkt );
290 uint8_t *m_buffer =
nullptr;
295 int m_bufferSize = 0;
298 uint16_t m_sendTimeout = 0;
301 uint8_t m_window = 3;
304 void (*m_onReceive)(
IPacket &pkt) =
nullptr;
307 void (*m_onSend)(
IPacket &pkt) =
nullptr;
310 static void onReceiveInternal(
void *handle, uint16_t uid, uint8_t *pdata,
int size);
313 static void onSendInternal(
void *handle, uint16_t uid, uint8_t *pdata,
int size);
int run_tx(uint16_t timeout=0)
hdlc_crc_t
Definition: tiny_hdlc.h:51
Tiny protocol Arduino API.
If default is specified HDLC will auto select CRC option.
Definition: tiny_hdlc.h:53
virtual void onSend(uint8_t *pdata, int size)
Definition: TinyProtocolFd.h:278
Definition: TinyProtocolFd.h:320
Definition: TinyLightProtocol.h:39
void enableCrc(hdlc_crc_t crc)
struct tiny_fd_data_t * tiny_fd_handle_t
Definition: tiny_fd.h:50
void setReceiveCallback(void(*on_receive)(IPacket &pkt)=nullptr)
Definition: TinyProtocolFd.h:236
virtual void onReceive(uint8_t *pdata, int size)
Definition: TinyProtocolFd.h:265
int(* read_block_cb_t)(void *pdata, void *buffer, int size)
Definition: tiny_types.h:139
IProtoFd(void *buffer, int bufferSize)
Definition: TinyProtocolFd.h:62
void beginToSerial3()
Definition: TinyProtocolFd.h:126
void setWindowSize(uint8_t window)
Definition: TinyProtocolFd.h:250
Definition: TinyPacket.h:46
void beginToSerial2()
Definition: TinyProtocolFd.h:113
Definition: TinyProtocolFd.h:53
int run_rx(uint16_t timeout=0)
int(* write_block_cb_t)(void *pdata, const void *buffer, int size)
Definition: tiny_types.h:128
void beginToSerial()
Definition: TinyProtocolFd.h:88
Definition: TinyProtocolFd.h:333
Tiny Protocol Full Duplex API.
void beginToSerial1()
Definition: TinyProtocolFd.h:100
ProtoFdD(int size)
Definition: TinyProtocolFd.h:340
void setSendCallback(void(*on_send)(IPacket &pkt)=nullptr)
Definition: TinyProtocolFd.h:242
void setSendTimeout(uint16_t timeout)
Definition: TinyProtocolFd.h:256
void begin(write_block_cb_t writecb, read_block_cb_t readcb)
int write(char *buf, int size)