supla-device
Loading...
Searching...
No Matches
json_definition.h
1// SPDX-FileCopyrightText: AC SOFTWARE SP. Z O.O.
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#ifndef SRC_SUPLA_SUPLET_JSON_DEFINITION_H_
5#define SRC_SUPLA_SUPLET_JSON_DEFINITION_H_
6
7#include <stdint.h>
8#include <supla/suplet/definition.h>
9
10#ifndef SUPLA_SUPLET_MAX_NAME_SIZE
11#define SUPLA_SUPLET_MAX_NAME_SIZE 48
12#endif
13
14#ifndef SUPLA_SUPLET_MAX_CAPTION_SIZE
15#define SUPLA_SUPLET_MAX_CAPTION_SIZE 48
16#endif
17
18#ifndef SUPLA_SUPLET_MAX_PARAMETERS
19#define SUPLA_SUPLET_MAX_PARAMETERS 16
20#endif
21
22#ifndef SUPLA_SUPLET_MAX_PARAMETER_KEY_SIZE
23#define SUPLA_SUPLET_MAX_PARAMETER_KEY_SIZE 32
24#endif
25
26#ifndef SUPLA_SUPLET_MAX_PARAMETER_TEXT_SIZE
27#define SUPLA_SUPLET_MAX_PARAMETER_TEXT_SIZE 64
28#endif
29
30namespace Supla {
31namespace Suplet {
32
34 public:
36
37 void clear();
38 Definition *getDefinition();
39 const Definition *getDefinition() const;
40 ChannelDefinition *getChannel(uint8_t index);
41 ParameterDefinition *getParameter(uint8_t index);
42 char *getNameBuffer();
43 char *getCaptionBuffer(uint8_t index);
44 char *getParameterKeyBuffer(uint8_t index);
45 char *getParameterDefaultTextBuffer(uint8_t index);
46 char *getParameterEnumValuesBuffer(uint8_t index);
47
48 private:
49 Definition definition;
50 ChannelDefinition channels[SUPLA_SUPLET_MAX_CHANNELS_PER_INSTANCE];
51 ParameterDefinition parameters[SUPLA_SUPLET_MAX_PARAMETERS];
52 char name[SUPLA_SUPLET_MAX_NAME_SIZE];
53 char captions[SUPLA_SUPLET_MAX_CHANNELS_PER_INSTANCE]
54 [SUPLA_SUPLET_MAX_CAPTION_SIZE];
55 char parameterKeys[SUPLA_SUPLET_MAX_PARAMETERS]
56 [SUPLA_SUPLET_MAX_PARAMETER_KEY_SIZE];
57 char parameterDefaultText[SUPLA_SUPLET_MAX_PARAMETERS]
58 [SUPLA_SUPLET_MAX_PARAMETER_TEXT_SIZE];
59 char parameterEnumValues[SUPLA_SUPLET_MAX_PARAMETERS]
60 [SUPLA_SUPLET_MAX_PARAMETER_TEXT_SIZE];
61};
62
64 public:
65 static bool parse(const char *json, JsonDefinition *output);
66 static bool parseCategory(const char *value, Category *category);
67 static bool parseKind(const char *value, Kind *kind);
68 static bool parseChannelKind(const char *value, ChannelKind *kind);
69 static bool parseParameterType(const char *value, ParameterType *type);
70 static bool parseParameterLifecycle(const char *value,
71 ParameterLifecycle *lifecycle);
72 static bool parseDefaultFunction(const char *value, int32_t *function);
73};
74
75} // namespace Suplet
76} // namespace Supla
77
78#endif // SRC_SUPLA_SUPLET_JSON_DEFINITION_H_
Definition json_definition.h:63
Definition json_definition.h:33
Definition definition.h:86
Definition definition.h:123
Definition definition.h:93