SingleWireSensor.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifndef UNITEMP_SINGLE_WIRE
  2. #define UNITEMP_SINGLE_WIRE
  3. #include "../unitemp.h"
  4. #include "../Sensors.h"
  5. //Интерфейс Single Wire
  6. typedef struct {
  7. //Порт подключения датчика
  8. const GPIO* gpio;
  9. } SingleWireSensor;
  10. /* Датчики */
  11. extern const SensorType DHT11;
  12. extern const SensorType DHT12_SW;
  13. extern const SensorType DHT21;
  14. extern const SensorType DHT22;
  15. extern const SensorType AM2320_SW;
  16. /**
  17. * @brief Инициализация датчика
  18. *
  19. * @param sensor Указатель на инициализируемый датчик
  20. * @return Истина если всё прошло успешно
  21. */
  22. bool unitemp_singlewire_init(Sensor* sensor);
  23. /**
  24. * @brief Деинициализация датчика
  25. *
  26. * @param sensor Указатель на инициализируемый датчик
  27. * @return Истина если всё прошло успешно
  28. */
  29. bool unitemp_singlewire_deinit(Sensor* sensor);
  30. /**
  31. * @brief Получение данных с датчика по однопроводному интерфейсу DHTxx и AM2xxx
  32. *
  33. * @param sensor Указатель на датчик
  34. * @return Статус опроса
  35. */
  36. UnitempStatus unitemp_singlewire_update(Sensor* sensor);
  37. /**
  38. * @brief Установить порт датчика
  39. *
  40. * @param sensor Указатель на датчик
  41. * @param gpio Устанавливаемый порт
  42. * @return Истина если всё ок
  43. */
  44. bool unitemp_singlewire_sensorSetGPIO(Sensor* sensor, const GPIO* gpio);
  45. /**
  46. * @brief Получить порт датчика
  47. *
  48. * @param sensor Указатель на датчик
  49. * @return Указатель на GPIO
  50. */
  51. const GPIO* unitemp_singlewire_sensorGetGPIO(Sensor* sensor);
  52. /**
  53. * @brief Выделение памяти под датчик на линии One Wire
  54. *
  55. * @param sensor Указатель на датчик
  56. * @param args Указатель на массив с аргументами параметров датчка
  57. */
  58. bool unitemp_singlewire_alloc(Sensor* sensor, char* args);
  59. /**
  60. * @brief Высвобождение памяти инстанса датчика
  61. *
  62. * @param sensor Указатель на датчик
  63. */
  64. bool unitemp_singlewire_free(Sensor* sensor);
  65. #endif