| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /**
- * @file NbusCommunicator.h
- * @brief Deklarácia komunikačnej vrstvy: 1) internej 2) externej
- * @date Mar 7, 2025
- * @author Juraj Dudak
- */
- #ifndef SRC_NBUSCOMMUNICATOR_H_
- #define SRC_NBUSCOMMUNICATOR_H_
- #include "inttypes.h"
- #include "dataframe.h"
- #include "nbus_structs.h"
- #include "stm32l4xx_hal.h"
- /* DEFINES BEGIN */
- #define NBUS_MAX_FRAME_SIZE 64
- #define UART_NBUS_RX_TIMEOUT 5
- /* DEFINES END */
- class NbusCommunicator {
- private:
- uint8_t _data_packet_tx[NBUS_MAX_FRAME_SIZE];
- uint8_t _data_packet_comm[NBUS_MAX_FRAME_SIZE];
- uint8_t _data_packet_rx[NBUS_MAX_FRAME_SIZE];
- DataFrame *_packet_tx;
- DataFrame *_packet_rx;
- UART_HandleTypeDef *_uart_nbus;
- UART_HandleTypeDef *_uart_master;
- void _receive();
- public:
- NbusCommunicator(UART_HandleTypeDef*, UART_HandleTypeDef*);
- void sendToMaster(DataFrame *master_frame);
- virtual ~NbusCommunicator();
- DataFrame* sendAndReceive(Nbus_pdu *pdu, uint8_t *data, uint8_t data_len);
- DataFrame* formatSlaveInfo(uint8_t slave_address[], uint8_t num);
- void send(Nbus_pdu *pdu, uint8_t *data, uint8_t data_len);
- DataFrame *formatPacket(uint8_t *rxFrame, uint8_t size);
- };
- #endif /* SRC_NBUSCOMMUNICATOR_H_ */
|