one_wire_device.h 955 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include <stdint.h>
  3. #include "maxim_crc.h"
  4. #include "one_wire_slave_gpio.h"
  5. // TODO fix GPL compability
  6. // currently we use rework of OneWireHub
  7. class OneWireDevice {
  8. public:
  9. OneWireDevice(
  10. uint8_t id_1,
  11. uint8_t id_2,
  12. uint8_t id_3,
  13. uint8_t id_4,
  14. uint8_t id_5,
  15. uint8_t id_6,
  16. uint8_t id_7);
  17. ~OneWireDevice() = default; // TODO: detach if deleted before hub
  18. // allow only move constructor
  19. OneWireDevice(OneWireDevice&& one_wire_device) = default;
  20. OneWireDevice(const OneWireDevice& one_wire_device) = delete;
  21. OneWireDevice& operator=(OneWireDevice& one_wire_device) = delete;
  22. OneWireDevice& operator=(const OneWireDevice& one_wire_device) = delete;
  23. OneWireDevice& operator=(OneWireDevice&& one_wire_device) = delete;
  24. uint8_t id_storage[8];
  25. void send_id(OneWireGpioSlave* owner) const;
  26. virtual void do_work(OneWireGpioSlave* owner) = 0;
  27. };