NbusCommunicator.h 987 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * @file NbusCommunicator.h
  3. * @brief Deklarácia komunikačnej vrstvy: 1) internej 2) externej
  4. * @date Mar 7, 2025
  5. * @author Juraj Dudak
  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. /* DEFINES BEGIN */
  14. #define NBUS_MAX_FRAME_SIZE 64
  15. /* DEFINES END */
  16. class NbusCommunicator {
  17. private:
  18. uint8_t _data_packet_tx[NBUS_MAX_FRAME_SIZE];
  19. uint8_t _data_packet_comm[NBUS_MAX_FRAME_SIZE];
  20. uint8_t _data_packet_rx[NBUS_MAX_FRAME_SIZE];
  21. DataFrame *_packet_tx;
  22. DataFrame *_packet_rx;
  23. UART_HandleTypeDef *_uart_nbus;
  24. UART_HandleTypeDef *_uart_master;
  25. void _receive();
  26. public:
  27. NbusCommunicator(UART_HandleTypeDef*, UART_HandleTypeDef*);
  28. void transmit(uint8_t *, uint8_t);
  29. void sendToMaster(DataFrame *master_frame);
  30. virtual ~NbusCommunicator();
  31. DataFrame* send(Nbus_pdu *pdu, uint8_t *data, uint8_t data_len);
  32. };
  33. #endif /* SRC_NBUSCOMMUNICATOR_H_ */