JXCT Soil Sensor 7-in-1 v3.4.9 (June 2025)
Professional IoT soil monitoring system with ESP32, Modbus RTU, MQTT, and advanced compensation algorithms
Загрузка...
Поиск...
Не найдено
basic_sensor_adapter.h
См. документацию.
1#pragma once
2
3#include "ISensor.h"
4#include "modbus_sensor.h" // forward for SensorData
5
6// BasicSensorAdapter — лёгкий каркас абстракции без использования std::function (экономия flash)
7class BasicSensorAdapter : public ISensor {
8public:
9 using InitFn = void (*)(); // функция инициализации
10 using AcquireFn = void (*)(); // функция получения данных
11
12 constexpr BasicSensorAdapter(const char* n,
13 InitFn initFn,
14 AcquireFn acquireFn,
15 SensorData* shared)
16 : _name(n), _init(initFn), _acquire(acquireFn), _data(shared) {}
17
18 bool begin() override {
19 if (_init) _init();
20 return true;
21 }
22
23 bool read(SensorData& out) override {
24 if (_acquire) _acquire();
25 if (_data) {
26 out = *_data;
27 return _data->valid;
28 }
29 return false;
30 }
31
32 const char* name() const override { return _name; }
33
34private:
35 const char* _name;
39};
const char * name() const override
Определения basic_sensor_adapter.h:32
InitFn _init
Определения basic_sensor_adapter.h:36
void(*)() AcquireFn
Определения basic_sensor_adapter.h:10
constexpr BasicSensorAdapter(const char *n, InitFn initFn, AcquireFn acquireFn, SensorData *shared)
Определения basic_sensor_adapter.h:12
bool begin() override
Определения basic_sensor_adapter.h:18
bool read(SensorData &out) override
Определения basic_sensor_adapter.h:23
SensorData * _data
Определения basic_sensor_adapter.h:38
void(*)() InitFn
Определения basic_sensor_adapter.h:9
AcquireFn _acquire
Определения basic_sensor_adapter.h:37
const char * _name
Определения basic_sensor_adapter.h:35
Определения ISensor.h:9
Определения modbus_sensor.h:35