NbusSlave.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * AppBridge.cpp
  3. *
  4. * Created on: Mar 3, 2025
  5. * Author: juraj
  6. */
  7. #include <NbusSlave.h>
  8. NbusSlave::NbusSlave(uint8_t address, NbusCommunicator *comm) {
  9. _address = address;
  10. _communicator = comm;
  11. _pdu.ma = address;
  12. }
  13. NbusSlave::~NbusSlave() {
  14. // TODO Auto-generated destructor stub
  15. }
  16. DataFrame* NbusSlave::nbus_echo() {
  17. _pdu.sa = SLAVE_ADDRESS_MODULE;
  18. _pdu.fc = FC_ECHO;
  19. _sensor_cache[0] = 60 + _pdu.ma;
  20. _sensor_cache[1] = 61 + _pdu.ma;
  21. _sensor_cache[2] = 62 + _pdu.ma;
  22. _sensor_cache[3] = 63 + _pdu.ma;
  23. return _communicator->send(&_pdu, _sensor_cache, 4);
  24. }
  25. DataFrame* NbusSlave::nbus_sensor_count() {
  26. _pdu.sa = SLAVE_ADDRESS_MODULE;
  27. _pdu.fc = FC_SENSOR_CNT;
  28. return _communicator->send(&_pdu, _sensor_cache, 0);
  29. }
  30. DataFrame* NbusSlave::nbus_sensor_type(uint8_t sensor_address) {
  31. _pdu.sa = sensor_address;
  32. _pdu.fc = FC_SENSOR_TYPE;
  33. return _communicator->send(&_pdu, _sensor_cache, 0);
  34. }
  35. DataFrame* NbusSlave::nbus_module_info() {
  36. _pdu.sa = SLAVE_ADDRESS_MODULE;
  37. _pdu.fc = FC_INFO;
  38. return _communicator->send(&_pdu, _sensor_cache, 0);
  39. }
  40. DataFrame* NbusSlave::nbus_module_format() {
  41. _pdu.sa = SLAVE_ADDRESS_MODULE;
  42. _pdu.fc = FC_SENSOR_FORMAT;
  43. return _communicator->send(&_pdu, _sensor_cache, 0);
  44. }
  45. DataFrame* NbusSlave::nbus_sensors_parameters() {
  46. return nbus_sensor_parameters(0);
  47. }
  48. DataFrame* NbusSlave::nbus_sensor_parameters(uint8_t sensor_address) {
  49. _pdu.sa = sensor_address;
  50. _pdu.fc = FC_SENSOR_FORMAT;
  51. return _communicator->send(&_pdu, _sensor_cache, 0);
  52. }
  53. DataFrame* NbusSlave::nbus_sensor_parameter(uint8_t sensor_address, uint8_t parameter) {
  54. _pdu.sa = sensor_address;
  55. _pdu.fc = FC_SENSOR_FORMAT;
  56. _sensor_cache[0] = parameter;
  57. return _communicator->send(&_pdu, _sensor_cache, 1);
  58. }