NbusCommunicator.h 882 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * NbusCommunicator.h
  3. *
  4. * Created on: Mar 7, 2025
  5. * Author: juraj
  6. */
  7. #ifndef SRC_NBUSCOMMUNICATOR_H_
  8. #define SRC_NBUSCOMMUNICATOR_H_
  9. #include "inttypes.h"
  10. #include "dataframe.h"
  11. #include "nbus_structs.h"
  12. #include "stm32l4xx_hal.h"
  13. #define NBUS_MAX_FRAME_SIZE 64
  14. class NbusCommunicator {
  15. private:
  16. uint8_t _data_packet_tx[NBUS_MAX_FRAME_SIZE];
  17. uint8_t _data_packet_comm[NBUS_MAX_FRAME_SIZE];
  18. uint8_t _data_packet_rx[NBUS_MAX_FRAME_SIZE];
  19. DataFrame *_packet_tx;
  20. DataFrame *_packet_rx;
  21. UART_HandleTypeDef *_uart_nbus;
  22. UART_HandleTypeDef *_uart_master;
  23. void _receive();
  24. public:
  25. NbusCommunicator(UART_HandleTypeDef*, UART_HandleTypeDef*);
  26. void transmit(uint8_t *, uint8_t);
  27. void sendToMaster(DataFrame *master_frame);
  28. virtual ~NbusCommunicator();
  29. DataFrame* send(Nbus_pdu *pdu, uint8_t *data, uint8_t data_len);
  30. };
  31. #endif /* SRC_NBUSCOMMUNICATOR_H_ */