one_wire_device.cpp 745 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "one_wire_device.h"
  2. OneWireDevice::OneWireDevice(
  3. uint8_t id_1,
  4. uint8_t id_2,
  5. uint8_t id_3,
  6. uint8_t id_4,
  7. uint8_t id_5,
  8. uint8_t id_6,
  9. uint8_t id_7) {
  10. id_storage[0] = id_1;
  11. id_storage[1] = id_2;
  12. id_storage[2] = id_3;
  13. id_storage[3] = id_4;
  14. id_storage[4] = id_5;
  15. id_storage[5] = id_6;
  16. id_storage[6] = id_7;
  17. id_storage[7] = maxim_crc8(id_storage, 7);
  18. }
  19. OneWireDevice::~OneWireDevice() {
  20. if(bus != nullptr) {
  21. bus->deattach();
  22. }
  23. }
  24. void OneWireDevice::send_id() const {
  25. if(bus != nullptr) {
  26. bus->send(id_storage, 8);
  27. }
  28. }
  29. void OneWireDevice::attach(OneWireSlave* _bus) {
  30. bus = _bus;
  31. }
  32. void OneWireDevice::deattach(void) {
  33. bus = nullptr;
  34. }