obmon  1.3.2
ObSensor.h
1 
5 
7 #pragma once
8 
9 #include <spdlog/spdlog.h>
10 #include <vector>
11 
18 
19 class ObSensor {
20 public:
22  enum class SensorType { NONE, VALUE, SPEED, IGNORE };
23 
24  ObSensor(std::string name = {"sensor"});
25  virtual ~ObSensor();
26 
27  virtual bool init();
29  virtual void process() {}
31  virtual void speed(ObSensor * /*s1*/, ObSensor * /*s2*/,
32  unsigned int /*timeout*/) {}
33  virtual std::string json(const std::string name = {}) const;
34 
35  virtual void update(unsigned int timeout) final;
36 
38  std::string name() const { return _name; }
39 
41  void type(SensorType t) { _type = t; }
42 
44  SensorType type() const { return _type; }
45 
47  void enabled(bool e) { _enabled = e; }
48 
50  bool enabled() const { return _enabled; }
51 
53  std::vector<ObSensor *> &sensors() { return _sensors; }
54 
55 protected:
56  std::shared_ptr<spdlog::logger> _logger;
57  std::string _name;
58  SensorType _type = SensorType::NONE;
59  bool _enabled;
63  std::vector<ObSensor *> _sensors{};
64 };
65 
std::shared_ptr< spdlog::logger > _logger
Pointer to spd logger.
Definition: ObSensor.h:56
std::vector< ObSensor * > & sensors()
Return list of sensors.
Definition: ObSensor.h:53
SensorType _type
Sensor type.
Definition: ObSensor.h:58
virtual std::string json(const std::string name={}) const
Definition: ObSensor.cpp:60
bool _enabled
Is enabled.
Definition: ObSensor.h:59
ObSensor(std::string name={"sensor"})
Definition: ObSensor.cpp:3
virtual void update(unsigned int timeout) final
Definition: ObSensor.cpp:33
std::vector< ObSensor * > _sensors
List of subsensors.
Definition: ObSensor.h:63
ObSensor * _first
Pointer to first sensor.
Definition: ObSensor.h:60
SensorType
Enums for sensor type.
Definition: ObSensor.h:22
virtual bool init()
Definition: ObSensor.cpp:16
ObSensor * _change
Pointer to change sensor.
Definition: ObSensor.h:62
bool enabled() const
Returns flag if sensor is enabled.
Definition: ObSensor.h:50
ObSensor * _second
Pointer to second sensor.
Definition: ObSensor.h:61
std::string name() const
Returns name of sensor.
Definition: ObSensor.h:38
virtual void speed(ObSensor *, ObSensor *, unsigned int)
Calculate time change (speed)
Definition: ObSensor.h:31
SensorType type() const
Returns sensor type.
Definition: ObSensor.h:44
void enabled(bool e)
Sets flag if sensor is enabled.
Definition: ObSensor.h:47
Base Obmon sensor class
Definition: ObSensor.h:19
virtual void process()
Process function.
Definition: ObSensor.h:29
virtual ~ObSensor()
Definition: ObSensor.cpp:10
std::string _name
Sensor name.
Definition: ObSensor.h:57
void type(SensorType t)
Sets sensor type.
Definition: ObSensor.h:41