ESP32 MQTT IoT Communication
Loading...
Searching...
No Matches
device.hh
Go to the documentation of this file.
1
11#ifndef DEVICE_HH
12#define DEVICE_HH
13#pragma once
14
15#include <ArduinoJson.h>
16#include <map>
17#include <vector>
18
19namespace device
20{
21
22// Parser Abstract
26class Parser
27{
28 public:
29 virtual ~Parser();
34 virtual JsonDocument parse() = 0;
39 virtual String get_address() = 0;
40};
41
42// Sensor inherits Parser Public
46class Sensor : public Parser
47{
48 public:
56 Sensor(String _sensor_name, String _sensor_description, String _unit, String _sensor_address);
57 ~Sensor();
58 JsonDocument parse();
59 String get_address();
60
61 private:
66 String sensor_address;
67 String sensor_name;
68 String sensor_description;
69 String unit;
70};
71
72// Device inherits Parser Public
73class Device : public Parser
74{
75 public:
81 Device(String _mac_address, String _device_type);
88 Device(String _mac_address, String _device_type, std::vector<Sensor> _sensor_vector);
89 ~Device();
90 JsonDocument parse();
91 String get_address();
96 void add_sensor(Sensor _sensor);
97
98 private:
99 String device_address;
100 String device_name;
101 std::vector<Sensor> sensor_vector;
102};
103
104// Reading inherits Parser Public
108class SensorReading : public Parser
109{
110 public:
116 SensorReading(double _data_value, String _sensor_address);
117 JsonDocument parse();
119 String get_address();
120
121 private:
122 String sensor_address;
123 double data_value;
124};
125}; // namespace device
126#endif
Definition device.hh:74
String get_address()
Returns the IP address of the Board.
Definition device.cc:39
JsonDocument parse()
Encodes data readings/id object into a JSON object.
Definition device.cc:44
void add_sensor(Sensor _sensor)
Adds A sensor object to the internal sensor vector.
Definition device.cc:59
Abstract Class Implementing Functions for Parsing Readings into JSON Objects.
Definition device.hh:27
virtual JsonDocument parse()=0
Encodes data readings/id object into a JSON object.
virtual String get_address()=0
Returns the IP address of the Board.
Class encoding logic for encoding Sensor Readings into a Json oject.
Definition device.hh:109
JsonDocument parse()
Encodes data readings/id object into a JSON object.
Definition device.cc:104
String get_address()
Returns the IP address of the Board.
Definition device.cc:113
Class encapsulating logic for handling sensors connected to the Board.
Definition device.hh:47
JsonDocument parse()
Encodes data readings/id object into a JSON object.
Definition device.cc:81
String get_address()
Returns the IP address of the Board.
Definition device.cc:73
Namespace containing functions that allow for th conversion of data into JSON Objects.
Definition device.cc:17