Newer
Older
#include "device/device_config.h"
#ifndef MEASURED_PERIOD_MS
#define MEASURED_PERIOD_MS 1000
#endif
namespace qthing {
namespace measured {
typedef struct {
const std::string *name;
const std::string *type;
const std::string *unit;
const float value;
} sensor_data_t;
typedef std::function<void(const std::vector<sensor_data_t>&)> backend_t;
void register_backend(backend_t new_backend);
void register_sensor(std::string name, std::string type, std::string unit, sensor_t sensor);
class Measured {
typedef struct {
std::string name;
std::string type;
std::string unit;
qthing::measured::sensor_t sensor;
} sensor_config_t;
public:
Measured();
void register_backend(backend_t new_backend);
void register_sensor(std::string name, std::string type, std::string unit, sensor_t sensor);
private:
std::vector<sensor_config_t> sensors;
qthing::measured::backend_t backend;
uint16_t measure_period = MEASURED_PERIOD_MS;
void measured();
};
void mqtt(const std::vector<qthing::measured::sensor_data_t>& data);