Skip to content
Snippets Groups Projects
measured.h 815 B
Newer Older
fxk8y's avatar
fxk8y committed
#pragma once

#include <string>
fxk8y's avatar
fxk8y committed
#include <vector>
fxk8y's avatar
fxk8y committed
#include <functional>
#include "device/device_config.h"

#ifndef MEASURED_PERIOD_MS
#define MEASURED_PERIOD_MS 1000
#endif


fxk8y's avatar
fxk8y committed
namespace qthing {

    namespace measured {

fxk8y's avatar
fxk8y committed
        typedef struct {
            const std::string *name;
            const std::string *type;
            const std::string *unit;
            const float value;
        } sensor_data_t;

fxk8y's avatar
fxk8y committed
        typedef std::function<float()> sensor_t;
fxk8y's avatar
fxk8y committed
        typedef std::function<void(std::vector<sensor_data_t>&)> backend_t;
fxk8y's avatar
fxk8y committed
        void registerBackend(backend_t new_backend);
        void registerSensor(std::string name, std::string type, std::string unit, sensor_t sensor);

        namespace backend {
fxk8y's avatar
fxk8y committed
            void mqtt(std::vector<qthing::measured::sensor_data_t>& data);
fxk8y's avatar
fxk8y committed
        }