isolight_puck_controller/isolight_puck_controller.h Source File

1 [[PREPROC_HEADER_GUARD_BEGIN]]
2 
3 #include <HC_API.h>
4 #include <controllers_utils.h>
5 
6 namespace ControlAPI {
7 
8 
13  {
14  IsoLightPuck_LEDPatterns_Continuous_Red = 16,
15  IsoLightPuck_LEDPatterns_Continuous_Yellow,
16  IsoLightPuck_LEDPatterns_Continuous_Green,
17  IsoLightPuck_LEDPatterns_Continuous_Blue,
18  IsoLightPuck_LEDPatterns_Continuous_Magenta,
19 
20  IsoLightPuck_LEDPatterns_Flashing_Red,
21  IsoLightPuck_LEDPatterns_Flashing_Yellow,
22  IsoLightPuck_LEDPatterns_Flashing_Green,
23  IsoLightPuck_LEDPatterns_Flashing_Blue,
24  IsoLightPuck_LEDPatterns_Flashing_Magenta,
25 
26  IsoLightPuck_LEDPatterns_Spin_Red,
27  IsoLightPuck_LEDPatterns_Spin_Yellow,
28  IsoLightPuck_LEDPatterns_Spin_Green,
29  IsoLightPuck_LEDPatterns_Spin_Blue,
30  IsoLightPuck_LEDPatterns_Spin_Magenta,
31 
32  IsoLightPuck_LEDPatterns_RainbowCycle
33 
34  };
35 
40  public:
41  HC_CLASS_DEVICECOMMANDPACKAGE_META(IsolightPuckCommand_Update)
42 
43  virtual ~IsolightPuckCommand_Update() = default;
44 
45 
46 #ifdef HC_API_MACRO_EXCLUDE_DOCS
47  virtual std::shared_ptr<CommandStateInfo> createCommandStateInfo() override;
48  virtual std::shared_ptr<CommandStatus> createCommandStatus() override;
49 #ifdef HC_API_FEATURE_NETWORKING
50  virtual void syncFromNetwork(CommandStatus* command) override;
51 #endif
52 #endif
53 
57  IsoLightPuck_LEDPatterns ledPattern = IsoLightPuck_LEDPatterns_Continuous_Green;
58 
59  };
60 
65  public:
66  HC_CLASS_META(IsolightPuckUpdateStateInfo)
67  HC_SWIG_SHAREDPTR(IsolightPuckUpdateStateInfo)
68 
69 
70  float sensor_GRXYZ_X = 0.0f;
73  float sensor_GRXYZ_Y = 0.0f;
74  float sensor_GRXYZ_Z = 0.0f;
75 
76 
80  float sensor_x_normalized = 0.0f;
81  float sensor_y_normalized = 0.0f;
82  float sensor_z_normalized = 0.0f;
83 
84 
88  float sensor_u_prime = 0.0f;
89  float sensor_v_prime = 0.0f;
90 
91 
95  float sensor_cct = 0.0f;
96 
97 
101  float sensor_lightlevel = 0.0f;
102 #ifdef HC_API_FEATURE_NETWORKING
103  virtual void cacheOnNetwork(CommandStatus* command) override;
104 #endif
105  };
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
119  class HC_API IsolightPuckCommandStatus : public CommandStatus {
120  public:
121  HC_CLASS_META(IsolightPuckCommandStatus)
122  HC_SWIG_SHAREDPTR(IsolightPuckCommandStatus)
123 
124  virtual ~IsolightPuckCommandStatus() = default;
125 
126  IsolightPuckUpdateStateInfo* stateInfo();
127  };
128 
129  class IsolightPuckComHandler;
133  class HC_API IsolightPuckDeviceInfo : public DeviceInfo {
134  public:
135  HC_CLASS_META(IsolightPuckDeviceInfo)
136  HC_SWIG_SHAREDPTR(IsolightPuckDeviceInfo)
137  HC_CLASS_DEVICEINFO_META(IsolightPuckDeviceInfo, IsolightPuckCommandStatus)
138 
139  friend class IsolightPuckController;
140  friend class IsolightPuckComHandler;
141 
142  virtual ~IsolightPuckDeviceInfo() = default;
143 
144 
146  std::string port;
147 
148 
152  float updateRateMS = 20;
153 
154 
155 
156  protected:
157 #ifdef HC_API_MACRO_EXCLUDE_DOCS
158  std::shared_ptr<IsolightPuckComHandler> puckComs;
159 #endif
160  };
161 
166  public:
167  HC_CLASS_META(IsolightPuckController)
168  HC_SWIG_SHAREDPTR(IsolightPuckController)
169 
170  virtual ~IsolightPuckController() = default;
171 
172 #ifdef HC_API_MACRO_EXCLUDE_DOCS
173  virtual bool init() override;
174 
175  virtual bool issueCommand(CommandStatus* command) override;
176 
177 #endif
178  };
179 
180 
181 }
182 
183 [[PREPROC_HEADER_GUARD_END]]