OneWire.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. } OneWireSensor;
  13. /**
  14. * @brief Инициализация датчика
  15. *
  16. * @param sensor Указатель на инициализируемый датчик
  17. * @return Истина если всё прошло успешно
  18. */
  19. bool unitemp_oneWire_sensorInit(OneWireSensor* sensor);
  20. /**
  21. * @brief Деинициализация датчика
  22. *
  23. * @param sensor Указатель на инициализируемый датчик
  24. * @return Истина если всё прошло успешно
  25. */
  26. bool unitemp_oneWire_sensorDeInit(OneWireSensor* sensor);
  27. /**
  28. * @brief Получение данных с датчика по однопроводному интерфейсу DHTxx и AM2xxx
  29. *
  30. * @param sensor Указатель на датчик
  31. * @return Статус опроса
  32. */
  33. UnitempStatus unitemp_oneWire_getData(Sensor* sensor);
  34. /**
  35. * @brief Установить порт датчика
  36. *
  37. * @param sensor Указатель на датчик
  38. * @param gpio Устанавливаемый порт
  39. * @return Истина если всё ок
  40. */
  41. bool unitemp_oneWire_sensorSetGPIO(Sensor* sensor, const GPIO* gpio);
  42. /**
  43. * @brief Получить порт датчика
  44. *
  45. * @param sensor Указатель на датчик
  46. * @return Указатель на GPIO
  47. */
  48. const GPIO* unitemp_oneWire_sensorGetGPIO(Sensor* sensor);
  49. #endif