14#if defined(ARDUINO_ARCH_AVR) && defined (USE_NEOSERIAL) && !defined(ARDUINO_AVR_TRINKET3) && !defined(ARDUINO_AVR_TRINKET5)
20#ifndef _LIN_SLAVE_NEOHWSERIAL_AVR_H_
21#define _LIN_SLAVE_NEOHWSERIAL_AVR_H_
29#include <NeoHWSerial.h>
49 #if defined(HAVE_HWSERIAL3)
50 static bool flagBreak[4];
51 #elif defined(HAVE_HWSERIAL2)
52 static bool flagBreak[3];
53 #elif defined(HAVE_HWSERIAL1)
54 static bool flagBreak[2];
55 #elif defined(HAVE_HWSERIAL0)
56 static bool flagBreak[1];
58 #error no HardwareSerial available for this board
65 #if defined(HAVE_HWSERIAL0)
67 static bool _onSerialReceive0(uint8_t
byte, uint8_t status);
70 #if defined(HAVE_HWSERIAL1)
72 static bool _onSerialReceive1(uint8_t
byte, uint8_t status);
75 #if defined(HAVE_HWSERIAL2)
77 static bool _onSerialReceive2(uint8_t
byte, uint8_t status);
80 #if defined(HAVE_HWSERIAL3)
82 static bool _onSerialReceive3(uint8_t
byte, uint8_t status);
97 inline uint8_t
_serialPeek(
void) {
return this->pSerial->peek(); }
100 inline uint8_t
_serialRead(
void) {
return this->pSerial->read(); }
103 inline void _serialWrite(uint8_t buf[], uint8_t num) { this->pSerial->write(buf, num); }
114 void begin(uint16_t Baudrate = 19200);
120 inline bool available(
void) {
return this->pSerial->available(); }
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 AVR NeoHWSerial.
bool _getBreakFlag(void)
Get break detection flag.
void _resetBreakFlag(void)
Clear break detection flag.
void _serialWrite(uint8_t buf[], uint8_t num)
write bytes to Tx buffer
uint8_t _serialRead(void)
read next byte from Rx buffer
uint8_t _serialPeek(void)
peek next byte from Rx buffer
void begin(uint16_t Baudrate=19200)
Open serial interface.
void end(void)
Close serial interface.
bool available(void)
check if a byte is available in Rx buffer