IOControl/include/IO/DMX512/Request.h
Go to the documentation of this file.
1 
22 #pragma once
23 
24 #include "../Request.h"
25 #include "Device.h"
26 
27 namespace IO
28 {
29 namespace DMX512
30 {
31 class Request : public IO::Request
32 {
33 public:
34  Request(Device& device) : IO::Request(static_cast<IO::Device&>(device))
35  {
36  }
37 
39  {
40  return static_cast<Device&>(device);
41  }
42 
43  ErrorCode parseJson(JsonObjectConst json) override;
44 
45  void getJson(JsonObject json) const override;
46 
47  bool setNode(DevNode node) override;
48 
49  DevNode node() const
50  {
51  return devNode;
52  }
53 
54  bool nodeAdjust(DevNode node, int value) override
55  {
56  setCommand(Command::adjust);
57  setValue(value);
58  return setNode(node);
59  }
60 
61  void setValue(int newValue)
62  {
63  value = newValue;
64  }
65 
66  int getValue() const
67  {
68  return value;
69  }
70 
71  void submit() override;
72 
73 private:
74  int value{};
75  DevNode devNode{};
76 };
77 
78 } // namespace DMX512
79 } // namespace IO
Identifies a device node.
Definition: DevNode.h:30
void getJson(JsonObject json) const override
Get result of a completed request in JSON format.
Definition: IOControl/include/IO/Controller.h:25
int getValue() const
Definition: IOControl/include/IO/DMX512/Request.h:66
ErrorCode parseJson(JsonObjectConst json) override
Fill this request from a JSON description.
Json json
Request(Device &device)
Definition: IOControl/include/IO/DMX512/Request.h:34
Request represents a single user request/response over a bus.
Definition: IOControl/include/IO/Request.h:75
void submit() override
Submit a request.
Definition: IOControl/include/IO/DMX512/Request.h:31
int16_t ErrorCode
Definition: Libraries/IOControl/include/IO/Error.h:27
void setValue(int newValue)
Definition: IOControl/include/IO/DMX512/Request.h:61
DevNode node() const
Definition: IOControl/include/IO/DMX512/Request.h:49
Definition: Libraries/IOControl/include/IO/DMX512/Device.h:100
void setCommand(Command cmd)
Set the command code.
Definition: IOControl/include/IO/Request.h:163
Device & device
Definition: IOControl/include/IO/Request.h:259
bool nodeAdjust(DevNode node, int value) override
If nodes support analogue state (e.g. brightness) the implement this method.
Definition: IOControl/include/IO/DMX512/Request.h:54
Device & getDevice()
Definition: IOControl/include/IO/DMX512/Request.h:38
bool setNode(DevNode node) override
If nodes are supported, implemented this method.