| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * NbusBridge.cpp
- *
- * Created on: Mar 7, 2025
- * Author: juraj
- */
- #include "NbusBridge.h"
- #include "dataframe.h"
- NbusBridge::NbusBridge(UART_HandleTypeDef *uartUbus) {
- _uartUbus = uartUbus;
- _num_slaves = 0;
- //_packet_rx = new DataFrame (_data_packet_rx, sizeof(_data_packet_rx), TYPE_PLAIN, CRC_ON);
- }
- NbusBridge::~NbusBridge() {
- // TODO Auto-generated destructor stub
- }
- void NbusBridge::transmit(DataFrame *packet) {
- HAL_UART_Transmit(_uartUbus, packet->GetFrame(), packet->GetLength(), 100);
- HAL_UARTEx_ReceiveToIdle_DMA(_uartUbus, _data_packet_rx, 64);
- }
- uint8_t NbusBridge::send(DataFrame *frame){
- frame->Commit();
- transmit(frame);
- return 0;
- }
- bool NbusBridge::addSlave(NbusSlave *slave){
- if(_num_slaves >= MAX_SLAVES){
- return false;
- }
- _slaves[_num_slaves++] = slave;
- return true;
- }
- bool NbusBridge::call_echo(uint8_t slave){
- if(slave >= _num_slaves){
- return false;
- }
- if(slave == 0){
- for(uint32_t i = 0 ; i<_num_slaves ; i++){
- _slaves[i]->nbus_echo();
- }
- return true;
- }
- _slaves[slave]->nbus_echo();
- return true;
- }
|