11#if defined(ARDUINO_ARCH_AVR) || defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32) || \
12 defined(ARDUINO_ARCH_MEGAAVR) || defined(ARDUINO_ARCH_STM32) || defined(ARDUINO_ARCH_RENESAS)
17#ifndef _LIN_SLAVE_SW_SERIAL_H_
18#define _LIN_SLAVE_SW_SERIAL_H_
27#include <SoftwareSerial.h>
44 SoftwareSerial SWSerial;
49 uint16_t minFramePause;
63 inline uint8_t
_serialPeek(
void) {
return this->SWSerial.peek(); }
66 inline uint8_t
_serialRead(
void) {
return this->SWSerial.read(); }
72 #if defined(ARDUINO_ARCH_RENESAS)
73 this->SWSerial.write(buf, num);
74 this->SWSerial.flush();
78 this->SWSerial.stopListening();
79 this->SWSerial.write(buf, num);
80 this->SWSerial.flush();
81 this->SWSerial.listen();
94 void begin(uint16_t Baudrate = 19200);
100 inline bool available(
void) {
return this->SWSerial.available(); }
115 #error architecture not yet supported
Base class for LIN slave emulation (non-functional)
LIN slave node base class.
version_t
LIN protocol version.
@ LIN_V2
LIN protocol version 2.x.
LIN slave node class via generic SoftwareSerial.
uint8_t _serialPeek(void)
peek next byte from Rx buffer
virtual void handler(void)
Handle LIN protocol and call user-defined frame handlers.
void begin(uint16_t Baudrate=19200)
Open serial interface.
void _resetBreakFlag(void)
Clear break detection flag.
void end(void)
Close serial interface.
uint8_t _serialRead(void)
read next byte from Rx buffer
bool available(void)
check if a byte is available in Rx buffer
void _serialWrite(uint8_t buf[], uint8_t num)
write bytes to Tx buffer (blocking)
bool _getBreakFlag(void)
Get break detection flag.