nbus_app_driver.h 686 B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef _NBUS_APP_DRIVER_H_
  2. #define _NBUS_APP_DRIVER_H_
  3. #include <cinttypes>
  4. #include <Stream.h>
  5. #include <esp32-hal.h>
  6. #define NBUS_APP_DRIVER_PAYLOAD_MIN 4
  7. #define NBUS_APP_DRIVER_PAYLOAD_MAX 127
  8. class NbusAppDriver
  9. {
  10. public:
  11. NbusAppDriver(Stream *stream_obj, uint8_t *data, int16_t size, int32_t timeout);
  12. void setData(uint8_t *data, int16_t size);
  13. int16_t receiveFromMaster();
  14. private:
  15. bool _checkTimeout();
  16. void _resetRxState();
  17. Stream *_stream_obj;
  18. uint8_t *_data{nullptr};
  19. int16_t _size{0};
  20. int32_t _timeout{0};
  21. int64_t _time0{INT64_MAX};
  22. int16_t _rx_index{0};
  23. int16_t _rx_size{0};
  24. };
  25. #endif // _NBUS_APP_DRIVER_H_