NbusSlave.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. NbusCommunicator* _communicator;
  17. Nbus_pdu _pdu;
  18. uint8_t _sensor_cache[16];
  19. uint8_t _sensor_count;
  20. public:
  21. NbusSlave(uint8_t, NbusCommunicator*);
  22. NbusSlave();
  23. virtual ~NbusSlave();
  24. void setCommunicator(NbusCommunicator*);
  25. void setAddress(uint8_t);
  26. bool isActive();
  27. uint8_t getSensorAddress();
  28. uint8_t getModuleAddress();
  29. DataFrame* nbus_echo(uint8_t *echo_data, uint8_t size);
  30. DataFrame* nbus_sensor_count();
  31. DataFrame* nbus_sensor_type(uint8_t);
  32. DataFrame* nbus_sensor_format(uint8_t);
  33. DataFrame* nbus_module_info();
  34. DataFrame* nbus_sensor_getData(uint8_t sensor_address);
  35. DataFrame* nbus_sensor_parameter(uint8_t, uint8_t);
  36. DataFrame* nbus_sensor_parameters(uint8_t);
  37. uint8_t nbus_get_sensor_count(bool check_hw = false);
  38. };
  39. #ifdef __cplusplus
  40. extern "C"
  41. {
  42. #endif
  43. #ifdef __cplusplus
  44. }
  45. #endif
  46. #endif /* SRC_APPSLAVE_H_ */