NbusSlave.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * @file AppBridge.h
  3. * @brief Deklarácia modulu nBus Slave z pohľadu nBus Bridge
  4. * @date Mar 3, 2025
  5. * @author Juraj Dudak
  6. */
  7. #ifndef SRC_APPSLAVE_H_
  8. #define SRC_APPSLAVE_H_
  9. #include "inttypes.h"
  10. #include "dataframe.h"
  11. #include "NbusCommunicator.h"
  12. /** Adresa slave modulu, bez špecifikácie adresy konktrétneho senzora. */
  13. #define SLAVE_ADDRESS_MODULE 0
  14. class NbusSlave {
  15. private:
  16. uint8_t _address;
  17. NbusCommunicator* _communicator;
  18. Nbus_pdu _pdu;
  19. uint8_t _sensor_cache[16];
  20. uint8_t _sensor_count;
  21. public:
  22. NbusSlave(uint8_t, NbusCommunicator*);
  23. NbusSlave();
  24. virtual ~NbusSlave();
  25. void setCommunicator(NbusCommunicator*);
  26. void setAddress(uint8_t);
  27. bool isActive();
  28. DataFrame* nbus_echo();
  29. DataFrame* nbus_sensor_count();
  30. DataFrame* nbus_sensor_type(uint8_t);
  31. DataFrame* nbus_sensor_parameters(uint8_t);
  32. DataFrame* nbus_sensors_parameters();
  33. DataFrame* nbus_module_info();
  34. DataFrame* nbus_sensor_parameter(uint8_t, uint8_t);
  35. DataFrame* nbus_sensor_getData(uint8_t sensor_address);
  36. uint8_t nbus_get_sensor_count(bool check_hw = false);
  37. };
  38. #ifdef __cplusplus
  39. extern "C"
  40. {
  41. #endif
  42. #ifdef __cplusplus
  43. }
  44. #endif
  45. #endif /* SRC_APPSLAVE_H_ */