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 bool createElements(
const Definition &definition,
30enum class Category : uint8_t {
38enum class Kind : uint8_t {
41 VirtualBinarySensor = 2,
47enum class ChannelKind : uint8_t {
50 VirtualBinarySensor = 2,
51 VirtualThermometer = 3,
54enum class ParameterType : uint8_t {
66enum class ParameterLifecycle : uint8_t {
74 Category category = Category::Unknown;
75 Kind kind = Kind::Unknown;
76 uint32_t definitionId = 0;
77 uint16_t minDefinitionVersion = 0;
78 uint16_t maxDefinitionVersion = 0;
79 uint8_t minSchemaVersion = 1;
80 uint8_t maxSchemaVersion = 1;
81 uint8_t handlerVersion = 1;
82 uint8_t maxInstances = 1;
83 uint8_t supportsDownloadedDefinition = 0;
87 uint8_t channelId = kInvalidChannelId;
88 ChannelKind kind = ChannelKind::Unknown;
89 int32_t defaultFunction = 0;
90 const char *caption =
nullptr;
94 const char *key =
nullptr;
95 ParameterType type = ParameterType::Unknown;
96 ParameterLifecycle lifecycle = ParameterLifecycle::Editable;
97 int32_t min = INT32_MIN;
98 int32_t max = INT32_MAX;
99 int32_t defaultNumber = 0;
100 const char *defaultText =
nullptr;
101 const char *enumValues =
nullptr;
102 uint8_t required = 0;
103 uint8_t hasDefault = 0;
104 uint8_t affectsTopology = 0;
107constexpr uint32_t kInvalidDefinitionId = 0;
108constexpr uint32_t kServerDefinitionIdMin = 1000;
110inline bool isValidDefinitionId(uint32_t definitionId) {
111 return definitionId != kInvalidDefinitionId;
114inline bool isServerDefinitionId(uint32_t definitionId) {
115 return definitionId >= kServerDefinitionIdMin;
118inline bool isFirmwarePrivateDefinitionId(uint32_t definitionId) {
119 return definitionId > kInvalidDefinitionId &&
120 definitionId < kServerDefinitionIdMin;
124 Category category = Category::Unknown;
125 Kind kind = Kind::Unknown;
126 uint8_t schemaVersion = 1;
127 uint8_t handlerVersion = 1;
128 uint32_t definitionId = 0;
129 uint16_t definitionVersion = 0;
130 uint8_t maxInstances = 1;
131 const char *name =
nullptr;
133 uint8_t channelCount = 0;
135 uint8_t parameterCount = 0;
137 const char *definitionJson =
nullptr;
138 uint16_t definitionJsonSize = 0;
141bool getDefinitionChannelIds(
const Definition &definition,
Base class for all elements of SuplaDevice.
Definition element.h:27
Definition channel_map.h:25
Definition definition.h:19
Definition definition.h:73
Definition definition.h:86
Definition definition.h:123
Definition definition.h:93