| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /**
- * @file AppBridge.h
- * @brief nBus Slave module declaration.
- * @date Nov 26, 2025
- * @author Juraj Dudak, Matus Necas
- */
- #ifndef SRC_APPSLAVE_H_
- #define SRC_APPSLAVE_H_
- #include "inttypes.h"
- #include "dataframe.h"
- #include "NbusCommunicator.h"
- /** Macro for module-only address. */
- #define SLAVE_ADDRESS_MODULE 0
- /** Class for nBus slave communication */
- class NbusSlave {
- private:
- NbusCommunicator* _communicator{nullptr}; ///< hardware bus communicator
- Nbus_PDU_t _pdu{0, 0, FC_ECHO}; ///< slave PDU
- uint8_t _sensor_cache[16]{0}; ///< sensor temporary data
- uint8_t _sensor_count{0}; ///< number of sensors
- public:
- /** Set nBus communicator
- * @param nbus_comm: communicator to set
- */
- void setCommunicator(NbusCommunicator* nbus_comm);
- /** Set nBus address
- * @param addr: address to set
- */
- void setAddress(uint8_t addr);
- /** Get slave active status
- * @return: active status (1 = active, 0 = inactive)
- */
- bool isActive();
- /** Get nBus module address
- * @return: actual address (0 if not set)
- */
- uint8_t getModuleAddress();
- /** Send nBus request and get sensor count
- * @param check_hw: 1 = load from bus, 0 = use local cache
- * @return: response data frame
- */
- uint8_t nbusSlaveCmd_getSensorCnt(bool check_hw);
- /** Send any nBus request and get response
- * @param slave_frame: data to send
- * @return: response data frame
- */
- DataFrame * nbusSlaveCmd_processRequest(DataFrame *slave_frame);
- /** Send nBus request and get sensor data
- * @return: response data frame
- */
- DataFrame * nbusSlaveCmd_getData();
- };
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* SRC_APPSLAVE_H_ */
|