NbusSlave.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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_format(uint8_t);
  32. // DataFrame* nbus_sensors_formats();
  33. // DataFrame* nbus_sensor_format(uint8_t, uint8_t);
  34. DataFrame* nbus_module_info();
  35. DataFrame* nbus_sensor_getData(uint8_t sensor_address);
  36. DataFrame* nbus_sensor_parameter(uint8_t, uint8_t);
  37. DataFrame* nbus_sensor_parameters(uint8_t);
  38. uint8_t nbus_get_sensor_count(bool check_hw = false);
  39. };
  40. #ifdef __cplusplus
  41. extern "C"
  42. {
  43. #endif
  44. #ifdef __cplusplus
  45. }
  46. #endif
  47. #endif /* SRC_APPSLAVE_H_ */