Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h
Go to the documentation of this file.
1 
23 #pragma once
24 
25 #include "../../Device.h"
26 
28 {
29 const size_t channelCount{3};
30 
31 struct FanData {
32  uint16_t rpm[channelCount];
33  uint8_t speed[channelCount];
34 };
35 
36 class Device : public Modbus::Device
37 {
38  friend class Request;
39 
40 public:
41  class Factory : public FactoryTemplate<Device>
42  {
43  public:
44  const FlashString& deviceClass() const override
45  {
46  return FS("sts/fan");
47  }
48  };
49 
50  static const Factory factory;
51 
53 
55 
56  const FanData& getData() const
57  {
58  return data;
59  }
60 
61  uint16_t maxNodes() const override
62  {
63  return channelCount;
64  }
65 
66  void getValues(JsonObject json) const;
67 
68 protected:
69  void parseJson(JsonObjectConst json, Config& cfg);
70 
72 };
73 
74 } // namespace IO::Modbus::STS::Fan
describes a counted string stored in flash memory
Definition: String.hpp:174
A virtual device, represents a modbus slave device.
Definition: Libraries/IOControl/include/IO/Modbus/Device.h:39
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:42
const FlashString & deviceClass() const override
Return the Device class name, e.g. 'r421a'.
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:44
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:37
uint16_t maxNodes() const override
Determine maximum number of nodes supported by the device.
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:61
const FanData & getData() const
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:56
void getValues(JsonObject json) const
IO::Request * createRequest() override
Create a request object for this device.
void parseJson(JsonObjectConst json, Config &cfg)
FanData data
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:71
static const Factory factory
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:50
Definition: IOControl/include/IO/Modbus/STS/Fan/Request.h:29
Definition: Libraries/IOControl/include/IO/RS485/Device.h:37
Device(Controller &controller, const char *id)
Definition: Libraries/IOControl/include/IO/RS485/Device.h:80
Request represents a single user request/response over a bus.
Definition: IOControl/include/IO/Request.h:80
#define FS(str)
Define an inline FSTR::String and return it as a copy.
Definition: String.hpp:56
Json json
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:28
const size_t channelCount
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:29
Inherited classes expand this definition as required.
Definition: Libraries/IOControl/include/IO/Device.h:80
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:31
uint16_t rpm[channelCount]
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:32
uint8_t speed[channelCount]
Definition: Libraries/IOControl/include/IO/Modbus/STS/Fan/Device.h:33