4#ifndef supla_proto_suplet_H_
5#define supla_proto_suplet_H_
10#define SUPLA_DEVICE_FLAG_SUPLET_SUPPORTED 0x40000
13#define SUPLA_CALCFG_CMD_SUPLET_GET_CAPABILITIES 9500
14#define SUPLA_CALCFG_CMD_SUPLET_GET_INSTANCE_COUNT 9510
15#define SUPLA_CALCFG_CMD_SUPLET_GET_INSTANCE_LIST 9520
16#define SUPLA_CALCFG_CMD_SUPLET_GET_INSTANCE_INFO 9530
17#define SUPLA_CALCFG_CMD_SUPLET_GET_INSTANCE_CONFIG 9540
18#define SUPLA_CALCFG_CMD_SUPLET_DEFINITION_BEGIN 9550
19#define SUPLA_CALCFG_CMD_SUPLET_DEFINITION_CHUNK 9560
20#define SUPLA_CALCFG_CMD_SUPLET_DEFINITION_COMMIT 9570
21#define SUPLA_CALCFG_CMD_SUPLET_DEFINITION_ABORT 9580
22#define SUPLA_CALCFG_CMD_SUPLET_DEFINITION_REMOVE 9585
23#define SUPLA_CALCFG_CMD_SUPLET_GET_DEFINITION_LIST 9586
24#define SUPLA_CALCFG_CMD_SUPLET_GET_DEFINITION_CONFIG 9587
25#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_BEGIN 9590
26#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_CHUNK 9600
27#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_COMMIT 9610
28#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_REMOVE 9620
29#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_ABORT 9630
30#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_UPGRADE_BEGIN 9640
31#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_UPGRADE_CHUNK 9650
32#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_UPGRADE_COMMIT 9660
33#define SUPLA_CALCFG_CMD_SUPLET_INSTANCE_UPGRADE_ABORT 9670
36#define SUPLA_CALCFG_SUPLET_RESULT_OK 0
37#define SUPLA_CALCFG_SUPLET_RESULT_INVALID_REQUEST 1
38#define SUPLA_CALCFG_SUPLET_RESULT_UNSUPPORTED_DEFINITION 2
39#define SUPLA_CALCFG_SUPLET_RESULT_DEFINITION_NOT_FOUND 3
40#define SUPLA_CALCFG_SUPLET_RESULT_DEFINITION_TRANSFER_FAILED 4
41#define SUPLA_CALCFG_SUPLET_RESULT_DEFINITION_SHA_MISMATCH 5
42#define SUPLA_CALCFG_SUPLET_RESULT_INSTANCE_LIMIT_EXCEEDED 6
43#define SUPLA_CALCFG_SUPLET_RESULT_CHANNEL_LIMIT_EXCEEDED 7
44#define SUPLA_CALCFG_SUPLET_RESULT_RAM_LIMIT_EXCEEDED 8
45#define SUPLA_CALCFG_SUPLET_RESULT_CONFIG_TOO_LARGE 9
46#define SUPLA_CALCFG_SUPLET_RESULT_INVALID_CONFIG 10
47#define SUPLA_CALCFG_SUPLET_RESULT_STORAGE_ERROR 11
48#define SUPLA_CALCFG_SUPLET_RESULT_BUSY 12
49#define SUPLA_CALCFG_SUPLET_RESULT_CREATE_ONLY_PARAM_CHANGED 13
50#define SUPLA_CALCFG_SUPLET_RESULT_TOPOLOGY_CHANGE_NOT_ALLOWED 14
51#define SUPLA_CALCFG_SUPLET_RESULT_DEFINITION_CANNOT_BE_CHANGED 15
52#define SUPLA_CALCFG_SUPLET_RESULT_INVALID_DEFINITION 16
53#define SUPLA_CALCFG_SUPLET_RESULT_INSTANCE_NOT_FOUND 17
54#define SUPLA_CALCFG_SUPLET_RESULT_VERSION_MISMATCH 18
57#define SUPLA_CALCFG_SUPLET_PHASE_NONE 0
58#define SUPLA_CALCFG_SUPLET_PHASE_VALIDATE 1
59#define SUPLA_CALCFG_SUPLET_PHASE_TRANSFER_TEMPLATE 2
60#define SUPLA_CALCFG_SUPLET_PHASE_PARSE_TEMPLATE 3
61#define SUPLA_CALCFG_SUPLET_PHASE_VALIDATE_CONFIG 4
62#define SUPLA_CALCFG_SUPLET_PHASE_ALLOCATE_CHANNELS 5
63#define SUPLA_CALCFG_SUPLET_PHASE_SAVE_INSTANCE 6
64#define SUPLA_CALCFG_SUPLET_PHASE_RUNTIME_REFRESH 7
66#define SUPLA_CALCFG_SUPLET_CAPABILITY_MAX_ITEMS 4
67#define SUPLA_CALCFG_SUPLET_INSTANCE_LIST_MAX_ITEMS 5
68#define SUPLA_CALCFG_SUPLET_DEFINITION_LIST_MAX_ITEMS 2
69#define SUPLA_CALCFG_SUPLET_CONFIG_CHUNK_MAXSIZE 100
70#define SUPLA_CALCFG_SUPLET_DEFINITION_CHUNK_MAXSIZE 112
71#define SUPLA_CALCFG_SUPLET_INSTANCE_CHUNK_MAXSIZE 112
73#define SUPLA_CALCFG_SUPLET_DEFINITION_SOURCE_BUILTIN 1
74#define SUPLA_CALCFG_SUPLET_DEFINITION_SOURCE_CACHED 2
79 unsigned char Version;
80 unsigned char DetailCode;
83 unsigned char InstanceId;
84 unsigned char Reserved1;
85 unsigned char Reserved2;
86 unsigned char Reserved3;
87 unsigned _supla_int_t DefinitionId;
88 unsigned _supla_int16_t DefinitionVersion;
89 unsigned _supla_int16_t Required;
90 unsigned _supla_int16_t Available;
99 unsigned char Category;
101 unsigned char MinSchemaVersion;
102 unsigned char MaxSchemaVersion;
103 unsigned char HandlerVersion;
104 unsigned char MaxInstances;
105 unsigned char SupportsDownloadedDefinition;
106 unsigned char Reserved;
107 unsigned _supla_int_t DefinitionId;
108 unsigned _supla_int16_t MinDefinitionVersion;
109 unsigned _supla_int16_t MaxDefinitionVersion;
113 unsigned char Offset;
116 unsigned char Reserved;
118 Items[SUPLA_CALCFG_SUPLET_CAPABILITY_MAX_ITEMS];
122 unsigned char Category;
124 unsigned char SchemaVersion;
125 unsigned char HandlerVersion;
126 unsigned char MaxInstances;
127 unsigned char Source;
128 unsigned _supla_int_t DefinitionId;
129 unsigned _supla_int16_t DefinitionVersion;
130 unsigned _supla_int16_t JsonSize;
131 unsigned char JsonSha256[32];
135 unsigned char Offset;
138 unsigned char Reserved;
140 Items[SUPLA_CALCFG_SUPLET_DEFINITION_LIST_MAX_ITEMS];
144 unsigned _supla_int_t DefinitionId;
145 unsigned _supla_int16_t DefinitionVersion;
146 unsigned _supla_int16_t Offset;
147 unsigned char MaxSize;
148 unsigned char Reserved;
152 unsigned _supla_int_t DefinitionId;
153 unsigned _supla_int16_t DefinitionVersion;
154 unsigned _supla_int16_t Offset;
155 unsigned _supla_int16_t TotalSize;
156 unsigned char Source;
158 char Data[SUPLA_CALCFG_SUPLET_CONFIG_CHUNK_MAXSIZE];
163 unsigned char MaxInstances;
164 unsigned char MaxChannelsPerInstance;
165 unsigned char MaxCachedDefinitions;
169 unsigned char InstanceId;
170 unsigned char Reserved1;
171 unsigned char Reserved2;
172 unsigned char Reserved3;
173 unsigned _supla_int_t DefinitionId;
174 unsigned _supla_int16_t DefinitionVersion;
175 unsigned char SubDeviceId;
176 unsigned char ChannelCount;
177 unsigned char Reserved4;
178 unsigned char Reserved5;
182 unsigned char Offset;
185 unsigned char Reserved;
187 Items[SUPLA_CALCFG_SUPLET_INSTANCE_LIST_MAX_ITEMS];
191 unsigned char InstanceId;
192 unsigned char Reserved1;
193 unsigned char Reserved2;
194 unsigned char Reserved3;
198 unsigned char InstanceId;
199 unsigned char Reserved1;
200 unsigned char Reserved2;
201 unsigned char Reserved3;
202 unsigned _supla_int_t DefinitionId;
203 unsigned _supla_int16_t DefinitionVersion;
204 unsigned char SubDeviceId;
205 unsigned char ChannelCount;
206 unsigned char Reserved4;
207 unsigned char Reserved5;
208 unsigned _supla_int16_t ParamsSize;
209 unsigned char ParamsSha256[32];
213 unsigned char InstanceId;
214 unsigned char Reserved1;
215 unsigned char Reserved2;
216 unsigned char Reserved3;
217 unsigned _supla_int16_t Offset;
218 unsigned char MaxSize;
219 unsigned char Reserved;
223 unsigned char InstanceId;
224 unsigned char Reserved1;
225 unsigned char Reserved2;
226 unsigned char Reserved3;
227 unsigned _supla_int16_t Offset;
228 unsigned _supla_int16_t TotalSize;
230 char Data[SUPLA_CALCFG_SUPLET_CONFIG_CHUNK_MAXSIZE];
234 unsigned _supla_int_t SessionId;
235 unsigned _supla_int_t DefinitionId;
236 unsigned _supla_int16_t DefinitionVersion;
237 unsigned _supla_int16_t JsonSize;
238 unsigned char JsonSha256[32];
240 unsigned char Reserved;
244 unsigned _supla_int_t SessionId;
245 unsigned _supla_int16_t Offset;
247 char Data[SUPLA_CALCFG_SUPLET_DEFINITION_CHUNK_MAXSIZE];
251 unsigned _supla_int_t DefinitionId;
252 unsigned _supla_int16_t DefinitionVersion;
253 unsigned _supla_int16_t Reserved;
257 unsigned _supla_int_t SessionId;
258 unsigned char InstanceId;
259 unsigned char Reserved1;
260 unsigned char Reserved2;
261 unsigned char Reserved3;
262 unsigned _supla_int_t DefinitionId;
263 unsigned _supla_int16_t DefinitionVersion;
264 unsigned _supla_int16_t ParamsSize;
265 unsigned char ParamsSha256[32];
267 unsigned char Reserved4;
271 unsigned _supla_int_t SessionId;
272 unsigned char InstanceId;
273 unsigned char Reserved1;
274 unsigned char Reserved2;
275 unsigned char Reserved3;
276 unsigned _supla_int_t DefinitionId;
277 unsigned _supla_int16_t FromDefinitionVersion;
278 unsigned _supla_int16_t ToDefinitionVersion;
279 unsigned _supla_int16_t ParamsSize;
280 unsigned char ParamsSha256[32];
282 unsigned char Reserved4;
286 unsigned _supla_int_t SessionId;
287 unsigned _supla_int16_t Offset;
289 char Data[SUPLA_CALCFG_SUPLET_INSTANCE_CHUNK_MAXSIZE];
293 unsigned _supla_int_t SessionId;
306static_assert((
unsigned int)10 ==
308static_assert((
unsigned int)112 ==
315static_assert((
unsigned int)8 ==
317static_assert((
unsigned int)109 ==
323static_assert((
unsigned int)52 ==
329 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
331 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
333 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
335 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
337 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
339 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
341 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
343 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
345 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
347 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
349 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
351 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
353 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
355 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
357 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
359 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
361 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
363 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
365 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
367 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
369 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
371 (
unsigned int)SUPLA_CALCFG_DATA_MAXSIZE);
Definition proto_suplet.h:98
Definition proto_suplet.h:112
Definition proto_suplet.h:233
Definition proto_suplet.h:243
Definition proto_suplet.h:151
Definition proto_suplet.h:143
Definition proto_suplet.h:121
Definition proto_suplet.h:134
Definition proto_suplet.h:250
Definition proto_suplet.h:256
Definition proto_suplet.h:285
Definition proto_suplet.h:222
Definition proto_suplet.h:212
Definition proto_suplet.h:161
Definition proto_suplet.h:197
Definition proto_suplet.h:168
Definition proto_suplet.h:181
Definition proto_suplet.h:190
Definition proto_suplet.h:270
Definition proto_suplet.h:93
Definition proto_suplet.h:78
Definition proto_suplet.h:292