JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
basic_sensor_adapter.h
См. документацию.
1#pragma once
2
3#include "ISensor.h"
4
5// BasicSensorAdapter — лёгкий каркас абстракции без использования std::function (экономия flash)
7{
8 public:
9 using InitFn = void (*)(); // функция инициализации
10 using AcquireFn = void (*)(); // функция получения данных
11
12 constexpr BasicSensorAdapter(const char* n, InitFn initFn, AcquireFn acquireFn, SensorData* shared)
13 : _name(n), _init(initFn), _acquire(acquireFn), _data(shared)
14 {
15 }
16
17 bool begin() override
18 {
19 if (_init) _init();
20 return true;
21 }
22
23 bool read(SensorData& out) override
24 {
25 if (_acquire) _acquire();
26 if (_data)
27 {
28 out = *_data;
29 return true; // Упрощенная проверка валидности
30 }
31 return false;
32 }
33
34 const char* name() const override
35 {
36 return _name;
37 }
38
39 private:
40 const char* _name;
41 InitFn _init;
42 AcquireFn _acquire;
43 SensorData* _data;
44};
Definition basic_sensor_adapter.h:7
const char * name() const override
Definition basic_sensor_adapter.h:34
void(*)() AcquireFn
Definition basic_sensor_adapter.h:10
constexpr BasicSensorAdapter(const char *n, InitFn initFn, AcquireFn acquireFn, SensorData *shared)
Definition basic_sensor_adapter.h:12
bool begin() override
Definition basic_sensor_adapter.h:17
bool read(SensorData &out) override
Definition basic_sensor_adapter.h:23
void(*)() InitFn
Definition basic_sensor_adapter.h:9
Definition ISensor.h:10
Данные датчика
Definition sensor_types.h:77