4#ifndef SRC_SUPLA_SUPLET_DEFINITION_H_
5#define SRC_SUPLA_SUPLET_DEFINITION_H_
8#include <supla-common/proto.h>
9#include <supla/suplet/channel_map.h>
23 virtual uint8_t getRequiredElementCount(
27 virtual bool createElements(
const Definition &definition,
34enum class Category : uint8_t {
42enum class Kind : uint8_t {
45 VirtualBinarySensor = 2,
51enum class ChannelKind : uint8_t {
54 VirtualBinarySensor = 2,
55 VirtualThermometer = 3,
58enum class ParameterType : uint8_t {
70enum class ParameterLifecycle : uint8_t {
78 Category category = Category::Unknown;
79 Kind kind = Kind::Unknown;
80 uint32_t definitionId = 0;
81 uint16_t minDefinitionVersion = 0;
82 uint16_t maxDefinitionVersion = 0;
83 uint8_t minSchemaVersion = 1;
84 uint8_t maxSchemaVersion = 1;
85 uint8_t handlerVersion = 1;
86 uint8_t maxInstances = 1;
87 uint8_t supportsDownloadedDefinition = 0;
88 uint32_t maxArtifactSize = 0;
93 uint8_t channelId = kInvalidChannelId;
94 ChannelKind kind = ChannelKind::Unknown;
95 int32_t defaultFunction = 0;
96 const char *caption =
nullptr;
100 const char *key =
nullptr;
101 ParameterType type = ParameterType::Unknown;
102 ParameterLifecycle lifecycle = ParameterLifecycle::Editable;
103 int32_t min = INT32_MIN;
104 int32_t max = INT32_MAX;
105 int32_t defaultNumber = 0;
106 const char *defaultText =
nullptr;
107 const char *enumValues =
nullptr;
108 uint8_t required = 0;
109 uint8_t hasDefault = 0;
110 uint8_t affectsTopology = 0;
113constexpr uint32_t kInvalidDefinitionId = 0;
114constexpr uint32_t kServerDefinitionIdMin = 1000;
116inline bool isValidDefinitionId(uint32_t definitionId) {
117 return definitionId != kInvalidDefinitionId;
120inline bool isServerDefinitionId(uint32_t definitionId) {
121 return definitionId >= kServerDefinitionIdMin;
124inline bool isFirmwarePrivateDefinitionId(uint32_t definitionId) {
125 return definitionId > kInvalidDefinitionId &&
126 definitionId < kServerDefinitionIdMin;
130 Category category = Category::Unknown;
131 Kind kind = Kind::Unknown;
132 uint8_t schemaVersion = 1;
133 uint8_t handlerVersion = 1;
134 uint32_t definitionId = 0;
135 uint16_t definitionVersion = 0;
136 uint8_t maxInstances = 1;
137 uint32_t maxArtifactSize = 0;
138 const char *name =
nullptr;
140 uint8_t channelCount = 0;
142 uint8_t parameterCount = 0;
144 const char *definitionJson =
nullptr;
145 uint16_t definitionJsonSize = 0;
148bool getDefinitionChannelIds(
const Definition &definition,
Base class for all elements of SuplaDevice.
Definition element.h:30
Definition channel_map.h:25
Definition definition.h:19
Definition definition.h:77
Definition definition.h:92
Definition definition.h:129
Definition definition.h:99