NbusCommunicator.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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* sendAndReceive(Nbus_pdu *pdu, uint8_t *data, uint8_t data_len);
  32. void send(Nbus_pdu *pdu, uint8_t *data, uint8_t data_len);
  33. };
  34. #endif /* SRC_NBUSCOMMUNICATOR_H_ */