#ifndef _NBUS_APP_DRIVER_H_ #define _NBUS_APP_DRIVER_H_ #include #include #include #define NBUS_APP_DRIVER_PAYLOAD_MIN 4 #define NBUS_APP_DRIVER_PAYLOAD_MAX 127 class NbusLoopEsp32 { public: NbusLoopEsp32(Stream &stream_obj, int32_t timeout); void setData(uint8_t *data, int16_t size); Stream& accessStream(); int16_t receiveData(); bool isReceiving(); private: bool _checkTimeout(); void _resetRxState(); Stream &_stream_obj; uint8_t *_data{nullptr}; int16_t _size{0}; int32_t _timeout{0}; int64_t _time0{INT64_MAX}; int16_t _rx_index{0}; int16_t _rx_size{0}; }; #endif // _NBUS_APP_DRIVER_H_