OneWire.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef UNITEMP_ONE_WIRE
  2. #define UNITEMP_ONE_WIRE
  3. #include "../unitemp.h"
  4. //Интерфейс One Wire
  5. typedef struct {
  6. //Тип интерфейса подключения датчика
  7. Interface interface;
  8. //Порт подключения датчика
  9. const GPIO* gpio;
  10. //Время последнего опроса
  11. uint32_t lastPollingTime;
  12. //Последнее успешное значение температуры
  13. float lastTemp;
  14. //Последнее успешное значение влажности
  15. float lastHum;
  16. } OneWireSensor;
  17. /**
  18. * @brief Инициализация датчика
  19. *
  20. * @param sensor Указатель на инициализируемый датчик
  21. * @return Истина если всё прошло успешно
  22. */
  23. bool unitemp_oneWire_sensorInit(OneWireSensor* sensor);
  24. /**
  25. * @brief Деинициализация датчика
  26. *
  27. * @param sensor Указатель на инициализируемый датчик
  28. * @return Истина если всё прошло успешно
  29. */
  30. bool unitemp_oneWire_sensorDeInit(OneWireSensor* sensor);
  31. /**
  32. * @brief Получение данных с датчика по однопроводному интерфейсу DHTxx и AM2xxx
  33. *
  34. * @param sensor Указатель на датчик
  35. * @return Статус опроса
  36. */
  37. UnitempStatus unitemp_oneWire_getData(Sensor* sensor);
  38. /**
  39. * @brief Установить порт датчика
  40. *
  41. * @param sensor Указатель на датчик
  42. * @param gpio Устанавливаемый порт
  43. * @return Истина если всё ок
  44. */
  45. bool unitemp_oneWire_sensorSetGPIO(Sensor* sensor, const GPIO* gpio);
  46. /**
  47. * @brief Получить порт датчика
  48. *
  49. * @param sensor Указатель на датчик
  50. * @return Указатель на GPIO
  51. */
  52. const GPIO* unitemp_oneWire_sensorGetGPIO(Sensor* sensor);
  53. #endif