/* * @file AppBridge.cpp * @brief Implementation of nBus Slave. * @date Nov 26, 2025 * @author Juraj Dudak, Matus Necas */ #include void NbusSlave::setCommunicator(NbusCommunicator *nbus_comm) { _communicator = nbus_comm; } void NbusSlave::setAddress(uint8_t addr) { _pdu.ma = addr; } uint8_t NbusSlave::getModuleAddress() { return _pdu.ma; } bool NbusSlave::isActive() { return _communicator != nullptr && _pdu.ma != 0; } DataFrame *NbusSlave::nbusSlaveCmd_processRequest(DataFrame *slave_frame) { return _communicator->sendAndReceiveSlave(slave_frame); } DataFrame *NbusSlave::nbusSlaveCmd_getData() { _pdu.sa = SLAVE_ADDRESS_MODULE; _pdu.fc = FC_DATA; return _communicator->sendAndReceive(&_pdu, _sensor_cache, 0); } uint8_t NbusSlave::nbusSlaveCmd_getSensorCnt(bool check_hw) { if (_sensor_count == 0 || check_hw == true) { _pdu.sa = SLAVE_ADDRESS_MODULE; _pdu.fc = FC_SENSOR_CNT; DataFrame *df = _communicator->sendAndReceive(&_pdu, _sensor_cache, 0); _sensor_count = df->GetFrame()[3]; } return _sensor_count; }