SingleWireSensor.h 2.2 KB

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