OneWireSensor.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef UNITEMP_OneWire
  2. #define UNITEMP_OneWire
  3. #include "../unitemp.h"
  4. typedef enum DallasFamilyCode {
  5. FC_DS18S20 = 0x10,
  6. FC_DS1822 = 0x22,
  7. FC_DS18B20 = 0x28,
  8. } DallasFamilyCode;
  9. typedef struct OneWireSensor {
  10. //Порт подключения датчика
  11. const GPIO* gpio;
  12. //Текущий адрес устройства на шине OneWire
  13. uint64_t addr;
  14. DallasFamilyCode familyCode;
  15. } OneWireSensor;
  16. /**
  17. * @brief Выделение памяти для датчика на шине OneWire
  18. *
  19. * @param sensor Указатель на датчик
  20. * @param st Тип датчика
  21. * @return Истина если всё ок
  22. */
  23. bool unitemp_OneWire_alloc(void* s, uint16_t* anotherValues);
  24. /**
  25. * @brief Высвобождение памяти инстанса датчика
  26. *
  27. * @param sensor Указатель на датчик
  28. */
  29. bool unitemp_OneWire_free(void* sensor);
  30. /**
  31. * @brief Инициализации датчика на шине One Wire
  32. *
  33. * @param sensor Указатель на датчик (тип Sensor)
  34. * @return Истина если инициализация упспешная
  35. */
  36. bool unitemp_OneWire_init(void* sensor);
  37. /**
  38. * @brief Деинициализация датчика
  39. *
  40. * @param sensor Указатель на датчик (тип Sensor)
  41. */
  42. bool unitemp_OneWire_deinit(void* s);
  43. /**
  44. * @brief Обновить значение с датчка
  45. *
  46. * @param sensor Указатель на датчик (тип Sensor)
  47. * @return Статус обновления
  48. */
  49. UnitempStatus unitemp_OneWire_update(void* sensor);
  50. extern const SensorType DS18x2x;
  51. #endif