You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/07/18 14:28:59 UTC
[plc4x] branch develop updated: feat(cbus): implemented trigger control application
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new 9b9f88209 feat(cbus): implemented trigger control application
9b9f88209 is described below
commit 9b9f8820986461f9affefc6e007b78260b3f49ac
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Mon Jul 18 16:28:52 2022 +0200
feat(cbus): implemented trigger control application
---
plc4go/protocols/cbus/readwrite/ParserHelper.go | 4 +
plc4go/protocols/cbus/readwrite/XmlParserHelper.go | 4 +
plc4go/protocols/cbus/readwrite/model/Language.go | 665 ++++++++++++++
.../cbus/readwrite/model/LightingDataLabel.go | 14 +-
.../cbus/readwrite/model/LightingLabelFlavour.go | 26 +-
.../cbus/readwrite/model/LightingLabelOptions.go | 38 +-
.../cbus/readwrite/model/LightingLanguage.go | 665 --------------
.../cbus/readwrite/model/SALDataTriggerControl.go | 54 +-
.../protocols/cbus/readwrite/model/StaticHelper.go | 10 +
.../readwrite/model/TriggerControlCommandType.go | 153 ++++
.../model/TriggerControlCommandTypeContainer.go | 966 +++++++++++++++++++++
.../cbus/readwrite/model/TriggerControlData.go | 294 +++++++
.../model/TriggerControlDataIndicatorKill.go | 155 ++++
.../readwrite/model/TriggerControlDataLabel.go | 300 +++++++
.../model/TriggerControlDataTriggerEvent.go | 191 ++++
.../model/TriggerControlDataTriggerMin.go | 155 ++++
.../readwrite/model/TriggerControlLabelFlavour.go | 145 ++++
...belOptions.go => TriggerControlLabelOptions.go} | 126 +--
.../readwrite/model/TriggerControlLabelType.go | 145 ++++
.../java/cbus/readwrite/utils/StaticHelper.java | 11 +
.../org/apache/plc4x/java/cbus/ReferenceTest.java | 35 +
.../src/main/resources/protocols/cbus/c-bus.mspec | 129 ++-
22 files changed, 3504 insertions(+), 781 deletions(-)
diff --git a/plc4go/protocols/cbus/readwrite/ParserHelper.go b/plc4go/protocols/cbus/readwrite/ParserHelper.go
index 72a04d6bf..258ca34e5 100644
--- a/plc4go/protocols/cbus/readwrite/ParserHelper.go
+++ b/plc4go/protocols/cbus/readwrite/ParserHelper.go
@@ -40,6 +40,8 @@ func (m CbusParserHelper) Parse(typeName string, arguments []string, io utils.Re
return model.ApplicationAddress1Parse(io)
case "RequestContext":
return model.RequestContextParse(io)
+ case "TriggerControlData":
+ return model.TriggerControlDataParse(io)
case "NetworkNumber":
return model.NetworkNumberParse(io)
case "RequestTermination":
@@ -173,6 +175,8 @@ func (m CbusParserHelper) Parse(typeName string, arguments []string, io utils.Re
return model.ExtendedStatusHeaderParse(io)
case "CustomTypes":
return model.CustomTypesParse(io)
+ case "TriggerControlLabelOptions":
+ return model.TriggerControlLabelOptionsParse(io)
case "StatusHeader":
return model.StatusHeaderParse(io)
case "EncodedReply":
diff --git a/plc4go/protocols/cbus/readwrite/XmlParserHelper.go b/plc4go/protocols/cbus/readwrite/XmlParserHelper.go
index a90e54b7b..02a84b13d 100644
--- a/plc4go/protocols/cbus/readwrite/XmlParserHelper.go
+++ b/plc4go/protocols/cbus/readwrite/XmlParserHelper.go
@@ -50,6 +50,8 @@ func (m CbusXmlParserHelper) Parse(typeName string, xmlString string, parserArgu
return model.ApplicationAddress1Parse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "RequestContext":
return model.RequestContextParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+ case "TriggerControlData":
+ return model.TriggerControlDataParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "NetworkNumber":
return model.NetworkNumberParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "RequestTermination":
@@ -198,6 +200,8 @@ func (m CbusXmlParserHelper) Parse(typeName string, xmlString string, parserArgu
return model.ExtendedStatusHeaderParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "CustomTypes":
return model.CustomTypesParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+ case "TriggerControlLabelOptions":
+ return model.TriggerControlLabelOptionsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "StatusHeader":
return model.StatusHeaderParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "EncodedReply":
diff --git a/plc4go/protocols/cbus/readwrite/model/Language.go b/plc4go/protocols/cbus/readwrite/model/Language.go
new file mode 100644
index 000000000..96cbac723
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/Language.go
@@ -0,0 +1,665 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+ "github.com/rs/zerolog/log"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// Language is an enum
+type Language uint8
+
+type ILanguage interface {
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+const (
+ Language_NO_LANGUAGE Language = 0x00
+ Language_ENGLISH Language = 0x01
+ Language_ENGLISH_AUSTRALIA Language = 0x02
+ Language_ENGLISH_BELIZE Language = 0x03
+ Language_ENGLISH_CANADA Language = 0x04
+ Language_ENGLISH_CARRIBEAN Language = 0x05
+ Language_ENGLISH_IRELAND Language = 0x06
+ Language_ENGLISH_JAMAICA Language = 0x07
+ Language_ENGLISH_NEW_ZEALAND Language = 0x08
+ Language_ENGLISH_PHILIPPINES Language = 0x09
+ Language_ENGLISH_SOUTH_AFRICA Language = 0x0A
+ Language_ENGLISH_TRINIDAD Language = 0x0B
+ Language_ENGLISH_UK Language = 0x0C
+ Language_ENGLISH_USA Language = 0x0D
+ Language_ENGLISH_ZIMBABWE Language = 0x0E
+ Language_AFRIKAANS Language = 0x40
+ Language_BASQUE Language = 0x41
+ Language_CATALAN Language = 0x42
+ Language_DANISH Language = 0x43
+ Language_DUTCH_BELGIUM Language = 0x44
+ Language_DUTCH_NETHERLANDS Language = 0x45
+ Language_FAEROESE Language = 0x46
+ Language_FINNISH Language = 0x47
+ Language_FRENCH_BELGIUM Language = 0x48
+ Language_FRENCH_CANADA Language = 0x49
+ Language_FRENCH Language = 0x4A
+ Language_FRENCH_LUXEMBOURG Language = 0x4B
+ Language_FRENCH_MONACO Language = 0x4C
+ Language_FRENCH_SWITZERLAND Language = 0x4D
+ Language_GALICIAN Language = 0x4E
+ Language_GERMAN_AUSTRIA Language = 0x4F
+ Language_GERMAN Language = 0x50
+ Language_GERMAN_LIECHTENSTEIN Language = 0x51
+ Language_GERMAN_LUXEMBOURG Language = 0x52
+ Language_GERMAN_SWITZERLAND Language = 0x53
+ Language_ICELANDIC Language = 0x54
+ Language_INDONESIAN Language = 0x55
+ Language_ITALIAN Language = 0x56
+ Language_ITALIAN_SWITZERLAND Language = 0x57
+ Language_MALAY_BRUNEI Language = 0x58
+ Language_MALAY Language = 0x59
+ Language_NORWEGIAN Language = 0x5A
+ Language_NORWEGIAN_NYNORSK Language = 0x5B
+ Language_PORTUGUESE_BRAZIL Language = 0x5C
+ Language_PORTUGUESE Language = 0x5D
+ Language_SPANISH_ARGENTINE Language = 0x5E
+ Language_SPANISH_BOLIVIA Language = 0x5F
+ Language_SPANISH_CHILE Language = 0x60
+ Language_SPANISH_COLOMBIA Language = 0x61
+ Language_SPANISH_COSTA_RICA Language = 0x62
+ Language_SPANISH_DOMINICAN_REPUBLIC Language = 0x63
+ Language_SPANISH_ECUADOR Language = 0x64
+ Language_SPANISH_EL_SALVADOR Language = 0x65
+ Language_SPANISH_GUATEMALA Language = 0x66
+ Language_SPANISH_HONDURAS Language = 0x67
+ Language_SPANISH Language = 0x68
+ Language_SPANISH_MEXICO Language = 0x69
+ Language_SPANISH_NICARAGUA Language = 0x6A
+ Language_SPANISH_PANAMA Language = 0x6B
+ Language_SPANISH_PARAGUAY Language = 0x6C
+ Language_SPANISH_PERU Language = 0x6D
+ Language_SPANISH_PERTO_RICO Language = 0x6E
+ Language_SPANISH_TRADITIONAL Language = 0x6F
+ Language_SPANISH_URUGUAY Language = 0x70
+ Language_SPANISH_VENEZUELA Language = 0x71
+ Language_SWAHILI Language = 0x72
+ Language_SWEDISH Language = 0x73
+ Language_SWEDISH_FINLAND Language = 0x74
+ Language_CHINESE_CP936 Language = 0xCA
+)
+
+var LanguageValues []Language
+
+func init() {
+ _ = errors.New
+ LanguageValues = []Language{
+ Language_NO_LANGUAGE,
+ Language_ENGLISH,
+ Language_ENGLISH_AUSTRALIA,
+ Language_ENGLISH_BELIZE,
+ Language_ENGLISH_CANADA,
+ Language_ENGLISH_CARRIBEAN,
+ Language_ENGLISH_IRELAND,
+ Language_ENGLISH_JAMAICA,
+ Language_ENGLISH_NEW_ZEALAND,
+ Language_ENGLISH_PHILIPPINES,
+ Language_ENGLISH_SOUTH_AFRICA,
+ Language_ENGLISH_TRINIDAD,
+ Language_ENGLISH_UK,
+ Language_ENGLISH_USA,
+ Language_ENGLISH_ZIMBABWE,
+ Language_AFRIKAANS,
+ Language_BASQUE,
+ Language_CATALAN,
+ Language_DANISH,
+ Language_DUTCH_BELGIUM,
+ Language_DUTCH_NETHERLANDS,
+ Language_FAEROESE,
+ Language_FINNISH,
+ Language_FRENCH_BELGIUM,
+ Language_FRENCH_CANADA,
+ Language_FRENCH,
+ Language_FRENCH_LUXEMBOURG,
+ Language_FRENCH_MONACO,
+ Language_FRENCH_SWITZERLAND,
+ Language_GALICIAN,
+ Language_GERMAN_AUSTRIA,
+ Language_GERMAN,
+ Language_GERMAN_LIECHTENSTEIN,
+ Language_GERMAN_LUXEMBOURG,
+ Language_GERMAN_SWITZERLAND,
+ Language_ICELANDIC,
+ Language_INDONESIAN,
+ Language_ITALIAN,
+ Language_ITALIAN_SWITZERLAND,
+ Language_MALAY_BRUNEI,
+ Language_MALAY,
+ Language_NORWEGIAN,
+ Language_NORWEGIAN_NYNORSK,
+ Language_PORTUGUESE_BRAZIL,
+ Language_PORTUGUESE,
+ Language_SPANISH_ARGENTINE,
+ Language_SPANISH_BOLIVIA,
+ Language_SPANISH_CHILE,
+ Language_SPANISH_COLOMBIA,
+ Language_SPANISH_COSTA_RICA,
+ Language_SPANISH_DOMINICAN_REPUBLIC,
+ Language_SPANISH_ECUADOR,
+ Language_SPANISH_EL_SALVADOR,
+ Language_SPANISH_GUATEMALA,
+ Language_SPANISH_HONDURAS,
+ Language_SPANISH,
+ Language_SPANISH_MEXICO,
+ Language_SPANISH_NICARAGUA,
+ Language_SPANISH_PANAMA,
+ Language_SPANISH_PARAGUAY,
+ Language_SPANISH_PERU,
+ Language_SPANISH_PERTO_RICO,
+ Language_SPANISH_TRADITIONAL,
+ Language_SPANISH_URUGUAY,
+ Language_SPANISH_VENEZUELA,
+ Language_SWAHILI,
+ Language_SWEDISH,
+ Language_SWEDISH_FINLAND,
+ Language_CHINESE_CP936,
+ }
+}
+
+func LanguageByValue(value uint8) (enum Language, ok bool) {
+ switch value {
+ case 0x00:
+ return Language_NO_LANGUAGE, true
+ case 0x01:
+ return Language_ENGLISH, true
+ case 0x02:
+ return Language_ENGLISH_AUSTRALIA, true
+ case 0x03:
+ return Language_ENGLISH_BELIZE, true
+ case 0x04:
+ return Language_ENGLISH_CANADA, true
+ case 0x05:
+ return Language_ENGLISH_CARRIBEAN, true
+ case 0x06:
+ return Language_ENGLISH_IRELAND, true
+ case 0x07:
+ return Language_ENGLISH_JAMAICA, true
+ case 0x08:
+ return Language_ENGLISH_NEW_ZEALAND, true
+ case 0x09:
+ return Language_ENGLISH_PHILIPPINES, true
+ case 0x0A:
+ return Language_ENGLISH_SOUTH_AFRICA, true
+ case 0x0B:
+ return Language_ENGLISH_TRINIDAD, true
+ case 0x0C:
+ return Language_ENGLISH_UK, true
+ case 0x0D:
+ return Language_ENGLISH_USA, true
+ case 0x0E:
+ return Language_ENGLISH_ZIMBABWE, true
+ case 0x40:
+ return Language_AFRIKAANS, true
+ case 0x41:
+ return Language_BASQUE, true
+ case 0x42:
+ return Language_CATALAN, true
+ case 0x43:
+ return Language_DANISH, true
+ case 0x44:
+ return Language_DUTCH_BELGIUM, true
+ case 0x45:
+ return Language_DUTCH_NETHERLANDS, true
+ case 0x46:
+ return Language_FAEROESE, true
+ case 0x47:
+ return Language_FINNISH, true
+ case 0x48:
+ return Language_FRENCH_BELGIUM, true
+ case 0x49:
+ return Language_FRENCH_CANADA, true
+ case 0x4A:
+ return Language_FRENCH, true
+ case 0x4B:
+ return Language_FRENCH_LUXEMBOURG, true
+ case 0x4C:
+ return Language_FRENCH_MONACO, true
+ case 0x4D:
+ return Language_FRENCH_SWITZERLAND, true
+ case 0x4E:
+ return Language_GALICIAN, true
+ case 0x4F:
+ return Language_GERMAN_AUSTRIA, true
+ case 0x50:
+ return Language_GERMAN, true
+ case 0x51:
+ return Language_GERMAN_LIECHTENSTEIN, true
+ case 0x52:
+ return Language_GERMAN_LUXEMBOURG, true
+ case 0x53:
+ return Language_GERMAN_SWITZERLAND, true
+ case 0x54:
+ return Language_ICELANDIC, true
+ case 0x55:
+ return Language_INDONESIAN, true
+ case 0x56:
+ return Language_ITALIAN, true
+ case 0x57:
+ return Language_ITALIAN_SWITZERLAND, true
+ case 0x58:
+ return Language_MALAY_BRUNEI, true
+ case 0x59:
+ return Language_MALAY, true
+ case 0x5A:
+ return Language_NORWEGIAN, true
+ case 0x5B:
+ return Language_NORWEGIAN_NYNORSK, true
+ case 0x5C:
+ return Language_PORTUGUESE_BRAZIL, true
+ case 0x5D:
+ return Language_PORTUGUESE, true
+ case 0x5E:
+ return Language_SPANISH_ARGENTINE, true
+ case 0x5F:
+ return Language_SPANISH_BOLIVIA, true
+ case 0x60:
+ return Language_SPANISH_CHILE, true
+ case 0x61:
+ return Language_SPANISH_COLOMBIA, true
+ case 0x62:
+ return Language_SPANISH_COSTA_RICA, true
+ case 0x63:
+ return Language_SPANISH_DOMINICAN_REPUBLIC, true
+ case 0x64:
+ return Language_SPANISH_ECUADOR, true
+ case 0x65:
+ return Language_SPANISH_EL_SALVADOR, true
+ case 0x66:
+ return Language_SPANISH_GUATEMALA, true
+ case 0x67:
+ return Language_SPANISH_HONDURAS, true
+ case 0x68:
+ return Language_SPANISH, true
+ case 0x69:
+ return Language_SPANISH_MEXICO, true
+ case 0x6A:
+ return Language_SPANISH_NICARAGUA, true
+ case 0x6B:
+ return Language_SPANISH_PANAMA, true
+ case 0x6C:
+ return Language_SPANISH_PARAGUAY, true
+ case 0x6D:
+ return Language_SPANISH_PERU, true
+ case 0x6E:
+ return Language_SPANISH_PERTO_RICO, true
+ case 0x6F:
+ return Language_SPANISH_TRADITIONAL, true
+ case 0x70:
+ return Language_SPANISH_URUGUAY, true
+ case 0x71:
+ return Language_SPANISH_VENEZUELA, true
+ case 0x72:
+ return Language_SWAHILI, true
+ case 0x73:
+ return Language_SWEDISH, true
+ case 0x74:
+ return Language_SWEDISH_FINLAND, true
+ case 0xCA:
+ return Language_CHINESE_CP936, true
+ }
+ return 0, false
+}
+
+func LanguageByName(value string) (enum Language, ok bool) {
+ switch value {
+ case "NO_LANGUAGE":
+ return Language_NO_LANGUAGE, true
+ case "ENGLISH":
+ return Language_ENGLISH, true
+ case "ENGLISH_AUSTRALIA":
+ return Language_ENGLISH_AUSTRALIA, true
+ case "ENGLISH_BELIZE":
+ return Language_ENGLISH_BELIZE, true
+ case "ENGLISH_CANADA":
+ return Language_ENGLISH_CANADA, true
+ case "ENGLISH_CARRIBEAN":
+ return Language_ENGLISH_CARRIBEAN, true
+ case "ENGLISH_IRELAND":
+ return Language_ENGLISH_IRELAND, true
+ case "ENGLISH_JAMAICA":
+ return Language_ENGLISH_JAMAICA, true
+ case "ENGLISH_NEW_ZEALAND":
+ return Language_ENGLISH_NEW_ZEALAND, true
+ case "ENGLISH_PHILIPPINES":
+ return Language_ENGLISH_PHILIPPINES, true
+ case "ENGLISH_SOUTH_AFRICA":
+ return Language_ENGLISH_SOUTH_AFRICA, true
+ case "ENGLISH_TRINIDAD":
+ return Language_ENGLISH_TRINIDAD, true
+ case "ENGLISH_UK":
+ return Language_ENGLISH_UK, true
+ case "ENGLISH_USA":
+ return Language_ENGLISH_USA, true
+ case "ENGLISH_ZIMBABWE":
+ return Language_ENGLISH_ZIMBABWE, true
+ case "AFRIKAANS":
+ return Language_AFRIKAANS, true
+ case "BASQUE":
+ return Language_BASQUE, true
+ case "CATALAN":
+ return Language_CATALAN, true
+ case "DANISH":
+ return Language_DANISH, true
+ case "DUTCH_BELGIUM":
+ return Language_DUTCH_BELGIUM, true
+ case "DUTCH_NETHERLANDS":
+ return Language_DUTCH_NETHERLANDS, true
+ case "FAEROESE":
+ return Language_FAEROESE, true
+ case "FINNISH":
+ return Language_FINNISH, true
+ case "FRENCH_BELGIUM":
+ return Language_FRENCH_BELGIUM, true
+ case "FRENCH_CANADA":
+ return Language_FRENCH_CANADA, true
+ case "FRENCH":
+ return Language_FRENCH, true
+ case "FRENCH_LUXEMBOURG":
+ return Language_FRENCH_LUXEMBOURG, true
+ case "FRENCH_MONACO":
+ return Language_FRENCH_MONACO, true
+ case "FRENCH_SWITZERLAND":
+ return Language_FRENCH_SWITZERLAND, true
+ case "GALICIAN":
+ return Language_GALICIAN, true
+ case "GERMAN_AUSTRIA":
+ return Language_GERMAN_AUSTRIA, true
+ case "GERMAN":
+ return Language_GERMAN, true
+ case "GERMAN_LIECHTENSTEIN":
+ return Language_GERMAN_LIECHTENSTEIN, true
+ case "GERMAN_LUXEMBOURG":
+ return Language_GERMAN_LUXEMBOURG, true
+ case "GERMAN_SWITZERLAND":
+ return Language_GERMAN_SWITZERLAND, true
+ case "ICELANDIC":
+ return Language_ICELANDIC, true
+ case "INDONESIAN":
+ return Language_INDONESIAN, true
+ case "ITALIAN":
+ return Language_ITALIAN, true
+ case "ITALIAN_SWITZERLAND":
+ return Language_ITALIAN_SWITZERLAND, true
+ case "MALAY_BRUNEI":
+ return Language_MALAY_BRUNEI, true
+ case "MALAY":
+ return Language_MALAY, true
+ case "NORWEGIAN":
+ return Language_NORWEGIAN, true
+ case "NORWEGIAN_NYNORSK":
+ return Language_NORWEGIAN_NYNORSK, true
+ case "PORTUGUESE_BRAZIL":
+ return Language_PORTUGUESE_BRAZIL, true
+ case "PORTUGUESE":
+ return Language_PORTUGUESE, true
+ case "SPANISH_ARGENTINE":
+ return Language_SPANISH_ARGENTINE, true
+ case "SPANISH_BOLIVIA":
+ return Language_SPANISH_BOLIVIA, true
+ case "SPANISH_CHILE":
+ return Language_SPANISH_CHILE, true
+ case "SPANISH_COLOMBIA":
+ return Language_SPANISH_COLOMBIA, true
+ case "SPANISH_COSTA_RICA":
+ return Language_SPANISH_COSTA_RICA, true
+ case "SPANISH_DOMINICAN_REPUBLIC":
+ return Language_SPANISH_DOMINICAN_REPUBLIC, true
+ case "SPANISH_ECUADOR":
+ return Language_SPANISH_ECUADOR, true
+ case "SPANISH_EL_SALVADOR":
+ return Language_SPANISH_EL_SALVADOR, true
+ case "SPANISH_GUATEMALA":
+ return Language_SPANISH_GUATEMALA, true
+ case "SPANISH_HONDURAS":
+ return Language_SPANISH_HONDURAS, true
+ case "SPANISH":
+ return Language_SPANISH, true
+ case "SPANISH_MEXICO":
+ return Language_SPANISH_MEXICO, true
+ case "SPANISH_NICARAGUA":
+ return Language_SPANISH_NICARAGUA, true
+ case "SPANISH_PANAMA":
+ return Language_SPANISH_PANAMA, true
+ case "SPANISH_PARAGUAY":
+ return Language_SPANISH_PARAGUAY, true
+ case "SPANISH_PERU":
+ return Language_SPANISH_PERU, true
+ case "SPANISH_PERTO_RICO":
+ return Language_SPANISH_PERTO_RICO, true
+ case "SPANISH_TRADITIONAL":
+ return Language_SPANISH_TRADITIONAL, true
+ case "SPANISH_URUGUAY":
+ return Language_SPANISH_URUGUAY, true
+ case "SPANISH_VENEZUELA":
+ return Language_SPANISH_VENEZUELA, true
+ case "SWAHILI":
+ return Language_SWAHILI, true
+ case "SWEDISH":
+ return Language_SWEDISH, true
+ case "SWEDISH_FINLAND":
+ return Language_SWEDISH_FINLAND, true
+ case "CHINESE_CP936":
+ return Language_CHINESE_CP936, true
+ }
+ return 0, false
+}
+
+func LanguageKnows(value uint8) bool {
+ for _, typeValue := range LanguageValues {
+ if uint8(typeValue) == value {
+ return true
+ }
+ }
+ return false
+}
+
+func CastLanguage(structType interface{}) Language {
+ castFunc := func(typ interface{}) Language {
+ if sLanguage, ok := typ.(Language); ok {
+ return sLanguage
+ }
+ return 0
+ }
+ return castFunc(structType)
+}
+
+func (m Language) GetLengthInBits() uint16 {
+ return 8
+}
+
+func (m Language) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func LanguageParse(readBuffer utils.ReadBuffer) (Language, error) {
+ val, err := readBuffer.ReadUint8("Language", 8)
+ if err != nil {
+ return 0, errors.Wrap(err, "error reading Language")
+ }
+ if enum, ok := LanguageByValue(val); !ok {
+ log.Debug().Msgf("no value %x found for RequestType", val)
+ return Language(val), nil
+ } else {
+ return enum, nil
+ }
+}
+
+func (e Language) Serialize(writeBuffer utils.WriteBuffer) error {
+ return writeBuffer.WriteUint8("Language", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
+}
+
+// PLC4XEnumName returns the name that is used in code to identify this enum
+func (e Language) PLC4XEnumName() string {
+ switch e {
+ case Language_NO_LANGUAGE:
+ return "NO_LANGUAGE"
+ case Language_ENGLISH:
+ return "ENGLISH"
+ case Language_ENGLISH_AUSTRALIA:
+ return "ENGLISH_AUSTRALIA"
+ case Language_ENGLISH_BELIZE:
+ return "ENGLISH_BELIZE"
+ case Language_ENGLISH_CANADA:
+ return "ENGLISH_CANADA"
+ case Language_ENGLISH_CARRIBEAN:
+ return "ENGLISH_CARRIBEAN"
+ case Language_ENGLISH_IRELAND:
+ return "ENGLISH_IRELAND"
+ case Language_ENGLISH_JAMAICA:
+ return "ENGLISH_JAMAICA"
+ case Language_ENGLISH_NEW_ZEALAND:
+ return "ENGLISH_NEW_ZEALAND"
+ case Language_ENGLISH_PHILIPPINES:
+ return "ENGLISH_PHILIPPINES"
+ case Language_ENGLISH_SOUTH_AFRICA:
+ return "ENGLISH_SOUTH_AFRICA"
+ case Language_ENGLISH_TRINIDAD:
+ return "ENGLISH_TRINIDAD"
+ case Language_ENGLISH_UK:
+ return "ENGLISH_UK"
+ case Language_ENGLISH_USA:
+ return "ENGLISH_USA"
+ case Language_ENGLISH_ZIMBABWE:
+ return "ENGLISH_ZIMBABWE"
+ case Language_AFRIKAANS:
+ return "AFRIKAANS"
+ case Language_BASQUE:
+ return "BASQUE"
+ case Language_CATALAN:
+ return "CATALAN"
+ case Language_DANISH:
+ return "DANISH"
+ case Language_DUTCH_BELGIUM:
+ return "DUTCH_BELGIUM"
+ case Language_DUTCH_NETHERLANDS:
+ return "DUTCH_NETHERLANDS"
+ case Language_FAEROESE:
+ return "FAEROESE"
+ case Language_FINNISH:
+ return "FINNISH"
+ case Language_FRENCH_BELGIUM:
+ return "FRENCH_BELGIUM"
+ case Language_FRENCH_CANADA:
+ return "FRENCH_CANADA"
+ case Language_FRENCH:
+ return "FRENCH"
+ case Language_FRENCH_LUXEMBOURG:
+ return "FRENCH_LUXEMBOURG"
+ case Language_FRENCH_MONACO:
+ return "FRENCH_MONACO"
+ case Language_FRENCH_SWITZERLAND:
+ return "FRENCH_SWITZERLAND"
+ case Language_GALICIAN:
+ return "GALICIAN"
+ case Language_GERMAN_AUSTRIA:
+ return "GERMAN_AUSTRIA"
+ case Language_GERMAN:
+ return "GERMAN"
+ case Language_GERMAN_LIECHTENSTEIN:
+ return "GERMAN_LIECHTENSTEIN"
+ case Language_GERMAN_LUXEMBOURG:
+ return "GERMAN_LUXEMBOURG"
+ case Language_GERMAN_SWITZERLAND:
+ return "GERMAN_SWITZERLAND"
+ case Language_ICELANDIC:
+ return "ICELANDIC"
+ case Language_INDONESIAN:
+ return "INDONESIAN"
+ case Language_ITALIAN:
+ return "ITALIAN"
+ case Language_ITALIAN_SWITZERLAND:
+ return "ITALIAN_SWITZERLAND"
+ case Language_MALAY_BRUNEI:
+ return "MALAY_BRUNEI"
+ case Language_MALAY:
+ return "MALAY"
+ case Language_NORWEGIAN:
+ return "NORWEGIAN"
+ case Language_NORWEGIAN_NYNORSK:
+ return "NORWEGIAN_NYNORSK"
+ case Language_PORTUGUESE_BRAZIL:
+ return "PORTUGUESE_BRAZIL"
+ case Language_PORTUGUESE:
+ return "PORTUGUESE"
+ case Language_SPANISH_ARGENTINE:
+ return "SPANISH_ARGENTINE"
+ case Language_SPANISH_BOLIVIA:
+ return "SPANISH_BOLIVIA"
+ case Language_SPANISH_CHILE:
+ return "SPANISH_CHILE"
+ case Language_SPANISH_COLOMBIA:
+ return "SPANISH_COLOMBIA"
+ case Language_SPANISH_COSTA_RICA:
+ return "SPANISH_COSTA_RICA"
+ case Language_SPANISH_DOMINICAN_REPUBLIC:
+ return "SPANISH_DOMINICAN_REPUBLIC"
+ case Language_SPANISH_ECUADOR:
+ return "SPANISH_ECUADOR"
+ case Language_SPANISH_EL_SALVADOR:
+ return "SPANISH_EL_SALVADOR"
+ case Language_SPANISH_GUATEMALA:
+ return "SPANISH_GUATEMALA"
+ case Language_SPANISH_HONDURAS:
+ return "SPANISH_HONDURAS"
+ case Language_SPANISH:
+ return "SPANISH"
+ case Language_SPANISH_MEXICO:
+ return "SPANISH_MEXICO"
+ case Language_SPANISH_NICARAGUA:
+ return "SPANISH_NICARAGUA"
+ case Language_SPANISH_PANAMA:
+ return "SPANISH_PANAMA"
+ case Language_SPANISH_PARAGUAY:
+ return "SPANISH_PARAGUAY"
+ case Language_SPANISH_PERU:
+ return "SPANISH_PERU"
+ case Language_SPANISH_PERTO_RICO:
+ return "SPANISH_PERTO_RICO"
+ case Language_SPANISH_TRADITIONAL:
+ return "SPANISH_TRADITIONAL"
+ case Language_SPANISH_URUGUAY:
+ return "SPANISH_URUGUAY"
+ case Language_SPANISH_VENEZUELA:
+ return "SPANISH_VENEZUELA"
+ case Language_SWAHILI:
+ return "SWAHILI"
+ case Language_SWEDISH:
+ return "SWEDISH"
+ case Language_SWEDISH_FINLAND:
+ return "SWEDISH_FINLAND"
+ case Language_CHINESE_CP936:
+ return "CHINESE_CP936"
+ }
+ return ""
+}
+
+func (e Language) String() string {
+ return e.PLC4XEnumName()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingDataLabel.go b/plc4go/protocols/cbus/readwrite/model/LightingDataLabel.go
index ddd6e5463..019dda57a 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingDataLabel.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingDataLabel.go
@@ -36,7 +36,7 @@ type LightingDataLabel interface {
// GetLabelOptions returns LabelOptions (property field)
GetLabelOptions() LightingLabelOptions
// GetLanguage returns Language (property field)
- GetLanguage() *LightingLanguage
+ GetLanguage() *Language
// GetData returns Data (property field)
GetData() []byte
}
@@ -53,7 +53,7 @@ type _LightingDataLabel struct {
*_LightingData
Group byte
LabelOptions LightingLabelOptions
- Language *LightingLanguage
+ Language *Language
Data []byte
}
@@ -88,7 +88,7 @@ func (m *_LightingDataLabel) GetLabelOptions() LightingLabelOptions {
return m.LabelOptions
}
-func (m *_LightingDataLabel) GetLanguage() *LightingLanguage {
+func (m *_LightingDataLabel) GetLanguage() *Language {
return m.Language
}
@@ -102,7 +102,7 @@ func (m *_LightingDataLabel) GetData() []byte {
///////////////////////////////////////////////////////////
// NewLightingDataLabel factory function for _LightingDataLabel
-func NewLightingDataLabel(group byte, labelOptions LightingLabelOptions, language *LightingLanguage, data []byte, commandTypeContainer LightingCommandTypeContainer) *_LightingDataLabel {
+func NewLightingDataLabel(group byte, labelOptions LightingLabelOptions, language *Language, data []byte, commandTypeContainer LightingCommandTypeContainer) *_LightingDataLabel {
_result := &_LightingDataLabel{
Group: group,
LabelOptions: labelOptions,
@@ -189,12 +189,12 @@ func LightingDataLabelParse(readBuffer utils.ReadBuffer, commandTypeContainer Li
}
// Optional Field (language) (Can be skipped, if a given expression evaluates to false)
- var language *LightingLanguage = nil
+ var language *Language = nil
if bool((labelOptions.GetLabelType()) != (LightingLabelType_LOAD_DYNAMIC_ICON)) {
if pullErr := readBuffer.PullContext("language"); pullErr != nil {
return nil, errors.Wrap(pullErr, "Error pulling for language")
}
- _val, _err := LightingLanguageParse(readBuffer)
+ _val, _err := LanguageParse(readBuffer)
if _err != nil {
return nil, errors.Wrap(_err, "Error parsing 'language' field of LightingDataLabel")
}
@@ -254,7 +254,7 @@ func (m *_LightingDataLabel) Serialize(writeBuffer utils.WriteBuffer) error {
}
// Optional Field (language) (Can be skipped, if the value is null)
- var language *LightingLanguage = nil
+ var language *Language = nil
if m.GetLanguage() != nil {
if pushErr := writeBuffer.PushContext("language"); pushErr != nil {
return errors.Wrap(pushErr, "Error pushing for language")
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingLabelFlavour.go b/plc4go/protocols/cbus/readwrite/model/LightingLabelFlavour.go
index c74c977f5..2c80aede8 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingLabelFlavour.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingLabelFlavour.go
@@ -35,10 +35,10 @@ type ILightingLabelFlavour interface {
}
const (
- LightingLabelFlavour_FLAVOUR_1 LightingLabelFlavour = 0
- LightingLabelFlavour_FLAVOUR_2 LightingLabelFlavour = 1
- LightingLabelFlavour_FLAVOUR_3 LightingLabelFlavour = 2
- LightingLabelFlavour_FLAVOUR_4 LightingLabelFlavour = 3
+ LightingLabelFlavour_FLAVOUR_0 LightingLabelFlavour = 0
+ LightingLabelFlavour_FLAVOUR_1 LightingLabelFlavour = 1
+ LightingLabelFlavour_FLAVOUR_2 LightingLabelFlavour = 2
+ LightingLabelFlavour_FLAVOUR_3 LightingLabelFlavour = 3
)
var LightingLabelFlavourValues []LightingLabelFlavour
@@ -46,37 +46,37 @@ var LightingLabelFlavourValues []LightingLabelFlavour
func init() {
_ = errors.New
LightingLabelFlavourValues = []LightingLabelFlavour{
+ LightingLabelFlavour_FLAVOUR_0,
LightingLabelFlavour_FLAVOUR_1,
LightingLabelFlavour_FLAVOUR_2,
LightingLabelFlavour_FLAVOUR_3,
- LightingLabelFlavour_FLAVOUR_4,
}
}
func LightingLabelFlavourByValue(value uint8) (enum LightingLabelFlavour, ok bool) {
switch value {
case 0:
- return LightingLabelFlavour_FLAVOUR_1, true
+ return LightingLabelFlavour_FLAVOUR_0, true
case 1:
- return LightingLabelFlavour_FLAVOUR_2, true
+ return LightingLabelFlavour_FLAVOUR_1, true
case 2:
- return LightingLabelFlavour_FLAVOUR_3, true
+ return LightingLabelFlavour_FLAVOUR_2, true
case 3:
- return LightingLabelFlavour_FLAVOUR_4, true
+ return LightingLabelFlavour_FLAVOUR_3, true
}
return 0, false
}
func LightingLabelFlavourByName(value string) (enum LightingLabelFlavour, ok bool) {
switch value {
+ case "FLAVOUR_0":
+ return LightingLabelFlavour_FLAVOUR_0, true
case "FLAVOUR_1":
return LightingLabelFlavour_FLAVOUR_1, true
case "FLAVOUR_2":
return LightingLabelFlavour_FLAVOUR_2, true
case "FLAVOUR_3":
return LightingLabelFlavour_FLAVOUR_3, true
- case "FLAVOUR_4":
- return LightingLabelFlavour_FLAVOUR_4, true
}
return 0, false
}
@@ -128,14 +128,14 @@ func (e LightingLabelFlavour) Serialize(writeBuffer utils.WriteBuffer) error {
// PLC4XEnumName returns the name that is used in code to identify this enum
func (e LightingLabelFlavour) PLC4XEnumName() string {
switch e {
+ case LightingLabelFlavour_FLAVOUR_0:
+ return "FLAVOUR_0"
case LightingLabelFlavour_FLAVOUR_1:
return "FLAVOUR_1"
case LightingLabelFlavour_FLAVOUR_2:
return "FLAVOUR_2"
case LightingLabelFlavour_FLAVOUR_3:
return "FLAVOUR_3"
- case LightingLabelFlavour_FLAVOUR_4:
- return "FLAVOUR_4"
}
return ""
}
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingLabelOptions.go b/plc4go/protocols/cbus/readwrite/model/LightingLabelOptions.go
index 466ac9b85..ea52fcd46 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingLabelOptions.go
+++ b/plc4go/protocols/cbus/readwrite/model/LightingLabelOptions.go
@@ -35,8 +35,8 @@ type LightingLabelOptions interface {
GetReservedBit7() bool
// GetLabelFlavour returns LabelFlavour (property field)
GetLabelFlavour() LightingLabelFlavour
- // GetReservedBit4 returns ReservedBit4 (property field)
- GetReservedBit4() bool
+ // GetReservedBit3 returns ReservedBit3 (property field)
+ GetReservedBit3() bool
// GetLabelType returns LabelType (property field)
GetLabelType() LightingLabelType
// GetReservedBit0 returns ReservedBit0 (property field)
@@ -54,7 +54,7 @@ type LightingLabelOptionsExactly interface {
type _LightingLabelOptions struct {
ReservedBit7 bool
LabelFlavour LightingLabelFlavour
- ReservedBit4 bool
+ ReservedBit3 bool
LabelType LightingLabelType
ReservedBit0 bool
}
@@ -72,8 +72,8 @@ func (m *_LightingLabelOptions) GetLabelFlavour() LightingLabelFlavour {
return m.LabelFlavour
}
-func (m *_LightingLabelOptions) GetReservedBit4() bool {
- return m.ReservedBit4
+func (m *_LightingLabelOptions) GetReservedBit3() bool {
+ return m.ReservedBit3
}
func (m *_LightingLabelOptions) GetLabelType() LightingLabelType {
@@ -90,8 +90,8 @@ func (m *_LightingLabelOptions) GetReservedBit0() bool {
///////////////////////////////////////////////////////////
// NewLightingLabelOptions factory function for _LightingLabelOptions
-func NewLightingLabelOptions(reservedBit7 bool, labelFlavour LightingLabelFlavour, reservedBit4 bool, labelType LightingLabelType, reservedBit0 bool) *_LightingLabelOptions {
- return &_LightingLabelOptions{ReservedBit7: reservedBit7, LabelFlavour: labelFlavour, ReservedBit4: reservedBit4, LabelType: labelType, ReservedBit0: reservedBit0}
+func NewLightingLabelOptions(reservedBit7 bool, labelFlavour LightingLabelFlavour, reservedBit3 bool, labelType LightingLabelType, reservedBit0 bool) *_LightingLabelOptions {
+ return &_LightingLabelOptions{ReservedBit7: reservedBit7, LabelFlavour: labelFlavour, ReservedBit3: reservedBit3, LabelType: labelType, ReservedBit0: reservedBit0}
}
// Deprecated: use the interface for direct cast
@@ -125,7 +125,7 @@ func (m *_LightingLabelOptions) GetLengthInBitsConditional(lastItem bool) uint16
// Reserved Field (reserved)
lengthInBits += 1
- // Simple field (reservedBit4)
+ // Simple field (reservedBit3)
lengthInBits += 1
// Simple field (labelType)
@@ -184,12 +184,12 @@ func LightingLabelOptionsParse(readBuffer utils.ReadBuffer) (LightingLabelOption
}
}
- // Simple Field (reservedBit4)
- _reservedBit4, _reservedBit4Err := readBuffer.ReadBit("reservedBit4")
- if _reservedBit4Err != nil {
- return nil, errors.Wrap(_reservedBit4Err, "Error parsing 'reservedBit4' field of LightingLabelOptions")
+ // Simple Field (reservedBit3)
+ _reservedBit3, _reservedBit3Err := readBuffer.ReadBit("reservedBit3")
+ if _reservedBit3Err != nil {
+ return nil, errors.Wrap(_reservedBit3Err, "Error parsing 'reservedBit3' field of LightingLabelOptions")
}
- reservedBit4 := _reservedBit4
+ reservedBit3 := _reservedBit3
// Simple Field (labelType)
if pullErr := readBuffer.PullContext("labelType"); pullErr != nil {
@@ -216,7 +216,7 @@ func LightingLabelOptionsParse(readBuffer utils.ReadBuffer) (LightingLabelOption
}
// Create the instance
- return NewLightingLabelOptions(reservedBit7, labelFlavour, reservedBit4, labelType, reservedBit0), nil
+ return NewLightingLabelOptions(reservedBit7, labelFlavour, reservedBit3, labelType, reservedBit0), nil
}
func (m *_LightingLabelOptions) Serialize(writeBuffer utils.WriteBuffer) error {
@@ -253,11 +253,11 @@ func (m *_LightingLabelOptions) Serialize(writeBuffer utils.WriteBuffer) error {
}
}
- // Simple Field (reservedBit4)
- reservedBit4 := bool(m.GetReservedBit4())
- _reservedBit4Err := writeBuffer.WriteBit("reservedBit4", (reservedBit4))
- if _reservedBit4Err != nil {
- return errors.Wrap(_reservedBit4Err, "Error serializing 'reservedBit4' field")
+ // Simple Field (reservedBit3)
+ reservedBit3 := bool(m.GetReservedBit3())
+ _reservedBit3Err := writeBuffer.WriteBit("reservedBit3", (reservedBit3))
+ if _reservedBit3Err != nil {
+ return errors.Wrap(_reservedBit3Err, "Error serializing 'reservedBit3' field")
}
// Simple Field (labelType)
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingLanguage.go b/plc4go/protocols/cbus/readwrite/model/LightingLanguage.go
deleted file mode 100644
index 30bed260c..000000000
--- a/plc4go/protocols/cbus/readwrite/model/LightingLanguage.go
+++ /dev/null
@@ -1,665 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
- "github.com/apache/plc4x/plc4go/internal/spi/utils"
- "github.com/pkg/errors"
- "github.com/rs/zerolog/log"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// LightingLanguage is an enum
-type LightingLanguage uint8
-
-type ILightingLanguage interface {
- Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-const (
- LightingLanguage_NO_LANGUAGE LightingLanguage = 0x00
- LightingLanguage_ENGLISH LightingLanguage = 0x01
- LightingLanguage_ENGLISH_AUSTRALIA LightingLanguage = 0x02
- LightingLanguage_ENGLISH_BELIZE LightingLanguage = 0x03
- LightingLanguage_ENGLISH_CANADA LightingLanguage = 0x04
- LightingLanguage_ENGLISH_CARRIBEAN LightingLanguage = 0x05
- LightingLanguage_ENGLISH_IRELAND LightingLanguage = 0x06
- LightingLanguage_ENGLISH_JAMAICA LightingLanguage = 0x07
- LightingLanguage_ENGLISH_NEW_ZEALAND LightingLanguage = 0x08
- LightingLanguage_ENGLISH_PHILIPPINES LightingLanguage = 0x09
- LightingLanguage_ENGLISH_SOUTH_AFRICA LightingLanguage = 0x0A
- LightingLanguage_ENGLISH_TRINIDAD LightingLanguage = 0x0B
- LightingLanguage_ENGLISH_UK LightingLanguage = 0x0C
- LightingLanguage_ENGLISH_USA LightingLanguage = 0x0D
- LightingLanguage_ENGLISH_ZIMBABWE LightingLanguage = 0x0E
- LightingLanguage_AFRIKAANS LightingLanguage = 0x40
- LightingLanguage_BASQUE LightingLanguage = 0x41
- LightingLanguage_CATALAN LightingLanguage = 0x42
- LightingLanguage_DANISH LightingLanguage = 0x43
- LightingLanguage_DUTCH_BELGIUM LightingLanguage = 0x44
- LightingLanguage_DUTCH_NETHERLANDS LightingLanguage = 0x45
- LightingLanguage_FAEROESE LightingLanguage = 0x46
- LightingLanguage_FINNISH LightingLanguage = 0x47
- LightingLanguage_FRENCH_BELGIUM LightingLanguage = 0x48
- LightingLanguage_FRENCH_CANADA LightingLanguage = 0x49
- LightingLanguage_FRENCH LightingLanguage = 0x4A
- LightingLanguage_FRENCH_LUXEMBOURG LightingLanguage = 0x4B
- LightingLanguage_FRENCH_MONACO LightingLanguage = 0x4C
- LightingLanguage_FRENCH_SWITZERLAND LightingLanguage = 0x4D
- LightingLanguage_GALICIAN LightingLanguage = 0x4E
- LightingLanguage_GERMAN_AUSTRIA LightingLanguage = 0x4F
- LightingLanguage_GERMAN LightingLanguage = 0x50
- LightingLanguage_GERMAN_LIECHTENSTEIN LightingLanguage = 0x51
- LightingLanguage_GERMAN_LUXEMBOURG LightingLanguage = 0x52
- LightingLanguage_GERMAN_SWITZERLAND LightingLanguage = 0x53
- LightingLanguage_ICELANDIC LightingLanguage = 0x54
- LightingLanguage_INDONESIAN LightingLanguage = 0x55
- LightingLanguage_ITALIAN LightingLanguage = 0x56
- LightingLanguage_ITALIAN_SWITZERLAND LightingLanguage = 0x57
- LightingLanguage_MALAY_BRUNEI LightingLanguage = 0x58
- LightingLanguage_MALAY LightingLanguage = 0x59
- LightingLanguage_NORWEGIAN LightingLanguage = 0x5A
- LightingLanguage_NORWEGIAN_NYNORSK LightingLanguage = 0x5B
- LightingLanguage_PORTUGUESE_BRAZIL LightingLanguage = 0x5C
- LightingLanguage_PORTUGUESE LightingLanguage = 0x5D
- LightingLanguage_SPANISH_ARGENTINE LightingLanguage = 0x5E
- LightingLanguage_SPANISH_BOLIVIA LightingLanguage = 0x5F
- LightingLanguage_SPANISH_CHILE LightingLanguage = 0x60
- LightingLanguage_SPANISH_COLOMBIA LightingLanguage = 0x61
- LightingLanguage_SPANISH_COSTA_RICA LightingLanguage = 0x62
- LightingLanguage_SPANISH_DOMINICAN_REPUBLIC LightingLanguage = 0x63
- LightingLanguage_SPANISH_ECUADOR LightingLanguage = 0x64
- LightingLanguage_SPANISH_EL_SALVADOR LightingLanguage = 0x65
- LightingLanguage_SPANISH_GUATEMALA LightingLanguage = 0x66
- LightingLanguage_SPANISH_HONDURAS LightingLanguage = 0x67
- LightingLanguage_SPANISH LightingLanguage = 0x68
- LightingLanguage_SPANISH_MEXICO LightingLanguage = 0x69
- LightingLanguage_SPANISH_NICARAGUA LightingLanguage = 0x6A
- LightingLanguage_SPANISH_PANAMA LightingLanguage = 0x6B
- LightingLanguage_SPANISH_PARAGUAY LightingLanguage = 0x6C
- LightingLanguage_SPANISH_PERU LightingLanguage = 0x6D
- LightingLanguage_SPANISH_PERTO_RICO LightingLanguage = 0x6E
- LightingLanguage_SPANISH_TRADITIONAL LightingLanguage = 0x6F
- LightingLanguage_SPANISH_URUGUAY LightingLanguage = 0x70
- LightingLanguage_SPANISH_VENEZUELA LightingLanguage = 0x71
- LightingLanguage_SWAHILI LightingLanguage = 0x72
- LightingLanguage_SWEDISH LightingLanguage = 0x73
- LightingLanguage_SWEDISH_FINLAND LightingLanguage = 0x74
- LightingLanguage_CHINESE_CP936 LightingLanguage = 0xCA
-)
-
-var LightingLanguageValues []LightingLanguage
-
-func init() {
- _ = errors.New
- LightingLanguageValues = []LightingLanguage{
- LightingLanguage_NO_LANGUAGE,
- LightingLanguage_ENGLISH,
- LightingLanguage_ENGLISH_AUSTRALIA,
- LightingLanguage_ENGLISH_BELIZE,
- LightingLanguage_ENGLISH_CANADA,
- LightingLanguage_ENGLISH_CARRIBEAN,
- LightingLanguage_ENGLISH_IRELAND,
- LightingLanguage_ENGLISH_JAMAICA,
- LightingLanguage_ENGLISH_NEW_ZEALAND,
- LightingLanguage_ENGLISH_PHILIPPINES,
- LightingLanguage_ENGLISH_SOUTH_AFRICA,
- LightingLanguage_ENGLISH_TRINIDAD,
- LightingLanguage_ENGLISH_UK,
- LightingLanguage_ENGLISH_USA,
- LightingLanguage_ENGLISH_ZIMBABWE,
- LightingLanguage_AFRIKAANS,
- LightingLanguage_BASQUE,
- LightingLanguage_CATALAN,
- LightingLanguage_DANISH,
- LightingLanguage_DUTCH_BELGIUM,
- LightingLanguage_DUTCH_NETHERLANDS,
- LightingLanguage_FAEROESE,
- LightingLanguage_FINNISH,
- LightingLanguage_FRENCH_BELGIUM,
- LightingLanguage_FRENCH_CANADA,
- LightingLanguage_FRENCH,
- LightingLanguage_FRENCH_LUXEMBOURG,
- LightingLanguage_FRENCH_MONACO,
- LightingLanguage_FRENCH_SWITZERLAND,
- LightingLanguage_GALICIAN,
- LightingLanguage_GERMAN_AUSTRIA,
- LightingLanguage_GERMAN,
- LightingLanguage_GERMAN_LIECHTENSTEIN,
- LightingLanguage_GERMAN_LUXEMBOURG,
- LightingLanguage_GERMAN_SWITZERLAND,
- LightingLanguage_ICELANDIC,
- LightingLanguage_INDONESIAN,
- LightingLanguage_ITALIAN,
- LightingLanguage_ITALIAN_SWITZERLAND,
- LightingLanguage_MALAY_BRUNEI,
- LightingLanguage_MALAY,
- LightingLanguage_NORWEGIAN,
- LightingLanguage_NORWEGIAN_NYNORSK,
- LightingLanguage_PORTUGUESE_BRAZIL,
- LightingLanguage_PORTUGUESE,
- LightingLanguage_SPANISH_ARGENTINE,
- LightingLanguage_SPANISH_BOLIVIA,
- LightingLanguage_SPANISH_CHILE,
- LightingLanguage_SPANISH_COLOMBIA,
- LightingLanguage_SPANISH_COSTA_RICA,
- LightingLanguage_SPANISH_DOMINICAN_REPUBLIC,
- LightingLanguage_SPANISH_ECUADOR,
- LightingLanguage_SPANISH_EL_SALVADOR,
- LightingLanguage_SPANISH_GUATEMALA,
- LightingLanguage_SPANISH_HONDURAS,
- LightingLanguage_SPANISH,
- LightingLanguage_SPANISH_MEXICO,
- LightingLanguage_SPANISH_NICARAGUA,
- LightingLanguage_SPANISH_PANAMA,
- LightingLanguage_SPANISH_PARAGUAY,
- LightingLanguage_SPANISH_PERU,
- LightingLanguage_SPANISH_PERTO_RICO,
- LightingLanguage_SPANISH_TRADITIONAL,
- LightingLanguage_SPANISH_URUGUAY,
- LightingLanguage_SPANISH_VENEZUELA,
- LightingLanguage_SWAHILI,
- LightingLanguage_SWEDISH,
- LightingLanguage_SWEDISH_FINLAND,
- LightingLanguage_CHINESE_CP936,
- }
-}
-
-func LightingLanguageByValue(value uint8) (enum LightingLanguage, ok bool) {
- switch value {
- case 0x00:
- return LightingLanguage_NO_LANGUAGE, true
- case 0x01:
- return LightingLanguage_ENGLISH, true
- case 0x02:
- return LightingLanguage_ENGLISH_AUSTRALIA, true
- case 0x03:
- return LightingLanguage_ENGLISH_BELIZE, true
- case 0x04:
- return LightingLanguage_ENGLISH_CANADA, true
- case 0x05:
- return LightingLanguage_ENGLISH_CARRIBEAN, true
- case 0x06:
- return LightingLanguage_ENGLISH_IRELAND, true
- case 0x07:
- return LightingLanguage_ENGLISH_JAMAICA, true
- case 0x08:
- return LightingLanguage_ENGLISH_NEW_ZEALAND, true
- case 0x09:
- return LightingLanguage_ENGLISH_PHILIPPINES, true
- case 0x0A:
- return LightingLanguage_ENGLISH_SOUTH_AFRICA, true
- case 0x0B:
- return LightingLanguage_ENGLISH_TRINIDAD, true
- case 0x0C:
- return LightingLanguage_ENGLISH_UK, true
- case 0x0D:
- return LightingLanguage_ENGLISH_USA, true
- case 0x0E:
- return LightingLanguage_ENGLISH_ZIMBABWE, true
- case 0x40:
- return LightingLanguage_AFRIKAANS, true
- case 0x41:
- return LightingLanguage_BASQUE, true
- case 0x42:
- return LightingLanguage_CATALAN, true
- case 0x43:
- return LightingLanguage_DANISH, true
- case 0x44:
- return LightingLanguage_DUTCH_BELGIUM, true
- case 0x45:
- return LightingLanguage_DUTCH_NETHERLANDS, true
- case 0x46:
- return LightingLanguage_FAEROESE, true
- case 0x47:
- return LightingLanguage_FINNISH, true
- case 0x48:
- return LightingLanguage_FRENCH_BELGIUM, true
- case 0x49:
- return LightingLanguage_FRENCH_CANADA, true
- case 0x4A:
- return LightingLanguage_FRENCH, true
- case 0x4B:
- return LightingLanguage_FRENCH_LUXEMBOURG, true
- case 0x4C:
- return LightingLanguage_FRENCH_MONACO, true
- case 0x4D:
- return LightingLanguage_FRENCH_SWITZERLAND, true
- case 0x4E:
- return LightingLanguage_GALICIAN, true
- case 0x4F:
- return LightingLanguage_GERMAN_AUSTRIA, true
- case 0x50:
- return LightingLanguage_GERMAN, true
- case 0x51:
- return LightingLanguage_GERMAN_LIECHTENSTEIN, true
- case 0x52:
- return LightingLanguage_GERMAN_LUXEMBOURG, true
- case 0x53:
- return LightingLanguage_GERMAN_SWITZERLAND, true
- case 0x54:
- return LightingLanguage_ICELANDIC, true
- case 0x55:
- return LightingLanguage_INDONESIAN, true
- case 0x56:
- return LightingLanguage_ITALIAN, true
- case 0x57:
- return LightingLanguage_ITALIAN_SWITZERLAND, true
- case 0x58:
- return LightingLanguage_MALAY_BRUNEI, true
- case 0x59:
- return LightingLanguage_MALAY, true
- case 0x5A:
- return LightingLanguage_NORWEGIAN, true
- case 0x5B:
- return LightingLanguage_NORWEGIAN_NYNORSK, true
- case 0x5C:
- return LightingLanguage_PORTUGUESE_BRAZIL, true
- case 0x5D:
- return LightingLanguage_PORTUGUESE, true
- case 0x5E:
- return LightingLanguage_SPANISH_ARGENTINE, true
- case 0x5F:
- return LightingLanguage_SPANISH_BOLIVIA, true
- case 0x60:
- return LightingLanguage_SPANISH_CHILE, true
- case 0x61:
- return LightingLanguage_SPANISH_COLOMBIA, true
- case 0x62:
- return LightingLanguage_SPANISH_COSTA_RICA, true
- case 0x63:
- return LightingLanguage_SPANISH_DOMINICAN_REPUBLIC, true
- case 0x64:
- return LightingLanguage_SPANISH_ECUADOR, true
- case 0x65:
- return LightingLanguage_SPANISH_EL_SALVADOR, true
- case 0x66:
- return LightingLanguage_SPANISH_GUATEMALA, true
- case 0x67:
- return LightingLanguage_SPANISH_HONDURAS, true
- case 0x68:
- return LightingLanguage_SPANISH, true
- case 0x69:
- return LightingLanguage_SPANISH_MEXICO, true
- case 0x6A:
- return LightingLanguage_SPANISH_NICARAGUA, true
- case 0x6B:
- return LightingLanguage_SPANISH_PANAMA, true
- case 0x6C:
- return LightingLanguage_SPANISH_PARAGUAY, true
- case 0x6D:
- return LightingLanguage_SPANISH_PERU, true
- case 0x6E:
- return LightingLanguage_SPANISH_PERTO_RICO, true
- case 0x6F:
- return LightingLanguage_SPANISH_TRADITIONAL, true
- case 0x70:
- return LightingLanguage_SPANISH_URUGUAY, true
- case 0x71:
- return LightingLanguage_SPANISH_VENEZUELA, true
- case 0x72:
- return LightingLanguage_SWAHILI, true
- case 0x73:
- return LightingLanguage_SWEDISH, true
- case 0x74:
- return LightingLanguage_SWEDISH_FINLAND, true
- case 0xCA:
- return LightingLanguage_CHINESE_CP936, true
- }
- return 0, false
-}
-
-func LightingLanguageByName(value string) (enum LightingLanguage, ok bool) {
- switch value {
- case "NO_LANGUAGE":
- return LightingLanguage_NO_LANGUAGE, true
- case "ENGLISH":
- return LightingLanguage_ENGLISH, true
- case "ENGLISH_AUSTRALIA":
- return LightingLanguage_ENGLISH_AUSTRALIA, true
- case "ENGLISH_BELIZE":
- return LightingLanguage_ENGLISH_BELIZE, true
- case "ENGLISH_CANADA":
- return LightingLanguage_ENGLISH_CANADA, true
- case "ENGLISH_CARRIBEAN":
- return LightingLanguage_ENGLISH_CARRIBEAN, true
- case "ENGLISH_IRELAND":
- return LightingLanguage_ENGLISH_IRELAND, true
- case "ENGLISH_JAMAICA":
- return LightingLanguage_ENGLISH_JAMAICA, true
- case "ENGLISH_NEW_ZEALAND":
- return LightingLanguage_ENGLISH_NEW_ZEALAND, true
- case "ENGLISH_PHILIPPINES":
- return LightingLanguage_ENGLISH_PHILIPPINES, true
- case "ENGLISH_SOUTH_AFRICA":
- return LightingLanguage_ENGLISH_SOUTH_AFRICA, true
- case "ENGLISH_TRINIDAD":
- return LightingLanguage_ENGLISH_TRINIDAD, true
- case "ENGLISH_UK":
- return LightingLanguage_ENGLISH_UK, true
- case "ENGLISH_USA":
- return LightingLanguage_ENGLISH_USA, true
- case "ENGLISH_ZIMBABWE":
- return LightingLanguage_ENGLISH_ZIMBABWE, true
- case "AFRIKAANS":
- return LightingLanguage_AFRIKAANS, true
- case "BASQUE":
- return LightingLanguage_BASQUE, true
- case "CATALAN":
- return LightingLanguage_CATALAN, true
- case "DANISH":
- return LightingLanguage_DANISH, true
- case "DUTCH_BELGIUM":
- return LightingLanguage_DUTCH_BELGIUM, true
- case "DUTCH_NETHERLANDS":
- return LightingLanguage_DUTCH_NETHERLANDS, true
- case "FAEROESE":
- return LightingLanguage_FAEROESE, true
- case "FINNISH":
- return LightingLanguage_FINNISH, true
- case "FRENCH_BELGIUM":
- return LightingLanguage_FRENCH_BELGIUM, true
- case "FRENCH_CANADA":
- return LightingLanguage_FRENCH_CANADA, true
- case "FRENCH":
- return LightingLanguage_FRENCH, true
- case "FRENCH_LUXEMBOURG":
- return LightingLanguage_FRENCH_LUXEMBOURG, true
- case "FRENCH_MONACO":
- return LightingLanguage_FRENCH_MONACO, true
- case "FRENCH_SWITZERLAND":
- return LightingLanguage_FRENCH_SWITZERLAND, true
- case "GALICIAN":
- return LightingLanguage_GALICIAN, true
- case "GERMAN_AUSTRIA":
- return LightingLanguage_GERMAN_AUSTRIA, true
- case "GERMAN":
- return LightingLanguage_GERMAN, true
- case "GERMAN_LIECHTENSTEIN":
- return LightingLanguage_GERMAN_LIECHTENSTEIN, true
- case "GERMAN_LUXEMBOURG":
- return LightingLanguage_GERMAN_LUXEMBOURG, true
- case "GERMAN_SWITZERLAND":
- return LightingLanguage_GERMAN_SWITZERLAND, true
- case "ICELANDIC":
- return LightingLanguage_ICELANDIC, true
- case "INDONESIAN":
- return LightingLanguage_INDONESIAN, true
- case "ITALIAN":
- return LightingLanguage_ITALIAN, true
- case "ITALIAN_SWITZERLAND":
- return LightingLanguage_ITALIAN_SWITZERLAND, true
- case "MALAY_BRUNEI":
- return LightingLanguage_MALAY_BRUNEI, true
- case "MALAY":
- return LightingLanguage_MALAY, true
- case "NORWEGIAN":
- return LightingLanguage_NORWEGIAN, true
- case "NORWEGIAN_NYNORSK":
- return LightingLanguage_NORWEGIAN_NYNORSK, true
- case "PORTUGUESE_BRAZIL":
- return LightingLanguage_PORTUGUESE_BRAZIL, true
- case "PORTUGUESE":
- return LightingLanguage_PORTUGUESE, true
- case "SPANISH_ARGENTINE":
- return LightingLanguage_SPANISH_ARGENTINE, true
- case "SPANISH_BOLIVIA":
- return LightingLanguage_SPANISH_BOLIVIA, true
- case "SPANISH_CHILE":
- return LightingLanguage_SPANISH_CHILE, true
- case "SPANISH_COLOMBIA":
- return LightingLanguage_SPANISH_COLOMBIA, true
- case "SPANISH_COSTA_RICA":
- return LightingLanguage_SPANISH_COSTA_RICA, true
- case "SPANISH_DOMINICAN_REPUBLIC":
- return LightingLanguage_SPANISH_DOMINICAN_REPUBLIC, true
- case "SPANISH_ECUADOR":
- return LightingLanguage_SPANISH_ECUADOR, true
- case "SPANISH_EL_SALVADOR":
- return LightingLanguage_SPANISH_EL_SALVADOR, true
- case "SPANISH_GUATEMALA":
- return LightingLanguage_SPANISH_GUATEMALA, true
- case "SPANISH_HONDURAS":
- return LightingLanguage_SPANISH_HONDURAS, true
- case "SPANISH":
- return LightingLanguage_SPANISH, true
- case "SPANISH_MEXICO":
- return LightingLanguage_SPANISH_MEXICO, true
- case "SPANISH_NICARAGUA":
- return LightingLanguage_SPANISH_NICARAGUA, true
- case "SPANISH_PANAMA":
- return LightingLanguage_SPANISH_PANAMA, true
- case "SPANISH_PARAGUAY":
- return LightingLanguage_SPANISH_PARAGUAY, true
- case "SPANISH_PERU":
- return LightingLanguage_SPANISH_PERU, true
- case "SPANISH_PERTO_RICO":
- return LightingLanguage_SPANISH_PERTO_RICO, true
- case "SPANISH_TRADITIONAL":
- return LightingLanguage_SPANISH_TRADITIONAL, true
- case "SPANISH_URUGUAY":
- return LightingLanguage_SPANISH_URUGUAY, true
- case "SPANISH_VENEZUELA":
- return LightingLanguage_SPANISH_VENEZUELA, true
- case "SWAHILI":
- return LightingLanguage_SWAHILI, true
- case "SWEDISH":
- return LightingLanguage_SWEDISH, true
- case "SWEDISH_FINLAND":
- return LightingLanguage_SWEDISH_FINLAND, true
- case "CHINESE_CP936":
- return LightingLanguage_CHINESE_CP936, true
- }
- return 0, false
-}
-
-func LightingLanguageKnows(value uint8) bool {
- for _, typeValue := range LightingLanguageValues {
- if uint8(typeValue) == value {
- return true
- }
- }
- return false
-}
-
-func CastLightingLanguage(structType interface{}) LightingLanguage {
- castFunc := func(typ interface{}) LightingLanguage {
- if sLightingLanguage, ok := typ.(LightingLanguage); ok {
- return sLightingLanguage
- }
- return 0
- }
- return castFunc(structType)
-}
-
-func (m LightingLanguage) GetLengthInBits() uint16 {
- return 8
-}
-
-func (m LightingLanguage) GetLengthInBytes() uint16 {
- return m.GetLengthInBits() / 8
-}
-
-func LightingLanguageParse(readBuffer utils.ReadBuffer) (LightingLanguage, error) {
- val, err := readBuffer.ReadUint8("LightingLanguage", 8)
- if err != nil {
- return 0, errors.Wrap(err, "error reading LightingLanguage")
- }
- if enum, ok := LightingLanguageByValue(val); !ok {
- log.Debug().Msgf("no value %x found for RequestType", val)
- return LightingLanguage(val), nil
- } else {
- return enum, nil
- }
-}
-
-func (e LightingLanguage) Serialize(writeBuffer utils.WriteBuffer) error {
- return writeBuffer.WriteUint8("LightingLanguage", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
-}
-
-// PLC4XEnumName returns the name that is used in code to identify this enum
-func (e LightingLanguage) PLC4XEnumName() string {
- switch e {
- case LightingLanguage_NO_LANGUAGE:
- return "NO_LANGUAGE"
- case LightingLanguage_ENGLISH:
- return "ENGLISH"
- case LightingLanguage_ENGLISH_AUSTRALIA:
- return "ENGLISH_AUSTRALIA"
- case LightingLanguage_ENGLISH_BELIZE:
- return "ENGLISH_BELIZE"
- case LightingLanguage_ENGLISH_CANADA:
- return "ENGLISH_CANADA"
- case LightingLanguage_ENGLISH_CARRIBEAN:
- return "ENGLISH_CARRIBEAN"
- case LightingLanguage_ENGLISH_IRELAND:
- return "ENGLISH_IRELAND"
- case LightingLanguage_ENGLISH_JAMAICA:
- return "ENGLISH_JAMAICA"
- case LightingLanguage_ENGLISH_NEW_ZEALAND:
- return "ENGLISH_NEW_ZEALAND"
- case LightingLanguage_ENGLISH_PHILIPPINES:
- return "ENGLISH_PHILIPPINES"
- case LightingLanguage_ENGLISH_SOUTH_AFRICA:
- return "ENGLISH_SOUTH_AFRICA"
- case LightingLanguage_ENGLISH_TRINIDAD:
- return "ENGLISH_TRINIDAD"
- case LightingLanguage_ENGLISH_UK:
- return "ENGLISH_UK"
- case LightingLanguage_ENGLISH_USA:
- return "ENGLISH_USA"
- case LightingLanguage_ENGLISH_ZIMBABWE:
- return "ENGLISH_ZIMBABWE"
- case LightingLanguage_AFRIKAANS:
- return "AFRIKAANS"
- case LightingLanguage_BASQUE:
- return "BASQUE"
- case LightingLanguage_CATALAN:
- return "CATALAN"
- case LightingLanguage_DANISH:
- return "DANISH"
- case LightingLanguage_DUTCH_BELGIUM:
- return "DUTCH_BELGIUM"
- case LightingLanguage_DUTCH_NETHERLANDS:
- return "DUTCH_NETHERLANDS"
- case LightingLanguage_FAEROESE:
- return "FAEROESE"
- case LightingLanguage_FINNISH:
- return "FINNISH"
- case LightingLanguage_FRENCH_BELGIUM:
- return "FRENCH_BELGIUM"
- case LightingLanguage_FRENCH_CANADA:
- return "FRENCH_CANADA"
- case LightingLanguage_FRENCH:
- return "FRENCH"
- case LightingLanguage_FRENCH_LUXEMBOURG:
- return "FRENCH_LUXEMBOURG"
- case LightingLanguage_FRENCH_MONACO:
- return "FRENCH_MONACO"
- case LightingLanguage_FRENCH_SWITZERLAND:
- return "FRENCH_SWITZERLAND"
- case LightingLanguage_GALICIAN:
- return "GALICIAN"
- case LightingLanguage_GERMAN_AUSTRIA:
- return "GERMAN_AUSTRIA"
- case LightingLanguage_GERMAN:
- return "GERMAN"
- case LightingLanguage_GERMAN_LIECHTENSTEIN:
- return "GERMAN_LIECHTENSTEIN"
- case LightingLanguage_GERMAN_LUXEMBOURG:
- return "GERMAN_LUXEMBOURG"
- case LightingLanguage_GERMAN_SWITZERLAND:
- return "GERMAN_SWITZERLAND"
- case LightingLanguage_ICELANDIC:
- return "ICELANDIC"
- case LightingLanguage_INDONESIAN:
- return "INDONESIAN"
- case LightingLanguage_ITALIAN:
- return "ITALIAN"
- case LightingLanguage_ITALIAN_SWITZERLAND:
- return "ITALIAN_SWITZERLAND"
- case LightingLanguage_MALAY_BRUNEI:
- return "MALAY_BRUNEI"
- case LightingLanguage_MALAY:
- return "MALAY"
- case LightingLanguage_NORWEGIAN:
- return "NORWEGIAN"
- case LightingLanguage_NORWEGIAN_NYNORSK:
- return "NORWEGIAN_NYNORSK"
- case LightingLanguage_PORTUGUESE_BRAZIL:
- return "PORTUGUESE_BRAZIL"
- case LightingLanguage_PORTUGUESE:
- return "PORTUGUESE"
- case LightingLanguage_SPANISH_ARGENTINE:
- return "SPANISH_ARGENTINE"
- case LightingLanguage_SPANISH_BOLIVIA:
- return "SPANISH_BOLIVIA"
- case LightingLanguage_SPANISH_CHILE:
- return "SPANISH_CHILE"
- case LightingLanguage_SPANISH_COLOMBIA:
- return "SPANISH_COLOMBIA"
- case LightingLanguage_SPANISH_COSTA_RICA:
- return "SPANISH_COSTA_RICA"
- case LightingLanguage_SPANISH_DOMINICAN_REPUBLIC:
- return "SPANISH_DOMINICAN_REPUBLIC"
- case LightingLanguage_SPANISH_ECUADOR:
- return "SPANISH_ECUADOR"
- case LightingLanguage_SPANISH_EL_SALVADOR:
- return "SPANISH_EL_SALVADOR"
- case LightingLanguage_SPANISH_GUATEMALA:
- return "SPANISH_GUATEMALA"
- case LightingLanguage_SPANISH_HONDURAS:
- return "SPANISH_HONDURAS"
- case LightingLanguage_SPANISH:
- return "SPANISH"
- case LightingLanguage_SPANISH_MEXICO:
- return "SPANISH_MEXICO"
- case LightingLanguage_SPANISH_NICARAGUA:
- return "SPANISH_NICARAGUA"
- case LightingLanguage_SPANISH_PANAMA:
- return "SPANISH_PANAMA"
- case LightingLanguage_SPANISH_PARAGUAY:
- return "SPANISH_PARAGUAY"
- case LightingLanguage_SPANISH_PERU:
- return "SPANISH_PERU"
- case LightingLanguage_SPANISH_PERTO_RICO:
- return "SPANISH_PERTO_RICO"
- case LightingLanguage_SPANISH_TRADITIONAL:
- return "SPANISH_TRADITIONAL"
- case LightingLanguage_SPANISH_URUGUAY:
- return "SPANISH_URUGUAY"
- case LightingLanguage_SPANISH_VENEZUELA:
- return "SPANISH_VENEZUELA"
- case LightingLanguage_SWAHILI:
- return "SWAHILI"
- case LightingLanguage_SWEDISH:
- return "SWEDISH"
- case LightingLanguage_SWEDISH_FINLAND:
- return "SWEDISH_FINLAND"
- case LightingLanguage_CHINESE_CP936:
- return "CHINESE_CP936"
- }
- return ""
-}
-
-func (e LightingLanguage) String() string {
- return e.PLC4XEnumName()
-}
diff --git a/plc4go/protocols/cbus/readwrite/model/SALDataTriggerControl.go b/plc4go/protocols/cbus/readwrite/model/SALDataTriggerControl.go
index ce1123fc0..16b3f7dae 100644
--- a/plc4go/protocols/cbus/readwrite/model/SALDataTriggerControl.go
+++ b/plc4go/protocols/cbus/readwrite/model/SALDataTriggerControl.go
@@ -31,6 +31,8 @@ type SALDataTriggerControl interface {
utils.LengthAware
utils.Serializable
SALData
+ // GetTriggerControlData returns TriggerControlData (property field)
+ GetTriggerControlData() TriggerControlData
}
// SALDataTriggerControlExactly can be used when we want exactly this type and not a type which fulfills SALDataTriggerControl.
@@ -43,6 +45,7 @@ type SALDataTriggerControlExactly interface {
// _SALDataTriggerControl is the data-structure of this message
type _SALDataTriggerControl struct {
*_SALData
+ TriggerControlData TriggerControlData
}
///////////////////////////////////////////////////////////
@@ -67,10 +70,25 @@ func (m *_SALDataTriggerControl) GetParent() SALData {
return m._SALData
}
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *_SALDataTriggerControl) GetTriggerControlData() TriggerControlData {
+ return m.TriggerControlData
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
// NewSALDataTriggerControl factory function for _SALDataTriggerControl
-func NewSALDataTriggerControl(salData SALData) *_SALDataTriggerControl {
+func NewSALDataTriggerControl(triggerControlData TriggerControlData, salData SALData) *_SALDataTriggerControl {
_result := &_SALDataTriggerControl{
- _SALData: NewSALData(salData),
+ TriggerControlData: triggerControlData,
+ _SALData: NewSALData(salData),
}
_result._SALData._SALDataChildRequirements = _result
return _result
@@ -98,6 +116,9 @@ func (m *_SALDataTriggerControl) GetLengthInBits() uint16 {
func (m *_SALDataTriggerControl) GetLengthInBitsConditional(lastItem bool) uint16 {
lengthInBits := uint16(m.GetParentLengthInBits())
+ // Simple field (triggerControlData)
+ lengthInBits += m.TriggerControlData.GetLengthInBits()
+
return lengthInBits
}
@@ -114,9 +135,17 @@ func SALDataTriggerControlParse(readBuffer utils.ReadBuffer, applicationId Appli
currentPos := positionAware.GetPos()
_ = currentPos
- // Validation
- if !(bool((1) == (2))) {
- return nil, errors.WithStack(utils.ParseValidationError{"TRIGGER_CONTROL Not yet implemented"})
+ // Simple Field (triggerControlData)
+ if pullErr := readBuffer.PullContext("triggerControlData"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for triggerControlData")
+ }
+ _triggerControlData, _triggerControlDataErr := TriggerControlDataParse(readBuffer)
+ if _triggerControlDataErr != nil {
+ return nil, errors.Wrap(_triggerControlDataErr, "Error parsing 'triggerControlData' field of SALDataTriggerControl")
+ }
+ triggerControlData := _triggerControlData.(TriggerControlData)
+ if closeErr := readBuffer.CloseContext("triggerControlData"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for triggerControlData")
}
if closeErr := readBuffer.CloseContext("SALDataTriggerControl"); closeErr != nil {
@@ -125,7 +154,8 @@ func SALDataTriggerControlParse(readBuffer utils.ReadBuffer, applicationId Appli
// Create a partially initialized instance
_child := &_SALDataTriggerControl{
- _SALData: &_SALData{},
+ TriggerControlData: triggerControlData,
+ _SALData: &_SALData{},
}
_child._SALData._SALDataChildRequirements = _child
return _child, nil
@@ -139,6 +169,18 @@ func (m *_SALDataTriggerControl) Serialize(writeBuffer utils.WriteBuffer) error
return errors.Wrap(pushErr, "Error pushing for SALDataTriggerControl")
}
+ // Simple Field (triggerControlData)
+ if pushErr := writeBuffer.PushContext("triggerControlData"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for triggerControlData")
+ }
+ _triggerControlDataErr := writeBuffer.WriteSerializable(m.GetTriggerControlData())
+ if popErr := writeBuffer.PopContext("triggerControlData"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for triggerControlData")
+ }
+ if _triggerControlDataErr != nil {
+ return errors.Wrap(_triggerControlDataErr, "Error serializing 'triggerControlData' field")
+ }
+
if popErr := writeBuffer.PopContext("SALDataTriggerControl"); popErr != nil {
return errors.Wrap(popErr, "Error popping for SALDataTriggerControl")
}
diff --git a/plc4go/protocols/cbus/readwrite/model/StaticHelper.go b/plc4go/protocols/cbus/readwrite/model/StaticHelper.go
index 9b3d6c998..5282914d8 100644
--- a/plc4go/protocols/cbus/readwrite/model/StaticHelper.go
+++ b/plc4go/protocols/cbus/readwrite/model/StaticHelper.go
@@ -151,3 +151,13 @@ func KnowsMeteringCommandTypeContainer(readBuffer utils.ReadBuffer) bool {
}
return MeteringCommandTypeContainerKnows(readUint8)
}
+
+func KnowsTriggerControlCommandTypeContainer(readBuffer utils.ReadBuffer) bool {
+ oldPos := readBuffer.GetPos()
+ defer readBuffer.Reset(oldPos)
+ readUint8, err := readBuffer.ReadUint8("", 8)
+ if err != nil {
+ return false
+ }
+ return TriggerControlCommandTypeContainerKnows(readUint8)
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandType.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandType.go
new file mode 100644
index 000000000..6f8dc558a
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandType.go
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+ "github.com/rs/zerolog/log"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlCommandType is an enum
+type TriggerControlCommandType uint8
+
+type ITriggerControlCommandType interface {
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+const (
+ TriggerControlCommandType_TRIGGER_EVENT TriggerControlCommandType = 0x00
+ TriggerControlCommandType_TRIGGER_MIN TriggerControlCommandType = 0x01
+ TriggerControlCommandType_TRIGGER_MAX TriggerControlCommandType = 0x02
+ TriggerControlCommandType_INDICATOR_KILL TriggerControlCommandType = 0x03
+ TriggerControlCommandType_LABEL TriggerControlCommandType = 0x04
+)
+
+var TriggerControlCommandTypeValues []TriggerControlCommandType
+
+func init() {
+ _ = errors.New
+ TriggerControlCommandTypeValues = []TriggerControlCommandType{
+ TriggerControlCommandType_TRIGGER_EVENT,
+ TriggerControlCommandType_TRIGGER_MIN,
+ TriggerControlCommandType_TRIGGER_MAX,
+ TriggerControlCommandType_INDICATOR_KILL,
+ TriggerControlCommandType_LABEL,
+ }
+}
+
+func TriggerControlCommandTypeByValue(value uint8) (enum TriggerControlCommandType, ok bool) {
+ switch value {
+ case 0x00:
+ return TriggerControlCommandType_TRIGGER_EVENT, true
+ case 0x01:
+ return TriggerControlCommandType_TRIGGER_MIN, true
+ case 0x02:
+ return TriggerControlCommandType_TRIGGER_MAX, true
+ case 0x03:
+ return TriggerControlCommandType_INDICATOR_KILL, true
+ case 0x04:
+ return TriggerControlCommandType_LABEL, true
+ }
+ return 0, false
+}
+
+func TriggerControlCommandTypeByName(value string) (enum TriggerControlCommandType, ok bool) {
+ switch value {
+ case "TRIGGER_EVENT":
+ return TriggerControlCommandType_TRIGGER_EVENT, true
+ case "TRIGGER_MIN":
+ return TriggerControlCommandType_TRIGGER_MIN, true
+ case "TRIGGER_MAX":
+ return TriggerControlCommandType_TRIGGER_MAX, true
+ case "INDICATOR_KILL":
+ return TriggerControlCommandType_INDICATOR_KILL, true
+ case "LABEL":
+ return TriggerControlCommandType_LABEL, true
+ }
+ return 0, false
+}
+
+func TriggerControlCommandTypeKnows(value uint8) bool {
+ for _, typeValue := range TriggerControlCommandTypeValues {
+ if uint8(typeValue) == value {
+ return true
+ }
+ }
+ return false
+}
+
+func CastTriggerControlCommandType(structType interface{}) TriggerControlCommandType {
+ castFunc := func(typ interface{}) TriggerControlCommandType {
+ if sTriggerControlCommandType, ok := typ.(TriggerControlCommandType); ok {
+ return sTriggerControlCommandType
+ }
+ return 0
+ }
+ return castFunc(structType)
+}
+
+func (m TriggerControlCommandType) GetLengthInBits() uint16 {
+ return 4
+}
+
+func (m TriggerControlCommandType) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlCommandTypeParse(readBuffer utils.ReadBuffer) (TriggerControlCommandType, error) {
+ val, err := readBuffer.ReadUint8("TriggerControlCommandType", 4)
+ if err != nil {
+ return 0, errors.Wrap(err, "error reading TriggerControlCommandType")
+ }
+ if enum, ok := TriggerControlCommandTypeByValue(val); !ok {
+ log.Debug().Msgf("no value %x found for RequestType", val)
+ return TriggerControlCommandType(val), nil
+ } else {
+ return enum, nil
+ }
+}
+
+func (e TriggerControlCommandType) Serialize(writeBuffer utils.WriteBuffer) error {
+ return writeBuffer.WriteUint8("TriggerControlCommandType", 4, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
+}
+
+// PLC4XEnumName returns the name that is used in code to identify this enum
+func (e TriggerControlCommandType) PLC4XEnumName() string {
+ switch e {
+ case TriggerControlCommandType_TRIGGER_EVENT:
+ return "TRIGGER_EVENT"
+ case TriggerControlCommandType_TRIGGER_MIN:
+ return "TRIGGER_MIN"
+ case TriggerControlCommandType_TRIGGER_MAX:
+ return "TRIGGER_MAX"
+ case TriggerControlCommandType_INDICATOR_KILL:
+ return "INDICATOR_KILL"
+ case TriggerControlCommandType_LABEL:
+ return "LABEL"
+ }
+ return ""
+}
+
+func (e TriggerControlCommandType) String() string {
+ return e.PLC4XEnumName()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandTypeContainer.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandTypeContainer.go
new file mode 100644
index 000000000..3c30baeb4
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlCommandTypeContainer.go
@@ -0,0 +1,966 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+ "github.com/rs/zerolog/log"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlCommandTypeContainer is an enum
+type TriggerControlCommandTypeContainer uint8
+
+type ITriggerControlCommandTypeContainer interface {
+ NumBytes() uint8
+ CommandType() TriggerControlCommandType
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+const (
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMin_1Bytes TriggerControlCommandTypeContainer = 0x01
+ TriggerControlCommandTypeContainer_TriggerControlCommandIndicatorKill_1Bytes TriggerControlCommandTypeContainer = 0x09
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMax_1Bytes TriggerControlCommandTypeContainer = 0x79
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent0_2Bytes TriggerControlCommandTypeContainer = 0x02
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent1_2Bytes TriggerControlCommandTypeContainer = 0x0A
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent2_2Bytes TriggerControlCommandTypeContainer = 0x12
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent3_2Bytes TriggerControlCommandTypeContainer = 0x1A
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent4_2Bytes TriggerControlCommandTypeContainer = 0x22
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent5_2Bytes TriggerControlCommandTypeContainer = 0x2A
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent6_2Bytes TriggerControlCommandTypeContainer = 0x32
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent7_2Bytes TriggerControlCommandTypeContainer = 0x3A
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent8_2Bytes TriggerControlCommandTypeContainer = 0x42
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent9_2Bytes TriggerControlCommandTypeContainer = 0x4A
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent10_2Bytes TriggerControlCommandTypeContainer = 0x52
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent11_2Bytes TriggerControlCommandTypeContainer = 0x5A
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent12_2Bytes TriggerControlCommandTypeContainer = 0x62
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent13_2Bytes TriggerControlCommandTypeContainer = 0x6A
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent14_2Bytes TriggerControlCommandTypeContainer = 0x72
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent15_2Bytes TriggerControlCommandTypeContainer = 0x7A
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_0Bytes TriggerControlCommandTypeContainer = 0xA0
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_1Bytes TriggerControlCommandTypeContainer = 0xA1
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_2Bytes TriggerControlCommandTypeContainer = 0xA2
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_3Bytes TriggerControlCommandTypeContainer = 0xA3
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_4Bytes TriggerControlCommandTypeContainer = 0xA4
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_5Bytes TriggerControlCommandTypeContainer = 0xA5
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_6Bytes TriggerControlCommandTypeContainer = 0xA6
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_7Bytes TriggerControlCommandTypeContainer = 0xA7
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_8Bytes TriggerControlCommandTypeContainer = 0xA8
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_9Bytes TriggerControlCommandTypeContainer = 0xA9
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_10Bytes TriggerControlCommandTypeContainer = 0xAA
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_11Bytes TriggerControlCommandTypeContainer = 0xAB
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_12Bytes TriggerControlCommandTypeContainer = 0xAC
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_13Bytes TriggerControlCommandTypeContainer = 0xAD
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_14Bytes TriggerControlCommandTypeContainer = 0xAE
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_15Bytes TriggerControlCommandTypeContainer = 0xAF
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_16Bytes TriggerControlCommandTypeContainer = 0xB0
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_17Bytes TriggerControlCommandTypeContainer = 0xB1
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_18Bytes TriggerControlCommandTypeContainer = 0xB2
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_19Bytes TriggerControlCommandTypeContainer = 0xB3
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_20Bytes TriggerControlCommandTypeContainer = 0xB4
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_21Bytes TriggerControlCommandTypeContainer = 0xB5
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_22Bytes TriggerControlCommandTypeContainer = 0xB6
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_23Bytes TriggerControlCommandTypeContainer = 0xB7
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_24Bytes TriggerControlCommandTypeContainer = 0xB8
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_25Bytes TriggerControlCommandTypeContainer = 0xB9
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_26Bytes TriggerControlCommandTypeContainer = 0xBA
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_27Bytes TriggerControlCommandTypeContainer = 0xBB
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_28Bytes TriggerControlCommandTypeContainer = 0xBC
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_29Bytes TriggerControlCommandTypeContainer = 0xBD
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_30Bytes TriggerControlCommandTypeContainer = 0xBE
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_31Bytes TriggerControlCommandTypeContainer = 0xBF
+)
+
+var TriggerControlCommandTypeContainerValues []TriggerControlCommandTypeContainer
+
+func init() {
+ _ = errors.New
+ TriggerControlCommandTypeContainerValues = []TriggerControlCommandTypeContainer{
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMin_1Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandIndicatorKill_1Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMax_1Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent0_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent1_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent2_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent3_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent4_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent5_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent6_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent7_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent8_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent9_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent10_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent11_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent12_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent13_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent14_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent15_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_0Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_1Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_2Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_3Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_4Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_5Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_6Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_7Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_8Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_9Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_10Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_11Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_12Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_13Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_14Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_15Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_16Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_17Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_18Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_19Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_20Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_21Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_22Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_23Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_24Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_25Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_26Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_27Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_28Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_29Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_30Bytes,
+ TriggerControlCommandTypeContainer_TriggerControlCommandLabel_31Bytes,
+ }
+}
+
+func (e TriggerControlCommandTypeContainer) NumBytes() uint8 {
+ switch e {
+ case 0x01:
+ { /* '0x01' */
+ return 1
+ }
+ case 0x02:
+ { /* '0x02' */
+ return 2
+ }
+ case 0x09:
+ { /* '0x09' */
+ return 1
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return 2
+ }
+ case 0x12:
+ { /* '0x12' */
+ return 2
+ }
+ case 0x1A:
+ { /* '0x1A' */
+ return 2
+ }
+ case 0x22:
+ { /* '0x22' */
+ return 2
+ }
+ case 0x2A:
+ { /* '0x2A' */
+ return 2
+ }
+ case 0x32:
+ { /* '0x32' */
+ return 2
+ }
+ case 0x3A:
+ { /* '0x3A' */
+ return 2
+ }
+ case 0x42:
+ { /* '0x42' */
+ return 2
+ }
+ case 0x4A:
+ { /* '0x4A' */
+ return 2
+ }
+ case 0x52:
+ { /* '0x52' */
+ return 2
+ }
+ case 0x5A:
+ { /* '0x5A' */
+ return 2
+ }
+ case 0x62:
+ { /* '0x62' */
+ return 2
+ }
+ case 0x6A:
+ { /* '0x6A' */
+ return 2
+ }
+ case 0x72:
+ { /* '0x72' */
+ return 2
+ }
+ case 0x79:
+ { /* '0x79' */
+ return 1
+ }
+ case 0x7A:
+ { /* '0x7A' */
+ return 2
+ }
+ case 0xA0:
+ { /* '0xA0' */
+ return 0
+ }
+ case 0xA1:
+ { /* '0xA1' */
+ return 1
+ }
+ case 0xA2:
+ { /* '0xA2' */
+ return 2
+ }
+ case 0xA3:
+ { /* '0xA3' */
+ return 3
+ }
+ case 0xA4:
+ { /* '0xA4' */
+ return 4
+ }
+ case 0xA5:
+ { /* '0xA5' */
+ return 5
+ }
+ case 0xA6:
+ { /* '0xA6' */
+ return 6
+ }
+ case 0xA7:
+ { /* '0xA7' */
+ return 7
+ }
+ case 0xA8:
+ { /* '0xA8' */
+ return 8
+ }
+ case 0xA9:
+ { /* '0xA9' */
+ return 9
+ }
+ case 0xAA:
+ { /* '0xAA' */
+ return 10
+ }
+ case 0xAB:
+ { /* '0xAB' */
+ return 11
+ }
+ case 0xAC:
+ { /* '0xAC' */
+ return 12
+ }
+ case 0xAD:
+ { /* '0xAD' */
+ return 13
+ }
+ case 0xAE:
+ { /* '0xAE' */
+ return 14
+ }
+ case 0xAF:
+ { /* '0xAF' */
+ return 15
+ }
+ case 0xB0:
+ { /* '0xB0' */
+ return 16
+ }
+ case 0xB1:
+ { /* '0xB1' */
+ return 17
+ }
+ case 0xB2:
+ { /* '0xB2' */
+ return 18
+ }
+ case 0xB3:
+ { /* '0xB3' */
+ return 19
+ }
+ case 0xB4:
+ { /* '0xB4' */
+ return 20
+ }
+ case 0xB5:
+ { /* '0xB5' */
+ return 21
+ }
+ case 0xB6:
+ { /* '0xB6' */
+ return 22
+ }
+ case 0xB7:
+ { /* '0xB7' */
+ return 23
+ }
+ case 0xB8:
+ { /* '0xB8' */
+ return 24
+ }
+ case 0xB9:
+ { /* '0xB9' */
+ return 25
+ }
+ case 0xBA:
+ { /* '0xBA' */
+ return 26
+ }
+ case 0xBB:
+ { /* '0xBB' */
+ return 27
+ }
+ case 0xBC:
+ { /* '0xBC' */
+ return 28
+ }
+ case 0xBD:
+ { /* '0xBD' */
+ return 29
+ }
+ case 0xBE:
+ { /* '0xBE' */
+ return 30
+ }
+ case 0xBF:
+ { /* '0xBF' */
+ return 31
+ }
+ default:
+ {
+ return 0
+ }
+ }
+}
+
+func TriggerControlCommandTypeContainerFirstEnumForFieldNumBytes(value uint8) (TriggerControlCommandTypeContainer, error) {
+ for _, sizeValue := range TriggerControlCommandTypeContainerValues {
+ if sizeValue.NumBytes() == value {
+ return sizeValue, nil
+ }
+ }
+ return 0, errors.Errorf("enum for %v describing NumBytes not found", value)
+}
+
+func (e TriggerControlCommandTypeContainer) CommandType() TriggerControlCommandType {
+ switch e {
+ case 0x01:
+ { /* '0x01' */
+ return TriggerControlCommandType_TRIGGER_MIN
+ }
+ case 0x02:
+ { /* '0x02' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x09:
+ { /* '0x09' */
+ return TriggerControlCommandType_INDICATOR_KILL
+ }
+ case 0x0A:
+ { /* '0x0A' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x12:
+ { /* '0x12' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x1A:
+ { /* '0x1A' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x22:
+ { /* '0x22' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x2A:
+ { /* '0x2A' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x32:
+ { /* '0x32' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x3A:
+ { /* '0x3A' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x42:
+ { /* '0x42' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x4A:
+ { /* '0x4A' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x52:
+ { /* '0x52' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x5A:
+ { /* '0x5A' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x62:
+ { /* '0x62' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x6A:
+ { /* '0x6A' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x72:
+ { /* '0x72' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0x79:
+ { /* '0x79' */
+ return TriggerControlCommandType_TRIGGER_MAX
+ }
+ case 0x7A:
+ { /* '0x7A' */
+ return TriggerControlCommandType_TRIGGER_EVENT
+ }
+ case 0xA0:
+ { /* '0xA0' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA1:
+ { /* '0xA1' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA2:
+ { /* '0xA2' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA3:
+ { /* '0xA3' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA4:
+ { /* '0xA4' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA5:
+ { /* '0xA5' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA6:
+ { /* '0xA6' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA7:
+ { /* '0xA7' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA8:
+ { /* '0xA8' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xA9:
+ { /* '0xA9' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xAA:
+ { /* '0xAA' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xAB:
+ { /* '0xAB' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xAC:
+ { /* '0xAC' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xAD:
+ { /* '0xAD' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xAE:
+ { /* '0xAE' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xAF:
+ { /* '0xAF' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB0:
+ { /* '0xB0' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB1:
+ { /* '0xB1' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB2:
+ { /* '0xB2' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB3:
+ { /* '0xB3' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB4:
+ { /* '0xB4' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB5:
+ { /* '0xB5' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB6:
+ { /* '0xB6' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB7:
+ { /* '0xB7' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB8:
+ { /* '0xB8' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xB9:
+ { /* '0xB9' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xBA:
+ { /* '0xBA' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xBB:
+ { /* '0xBB' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xBC:
+ { /* '0xBC' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xBD:
+ { /* '0xBD' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xBE:
+ { /* '0xBE' */
+ return TriggerControlCommandType_LABEL
+ }
+ case 0xBF:
+ { /* '0xBF' */
+ return TriggerControlCommandType_LABEL
+ }
+ default:
+ {
+ return 0
+ }
+ }
+}
+
+func TriggerControlCommandTypeContainerFirstEnumForFieldCommandType(value TriggerControlCommandType) (TriggerControlCommandTypeContainer, error) {
+ for _, sizeValue := range TriggerControlCommandTypeContainerValues {
+ if sizeValue.CommandType() == value {
+ return sizeValue, nil
+ }
+ }
+ return 0, errors.Errorf("enum for %v describing CommandType not found", value)
+}
+func TriggerControlCommandTypeContainerByValue(value uint8) (enum TriggerControlCommandTypeContainer, ok bool) {
+ switch value {
+ case 0x01:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMin_1Bytes, true
+ case 0x02:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent0_2Bytes, true
+ case 0x09:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandIndicatorKill_1Bytes, true
+ case 0x0A:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent1_2Bytes, true
+ case 0x12:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent2_2Bytes, true
+ case 0x1A:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent3_2Bytes, true
+ case 0x22:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent4_2Bytes, true
+ case 0x2A:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent5_2Bytes, true
+ case 0x32:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent6_2Bytes, true
+ case 0x3A:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent7_2Bytes, true
+ case 0x42:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent8_2Bytes, true
+ case 0x4A:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent9_2Bytes, true
+ case 0x52:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent10_2Bytes, true
+ case 0x5A:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent11_2Bytes, true
+ case 0x62:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent12_2Bytes, true
+ case 0x6A:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent13_2Bytes, true
+ case 0x72:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent14_2Bytes, true
+ case 0x79:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMax_1Bytes, true
+ case 0x7A:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent15_2Bytes, true
+ case 0xA0:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_0Bytes, true
+ case 0xA1:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_1Bytes, true
+ case 0xA2:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_2Bytes, true
+ case 0xA3:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_3Bytes, true
+ case 0xA4:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_4Bytes, true
+ case 0xA5:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_5Bytes, true
+ case 0xA6:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_6Bytes, true
+ case 0xA7:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_7Bytes, true
+ case 0xA8:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_8Bytes, true
+ case 0xA9:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_9Bytes, true
+ case 0xAA:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_10Bytes, true
+ case 0xAB:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_11Bytes, true
+ case 0xAC:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_12Bytes, true
+ case 0xAD:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_13Bytes, true
+ case 0xAE:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_14Bytes, true
+ case 0xAF:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_15Bytes, true
+ case 0xB0:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_16Bytes, true
+ case 0xB1:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_17Bytes, true
+ case 0xB2:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_18Bytes, true
+ case 0xB3:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_19Bytes, true
+ case 0xB4:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_20Bytes, true
+ case 0xB5:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_21Bytes, true
+ case 0xB6:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_22Bytes, true
+ case 0xB7:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_23Bytes, true
+ case 0xB8:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_24Bytes, true
+ case 0xB9:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_25Bytes, true
+ case 0xBA:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_26Bytes, true
+ case 0xBB:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_27Bytes, true
+ case 0xBC:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_28Bytes, true
+ case 0xBD:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_29Bytes, true
+ case 0xBE:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_30Bytes, true
+ case 0xBF:
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_31Bytes, true
+ }
+ return 0, false
+}
+
+func TriggerControlCommandTypeContainerByName(value string) (enum TriggerControlCommandTypeContainer, ok bool) {
+ switch value {
+ case "TriggerControlCommandTriggerMin_1Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMin_1Bytes, true
+ case "TriggerControlCommandTriggerEvent0_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent0_2Bytes, true
+ case "TriggerControlCommandIndicatorKill_1Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandIndicatorKill_1Bytes, true
+ case "TriggerControlCommandTriggerEvent1_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent1_2Bytes, true
+ case "TriggerControlCommandTriggerEvent2_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent2_2Bytes, true
+ case "TriggerControlCommandTriggerEvent3_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent3_2Bytes, true
+ case "TriggerControlCommandTriggerEvent4_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent4_2Bytes, true
+ case "TriggerControlCommandTriggerEvent5_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent5_2Bytes, true
+ case "TriggerControlCommandTriggerEvent6_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent6_2Bytes, true
+ case "TriggerControlCommandTriggerEvent7_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent7_2Bytes, true
+ case "TriggerControlCommandTriggerEvent8_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent8_2Bytes, true
+ case "TriggerControlCommandTriggerEvent9_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent9_2Bytes, true
+ case "TriggerControlCommandTriggerEvent10_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent10_2Bytes, true
+ case "TriggerControlCommandTriggerEvent11_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent11_2Bytes, true
+ case "TriggerControlCommandTriggerEvent12_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent12_2Bytes, true
+ case "TriggerControlCommandTriggerEvent13_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent13_2Bytes, true
+ case "TriggerControlCommandTriggerEvent14_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent14_2Bytes, true
+ case "TriggerControlCommandTriggerMax_1Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMax_1Bytes, true
+ case "TriggerControlCommandTriggerEvent15_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent15_2Bytes, true
+ case "TriggerControlCommandLabel_0Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_0Bytes, true
+ case "TriggerControlCommandLabel_1Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_1Bytes, true
+ case "TriggerControlCommandLabel_2Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_2Bytes, true
+ case "TriggerControlCommandLabel_3Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_3Bytes, true
+ case "TriggerControlCommandLabel_4Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_4Bytes, true
+ case "TriggerControlCommandLabel_5Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_5Bytes, true
+ case "TriggerControlCommandLabel_6Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_6Bytes, true
+ case "TriggerControlCommandLabel_7Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_7Bytes, true
+ case "TriggerControlCommandLabel_8Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_8Bytes, true
+ case "TriggerControlCommandLabel_9Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_9Bytes, true
+ case "TriggerControlCommandLabel_10Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_10Bytes, true
+ case "TriggerControlCommandLabel_11Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_11Bytes, true
+ case "TriggerControlCommandLabel_12Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_12Bytes, true
+ case "TriggerControlCommandLabel_13Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_13Bytes, true
+ case "TriggerControlCommandLabel_14Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_14Bytes, true
+ case "TriggerControlCommandLabel_15Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_15Bytes, true
+ case "TriggerControlCommandLabel_16Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_16Bytes, true
+ case "TriggerControlCommandLabel_17Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_17Bytes, true
+ case "TriggerControlCommandLabel_18Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_18Bytes, true
+ case "TriggerControlCommandLabel_19Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_19Bytes, true
+ case "TriggerControlCommandLabel_20Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_20Bytes, true
+ case "TriggerControlCommandLabel_21Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_21Bytes, true
+ case "TriggerControlCommandLabel_22Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_22Bytes, true
+ case "TriggerControlCommandLabel_23Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_23Bytes, true
+ case "TriggerControlCommandLabel_24Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_24Bytes, true
+ case "TriggerControlCommandLabel_25Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_25Bytes, true
+ case "TriggerControlCommandLabel_26Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_26Bytes, true
+ case "TriggerControlCommandLabel_27Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_27Bytes, true
+ case "TriggerControlCommandLabel_28Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_28Bytes, true
+ case "TriggerControlCommandLabel_29Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_29Bytes, true
+ case "TriggerControlCommandLabel_30Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_30Bytes, true
+ case "TriggerControlCommandLabel_31Bytes":
+ return TriggerControlCommandTypeContainer_TriggerControlCommandLabel_31Bytes, true
+ }
+ return 0, false
+}
+
+func TriggerControlCommandTypeContainerKnows(value uint8) bool {
+ for _, typeValue := range TriggerControlCommandTypeContainerValues {
+ if uint8(typeValue) == value {
+ return true
+ }
+ }
+ return false
+}
+
+func CastTriggerControlCommandTypeContainer(structType interface{}) TriggerControlCommandTypeContainer {
+ castFunc := func(typ interface{}) TriggerControlCommandTypeContainer {
+ if sTriggerControlCommandTypeContainer, ok := typ.(TriggerControlCommandTypeContainer); ok {
+ return sTriggerControlCommandTypeContainer
+ }
+ return 0
+ }
+ return castFunc(structType)
+}
+
+func (m TriggerControlCommandTypeContainer) GetLengthInBits() uint16 {
+ return 8
+}
+
+func (m TriggerControlCommandTypeContainer) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlCommandTypeContainerParse(readBuffer utils.ReadBuffer) (TriggerControlCommandTypeContainer, error) {
+ val, err := readBuffer.ReadUint8("TriggerControlCommandTypeContainer", 8)
+ if err != nil {
+ return 0, errors.Wrap(err, "error reading TriggerControlCommandTypeContainer")
+ }
+ if enum, ok := TriggerControlCommandTypeContainerByValue(val); !ok {
+ log.Debug().Msgf("no value %x found for RequestType", val)
+ return TriggerControlCommandTypeContainer(val), nil
+ } else {
+ return enum, nil
+ }
+}
+
+func (e TriggerControlCommandTypeContainer) Serialize(writeBuffer utils.WriteBuffer) error {
+ return writeBuffer.WriteUint8("TriggerControlCommandTypeContainer", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
+}
+
+// PLC4XEnumName returns the name that is used in code to identify this enum
+func (e TriggerControlCommandTypeContainer) PLC4XEnumName() string {
+ switch e {
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMin_1Bytes:
+ return "TriggerControlCommandTriggerMin_1Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent0_2Bytes:
+ return "TriggerControlCommandTriggerEvent0_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandIndicatorKill_1Bytes:
+ return "TriggerControlCommandIndicatorKill_1Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent1_2Bytes:
+ return "TriggerControlCommandTriggerEvent1_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent2_2Bytes:
+ return "TriggerControlCommandTriggerEvent2_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent3_2Bytes:
+ return "TriggerControlCommandTriggerEvent3_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent4_2Bytes:
+ return "TriggerControlCommandTriggerEvent4_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent5_2Bytes:
+ return "TriggerControlCommandTriggerEvent5_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent6_2Bytes:
+ return "TriggerControlCommandTriggerEvent6_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent7_2Bytes:
+ return "TriggerControlCommandTriggerEvent7_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent8_2Bytes:
+ return "TriggerControlCommandTriggerEvent8_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent9_2Bytes:
+ return "TriggerControlCommandTriggerEvent9_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent10_2Bytes:
+ return "TriggerControlCommandTriggerEvent10_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent11_2Bytes:
+ return "TriggerControlCommandTriggerEvent11_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent12_2Bytes:
+ return "TriggerControlCommandTriggerEvent12_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent13_2Bytes:
+ return "TriggerControlCommandTriggerEvent13_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent14_2Bytes:
+ return "TriggerControlCommandTriggerEvent14_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerMax_1Bytes:
+ return "TriggerControlCommandTriggerMax_1Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandTriggerEvent15_2Bytes:
+ return "TriggerControlCommandTriggerEvent15_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_0Bytes:
+ return "TriggerControlCommandLabel_0Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_1Bytes:
+ return "TriggerControlCommandLabel_1Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_2Bytes:
+ return "TriggerControlCommandLabel_2Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_3Bytes:
+ return "TriggerControlCommandLabel_3Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_4Bytes:
+ return "TriggerControlCommandLabel_4Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_5Bytes:
+ return "TriggerControlCommandLabel_5Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_6Bytes:
+ return "TriggerControlCommandLabel_6Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_7Bytes:
+ return "TriggerControlCommandLabel_7Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_8Bytes:
+ return "TriggerControlCommandLabel_8Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_9Bytes:
+ return "TriggerControlCommandLabel_9Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_10Bytes:
+ return "TriggerControlCommandLabel_10Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_11Bytes:
+ return "TriggerControlCommandLabel_11Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_12Bytes:
+ return "TriggerControlCommandLabel_12Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_13Bytes:
+ return "TriggerControlCommandLabel_13Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_14Bytes:
+ return "TriggerControlCommandLabel_14Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_15Bytes:
+ return "TriggerControlCommandLabel_15Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_16Bytes:
+ return "TriggerControlCommandLabel_16Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_17Bytes:
+ return "TriggerControlCommandLabel_17Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_18Bytes:
+ return "TriggerControlCommandLabel_18Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_19Bytes:
+ return "TriggerControlCommandLabel_19Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_20Bytes:
+ return "TriggerControlCommandLabel_20Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_21Bytes:
+ return "TriggerControlCommandLabel_21Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_22Bytes:
+ return "TriggerControlCommandLabel_22Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_23Bytes:
+ return "TriggerControlCommandLabel_23Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_24Bytes:
+ return "TriggerControlCommandLabel_24Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_25Bytes:
+ return "TriggerControlCommandLabel_25Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_26Bytes:
+ return "TriggerControlCommandLabel_26Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_27Bytes:
+ return "TriggerControlCommandLabel_27Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_28Bytes:
+ return "TriggerControlCommandLabel_28Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_29Bytes:
+ return "TriggerControlCommandLabel_29Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_30Bytes:
+ return "TriggerControlCommandLabel_30Bytes"
+ case TriggerControlCommandTypeContainer_TriggerControlCommandLabel_31Bytes:
+ return "TriggerControlCommandLabel_31Bytes"
+ }
+ return ""
+}
+
+func (e TriggerControlCommandTypeContainer) String() string {
+ return e.PLC4XEnumName()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlData.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlData.go
new file mode 100644
index 000000000..ef5d40e63
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlData.go
@@ -0,0 +1,294 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlData is the corresponding interface of TriggerControlData
+type TriggerControlData interface {
+ utils.LengthAware
+ utils.Serializable
+ // GetCommandTypeContainer returns CommandTypeContainer (property field)
+ GetCommandTypeContainer() TriggerControlCommandTypeContainer
+ // GetTriggerGroup returns TriggerGroup (property field)
+ GetTriggerGroup() byte
+ // GetCommandType returns CommandType (virtual field)
+ GetCommandType() TriggerControlCommandType
+ // GetIsUnused returns IsUnused (virtual field)
+ GetIsUnused() bool
+}
+
+// TriggerControlDataExactly can be used when we want exactly this type and not a type which fulfills TriggerControlData.
+// This is useful for switch cases.
+type TriggerControlDataExactly interface {
+ TriggerControlData
+ isTriggerControlData() bool
+}
+
+// _TriggerControlData is the data-structure of this message
+type _TriggerControlData struct {
+ _TriggerControlDataChildRequirements
+ CommandTypeContainer TriggerControlCommandTypeContainer
+ TriggerGroup byte
+}
+
+type _TriggerControlDataChildRequirements interface {
+ utils.Serializable
+ GetLengthInBits() uint16
+ GetLengthInBitsConditional(lastItem bool) uint16
+}
+
+type TriggerControlDataParent interface {
+ SerializeParent(writeBuffer utils.WriteBuffer, child TriggerControlData, serializeChildFunction func() error) error
+ GetTypeName() string
+}
+
+type TriggerControlDataChild interface {
+ utils.Serializable
+ InitializeParent(parent TriggerControlData, commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte)
+ GetParent() *TriggerControlData
+
+ GetTypeName() string
+ TriggerControlData
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *_TriggerControlData) GetCommandTypeContainer() TriggerControlCommandTypeContainer {
+ return m.CommandTypeContainer
+}
+
+func (m *_TriggerControlData) GetTriggerGroup() byte {
+ return m.TriggerGroup
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for virtual fields.
+///////////////////////
+
+func (m *_TriggerControlData) GetCommandType() TriggerControlCommandType {
+ return CastTriggerControlCommandType(m.GetCommandTypeContainer().CommandType())
+}
+
+func (m *_TriggerControlData) GetIsUnused() bool {
+ return bool(bool((m.GetTriggerGroup()) > (0xFE)))
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewTriggerControlData factory function for _TriggerControlData
+func NewTriggerControlData(commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) *_TriggerControlData {
+ return &_TriggerControlData{CommandTypeContainer: commandTypeContainer, TriggerGroup: triggerGroup}
+}
+
+// Deprecated: use the interface for direct cast
+func CastTriggerControlData(structType interface{}) TriggerControlData {
+ if casted, ok := structType.(TriggerControlData); ok {
+ return casted
+ }
+ if casted, ok := structType.(*TriggerControlData); ok {
+ return *casted
+ }
+ return nil
+}
+
+func (m *_TriggerControlData) GetTypeName() string {
+ return "TriggerControlData"
+}
+
+func (m *_TriggerControlData) GetParentLengthInBits() uint16 {
+ lengthInBits := uint16(0)
+
+ // Simple field (commandTypeContainer)
+ lengthInBits += 8
+
+ // A virtual field doesn't have any in- or output.
+
+ // Simple field (triggerGroup)
+ lengthInBits += 8
+
+ // A virtual field doesn't have any in- or output.
+
+ return lengthInBits
+}
+
+func (m *_TriggerControlData) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlDataParse(readBuffer utils.ReadBuffer) (TriggerControlData, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("TriggerControlData"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for TriggerControlData")
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ // Validation
+ if !(KnowsTriggerControlCommandTypeContainer(readBuffer)) {
+ return nil, errors.WithStack(utils.ParseAssertError{"no command type could be found"})
+ }
+
+ // Simple Field (commandTypeContainer)
+ if pullErr := readBuffer.PullContext("commandTypeContainer"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for commandTypeContainer")
+ }
+ _commandTypeContainer, _commandTypeContainerErr := TriggerControlCommandTypeContainerParse(readBuffer)
+ if _commandTypeContainerErr != nil {
+ return nil, errors.Wrap(_commandTypeContainerErr, "Error parsing 'commandTypeContainer' field of TriggerControlData")
+ }
+ commandTypeContainer := _commandTypeContainer
+ if closeErr := readBuffer.CloseContext("commandTypeContainer"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for commandTypeContainer")
+ }
+
+ // Virtual field
+ _commandType := commandTypeContainer.CommandType()
+ commandType := TriggerControlCommandType(_commandType)
+ _ = commandType
+
+ // Simple Field (triggerGroup)
+ _triggerGroup, _triggerGroupErr := readBuffer.ReadByte("triggerGroup")
+ if _triggerGroupErr != nil {
+ return nil, errors.Wrap(_triggerGroupErr, "Error parsing 'triggerGroup' field of TriggerControlData")
+ }
+ triggerGroup := _triggerGroup
+
+ // Virtual field
+ _isUnused := bool((triggerGroup) > (0xFE))
+ isUnused := bool(_isUnused)
+ _ = isUnused
+
+ // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+ type TriggerControlDataChildSerializeRequirement interface {
+ TriggerControlData
+ InitializeParent(TriggerControlData, TriggerControlCommandTypeContainer, byte)
+ GetParent() TriggerControlData
+ }
+ var _childTemp interface{}
+ var _child TriggerControlDataChildSerializeRequirement
+ var typeSwitchError error
+ switch {
+ case commandType == TriggerControlCommandType_TRIGGER_EVENT: // TriggerControlDataTriggerEvent
+ _childTemp, typeSwitchError = TriggerControlDataTriggerEventParse(readBuffer)
+ case commandType == TriggerControlCommandType_TRIGGER_MIN: // TriggerControlDataTriggerMin
+ _childTemp, typeSwitchError = TriggerControlDataTriggerMinParse(readBuffer)
+ case commandType == TriggerControlCommandType_TRIGGER_MAX: // TriggerControlDataTriggerMin
+ _childTemp, typeSwitchError = TriggerControlDataTriggerMinParse(readBuffer)
+ case commandType == TriggerControlCommandType_INDICATOR_KILL: // TriggerControlDataIndicatorKill
+ _childTemp, typeSwitchError = TriggerControlDataIndicatorKillParse(readBuffer)
+ case commandType == TriggerControlCommandType_LABEL: // TriggerControlDataLabel
+ _childTemp, typeSwitchError = TriggerControlDataLabelParse(readBuffer, commandTypeContainer)
+ default:
+ typeSwitchError = errors.Errorf("Unmapped type for parameters [commandType=%v]", commandType)
+ }
+ if typeSwitchError != nil {
+ return nil, errors.Wrap(typeSwitchError, "Error parsing sub-type for type-switch of TriggerControlData")
+ }
+ _child = _childTemp.(TriggerControlDataChildSerializeRequirement)
+
+ if closeErr := readBuffer.CloseContext("TriggerControlData"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for TriggerControlData")
+ }
+
+ // Finish initializing
+ _child.InitializeParent(_child, commandTypeContainer, triggerGroup)
+ return _child, nil
+}
+
+func (pm *_TriggerControlData) SerializeParent(writeBuffer utils.WriteBuffer, child TriggerControlData, serializeChildFunction func() error) error {
+ // We redirect all calls through client as some methods are only implemented there
+ m := child
+ _ = m
+ positionAware := writeBuffer
+ _ = positionAware
+ if pushErr := writeBuffer.PushContext("TriggerControlData"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for TriggerControlData")
+ }
+
+ // Simple Field (commandTypeContainer)
+ if pushErr := writeBuffer.PushContext("commandTypeContainer"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for commandTypeContainer")
+ }
+ _commandTypeContainerErr := writeBuffer.WriteSerializable(m.GetCommandTypeContainer())
+ if popErr := writeBuffer.PopContext("commandTypeContainer"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for commandTypeContainer")
+ }
+ if _commandTypeContainerErr != nil {
+ return errors.Wrap(_commandTypeContainerErr, "Error serializing 'commandTypeContainer' field")
+ }
+ // Virtual field
+ if _commandTypeErr := writeBuffer.WriteVirtual("commandType", m.GetCommandType()); _commandTypeErr != nil {
+ return errors.Wrap(_commandTypeErr, "Error serializing 'commandType' field")
+ }
+
+ // Simple Field (triggerGroup)
+ triggerGroup := byte(m.GetTriggerGroup())
+ _triggerGroupErr := writeBuffer.WriteByte("triggerGroup", (triggerGroup))
+ if _triggerGroupErr != nil {
+ return errors.Wrap(_triggerGroupErr, "Error serializing 'triggerGroup' field")
+ }
+ // Virtual field
+ if _isUnusedErr := writeBuffer.WriteVirtual("isUnused", m.GetIsUnused()); _isUnusedErr != nil {
+ return errors.Wrap(_isUnusedErr, "Error serializing 'isUnused' field")
+ }
+
+ // Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+ if _typeSwitchErr := serializeChildFunction(); _typeSwitchErr != nil {
+ return errors.Wrap(_typeSwitchErr, "Error serializing sub-type field")
+ }
+
+ if popErr := writeBuffer.PopContext("TriggerControlData"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for TriggerControlData")
+ }
+ return nil
+}
+
+func (m *_TriggerControlData) isTriggerControlData() bool {
+ return true
+}
+
+func (m *_TriggerControlData) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ writeBuffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := writeBuffer.WriteSerializable(m); err != nil {
+ return err.Error()
+ }
+ return writeBuffer.GetBox().String()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlDataIndicatorKill.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlDataIndicatorKill.go
new file mode 100644
index 000000000..c5369608d
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlDataIndicatorKill.go
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlDataIndicatorKill is the corresponding interface of TriggerControlDataIndicatorKill
+type TriggerControlDataIndicatorKill interface {
+ utils.LengthAware
+ utils.Serializable
+ TriggerControlData
+}
+
+// TriggerControlDataIndicatorKillExactly can be used when we want exactly this type and not a type which fulfills TriggerControlDataIndicatorKill.
+// This is useful for switch cases.
+type TriggerControlDataIndicatorKillExactly interface {
+ TriggerControlDataIndicatorKill
+ isTriggerControlDataIndicatorKill() bool
+}
+
+// _TriggerControlDataIndicatorKill is the data-structure of this message
+type _TriggerControlDataIndicatorKill struct {
+ *_TriggerControlData
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for discriminator values.
+///////////////////////
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+func (m *_TriggerControlDataIndicatorKill) InitializeParent(parent TriggerControlData, commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) {
+ m.CommandTypeContainer = commandTypeContainer
+ m.TriggerGroup = triggerGroup
+}
+
+func (m *_TriggerControlDataIndicatorKill) GetParent() TriggerControlData {
+ return m._TriggerControlData
+}
+
+// NewTriggerControlDataIndicatorKill factory function for _TriggerControlDataIndicatorKill
+func NewTriggerControlDataIndicatorKill(commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) *_TriggerControlDataIndicatorKill {
+ _result := &_TriggerControlDataIndicatorKill{
+ _TriggerControlData: NewTriggerControlData(commandTypeContainer, triggerGroup),
+ }
+ _result._TriggerControlData._TriggerControlDataChildRequirements = _result
+ return _result
+}
+
+// Deprecated: use the interface for direct cast
+func CastTriggerControlDataIndicatorKill(structType interface{}) TriggerControlDataIndicatorKill {
+ if casted, ok := structType.(TriggerControlDataIndicatorKill); ok {
+ return casted
+ }
+ if casted, ok := structType.(*TriggerControlDataIndicatorKill); ok {
+ return *casted
+ }
+ return nil
+}
+
+func (m *_TriggerControlDataIndicatorKill) GetTypeName() string {
+ return "TriggerControlDataIndicatorKill"
+}
+
+func (m *_TriggerControlDataIndicatorKill) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *_TriggerControlDataIndicatorKill) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(m.GetParentLengthInBits())
+
+ return lengthInBits
+}
+
+func (m *_TriggerControlDataIndicatorKill) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlDataIndicatorKillParse(readBuffer utils.ReadBuffer) (TriggerControlDataIndicatorKill, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("TriggerControlDataIndicatorKill"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for TriggerControlDataIndicatorKill")
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ if closeErr := readBuffer.CloseContext("TriggerControlDataIndicatorKill"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for TriggerControlDataIndicatorKill")
+ }
+
+ // Create a partially initialized instance
+ _child := &_TriggerControlDataIndicatorKill{
+ _TriggerControlData: &_TriggerControlData{},
+ }
+ _child._TriggerControlData._TriggerControlDataChildRequirements = _child
+ return _child, nil
+}
+
+func (m *_TriggerControlDataIndicatorKill) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ ser := func() error {
+ if pushErr := writeBuffer.PushContext("TriggerControlDataIndicatorKill"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for TriggerControlDataIndicatorKill")
+ }
+
+ if popErr := writeBuffer.PopContext("TriggerControlDataIndicatorKill"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for TriggerControlDataIndicatorKill")
+ }
+ return nil
+ }
+ return m.SerializeParent(writeBuffer, m, ser)
+}
+
+func (m *_TriggerControlDataIndicatorKill) isTriggerControlDataIndicatorKill() bool {
+ return true
+}
+
+func (m *_TriggerControlDataIndicatorKill) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ writeBuffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := writeBuffer.WriteSerializable(m); err != nil {
+ return err.Error()
+ }
+ return writeBuffer.GetBox().String()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlDataLabel.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlDataLabel.go
new file mode 100644
index 000000000..56ded8900
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlDataLabel.go
@@ -0,0 +1,300 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlDataLabel is the corresponding interface of TriggerControlDataLabel
+type TriggerControlDataLabel interface {
+ utils.LengthAware
+ utils.Serializable
+ TriggerControlData
+ // GetTriggerControlOptions returns TriggerControlOptions (property field)
+ GetTriggerControlOptions() TriggerControlLabelOptions
+ // GetActionSelector returns ActionSelector (property field)
+ GetActionSelector() byte
+ // GetLanguage returns Language (property field)
+ GetLanguage() *Language
+ // GetData returns Data (property field)
+ GetData() []byte
+}
+
+// TriggerControlDataLabelExactly can be used when we want exactly this type and not a type which fulfills TriggerControlDataLabel.
+// This is useful for switch cases.
+type TriggerControlDataLabelExactly interface {
+ TriggerControlDataLabel
+ isTriggerControlDataLabel() bool
+}
+
+// _TriggerControlDataLabel is the data-structure of this message
+type _TriggerControlDataLabel struct {
+ *_TriggerControlData
+ TriggerControlOptions TriggerControlLabelOptions
+ ActionSelector byte
+ Language *Language
+ Data []byte
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for discriminator values.
+///////////////////////
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+func (m *_TriggerControlDataLabel) InitializeParent(parent TriggerControlData, commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) {
+ m.CommandTypeContainer = commandTypeContainer
+ m.TriggerGroup = triggerGroup
+}
+
+func (m *_TriggerControlDataLabel) GetParent() TriggerControlData {
+ return m._TriggerControlData
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *_TriggerControlDataLabel) GetTriggerControlOptions() TriggerControlLabelOptions {
+ return m.TriggerControlOptions
+}
+
+func (m *_TriggerControlDataLabel) GetActionSelector() byte {
+ return m.ActionSelector
+}
+
+func (m *_TriggerControlDataLabel) GetLanguage() *Language {
+ return m.Language
+}
+
+func (m *_TriggerControlDataLabel) GetData() []byte {
+ return m.Data
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewTriggerControlDataLabel factory function for _TriggerControlDataLabel
+func NewTriggerControlDataLabel(triggerControlOptions TriggerControlLabelOptions, actionSelector byte, language *Language, data []byte, commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) *_TriggerControlDataLabel {
+ _result := &_TriggerControlDataLabel{
+ TriggerControlOptions: triggerControlOptions,
+ ActionSelector: actionSelector,
+ Language: language,
+ Data: data,
+ _TriggerControlData: NewTriggerControlData(commandTypeContainer, triggerGroup),
+ }
+ _result._TriggerControlData._TriggerControlDataChildRequirements = _result
+ return _result
+}
+
+// Deprecated: use the interface for direct cast
+func CastTriggerControlDataLabel(structType interface{}) TriggerControlDataLabel {
+ if casted, ok := structType.(TriggerControlDataLabel); ok {
+ return casted
+ }
+ if casted, ok := structType.(*TriggerControlDataLabel); ok {
+ return *casted
+ }
+ return nil
+}
+
+func (m *_TriggerControlDataLabel) GetTypeName() string {
+ return "TriggerControlDataLabel"
+}
+
+func (m *_TriggerControlDataLabel) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *_TriggerControlDataLabel) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(m.GetParentLengthInBits())
+
+ // Simple field (triggerControlOptions)
+ lengthInBits += m.TriggerControlOptions.GetLengthInBits()
+
+ // Simple field (actionSelector)
+ lengthInBits += 8
+
+ // Optional Field (language)
+ if m.Language != nil {
+ lengthInBits += 8
+ }
+
+ // Array field
+ if len(m.Data) > 0 {
+ lengthInBits += 8 * uint16(len(m.Data))
+ }
+
+ return lengthInBits
+}
+
+func (m *_TriggerControlDataLabel) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlDataLabelParse(readBuffer utils.ReadBuffer, commandTypeContainer TriggerControlCommandTypeContainer) (TriggerControlDataLabel, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("TriggerControlDataLabel"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for TriggerControlDataLabel")
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ // Simple Field (triggerControlOptions)
+ if pullErr := readBuffer.PullContext("triggerControlOptions"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for triggerControlOptions")
+ }
+ _triggerControlOptions, _triggerControlOptionsErr := TriggerControlLabelOptionsParse(readBuffer)
+ if _triggerControlOptionsErr != nil {
+ return nil, errors.Wrap(_triggerControlOptionsErr, "Error parsing 'triggerControlOptions' field of TriggerControlDataLabel")
+ }
+ triggerControlOptions := _triggerControlOptions.(TriggerControlLabelOptions)
+ if closeErr := readBuffer.CloseContext("triggerControlOptions"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for triggerControlOptions")
+ }
+
+ // Simple Field (actionSelector)
+ _actionSelector, _actionSelectorErr := readBuffer.ReadByte("actionSelector")
+ if _actionSelectorErr != nil {
+ return nil, errors.Wrap(_actionSelectorErr, "Error parsing 'actionSelector' field of TriggerControlDataLabel")
+ }
+ actionSelector := _actionSelector
+
+ // Optional Field (language) (Can be skipped, if a given expression evaluates to false)
+ var language *Language = nil
+ if bool((triggerControlOptions.GetLabelType()) != (TriggerControlLabelType_LOAD_DYNAMIC_ICON)) {
+ if pullErr := readBuffer.PullContext("language"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for language")
+ }
+ _val, _err := LanguageParse(readBuffer)
+ if _err != nil {
+ return nil, errors.Wrap(_err, "Error parsing 'language' field of TriggerControlDataLabel")
+ }
+ language = &_val
+ if closeErr := readBuffer.CloseContext("language"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for language")
+ }
+ }
+ // Byte Array field (data)
+ numberOfBytesdata := int(uint16(uint16(commandTypeContainer.NumBytes()) - uint16(uint16(utils.InlineIf(bool(bool((triggerControlOptions.GetLabelType()) != (TriggerControlLabelType_LOAD_DYNAMIC_ICON))), func() interface{} { return uint16(uint16(uint16(4))) }, func() interface{} { return uint16(uint16(uint16(3))) }).(uint16)))))
+ data, _readArrayErr := readBuffer.ReadByteArray("data", numberOfBytesdata)
+ if _readArrayErr != nil {
+ return nil, errors.Wrap(_readArrayErr, "Error parsing 'data' field of TriggerControlDataLabel")
+ }
+
+ if closeErr := readBuffer.CloseContext("TriggerControlDataLabel"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for TriggerControlDataLabel")
+ }
+
+ // Create a partially initialized instance
+ _child := &_TriggerControlDataLabel{
+ TriggerControlOptions: triggerControlOptions,
+ ActionSelector: actionSelector,
+ Language: language,
+ Data: data,
+ _TriggerControlData: &_TriggerControlData{},
+ }
+ _child._TriggerControlData._TriggerControlDataChildRequirements = _child
+ return _child, nil
+}
+
+func (m *_TriggerControlDataLabel) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ ser := func() error {
+ if pushErr := writeBuffer.PushContext("TriggerControlDataLabel"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for TriggerControlDataLabel")
+ }
+
+ // Simple Field (triggerControlOptions)
+ if pushErr := writeBuffer.PushContext("triggerControlOptions"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for triggerControlOptions")
+ }
+ _triggerControlOptionsErr := writeBuffer.WriteSerializable(m.GetTriggerControlOptions())
+ if popErr := writeBuffer.PopContext("triggerControlOptions"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for triggerControlOptions")
+ }
+ if _triggerControlOptionsErr != nil {
+ return errors.Wrap(_triggerControlOptionsErr, "Error serializing 'triggerControlOptions' field")
+ }
+
+ // Simple Field (actionSelector)
+ actionSelector := byte(m.GetActionSelector())
+ _actionSelectorErr := writeBuffer.WriteByte("actionSelector", (actionSelector))
+ if _actionSelectorErr != nil {
+ return errors.Wrap(_actionSelectorErr, "Error serializing 'actionSelector' field")
+ }
+
+ // Optional Field (language) (Can be skipped, if the value is null)
+ var language *Language = nil
+ if m.GetLanguage() != nil {
+ if pushErr := writeBuffer.PushContext("language"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for language")
+ }
+ language = m.GetLanguage()
+ _languageErr := writeBuffer.WriteSerializable(language)
+ if popErr := writeBuffer.PopContext("language"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for language")
+ }
+ if _languageErr != nil {
+ return errors.Wrap(_languageErr, "Error serializing 'language' field")
+ }
+ }
+
+ // Array Field (data)
+ // Byte Array field (data)
+ if err := writeBuffer.WriteByteArray("data", m.GetData()); err != nil {
+ return errors.Wrap(err, "Error serializing 'data' field")
+ }
+
+ if popErr := writeBuffer.PopContext("TriggerControlDataLabel"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for TriggerControlDataLabel")
+ }
+ return nil
+ }
+ return m.SerializeParent(writeBuffer, m, ser)
+}
+
+func (m *_TriggerControlDataLabel) isTriggerControlDataLabel() bool {
+ return true
+}
+
+func (m *_TriggerControlDataLabel) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ writeBuffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := writeBuffer.WriteSerializable(m); err != nil {
+ return err.Error()
+ }
+ return writeBuffer.GetBox().String()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlDataTriggerEvent.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlDataTriggerEvent.go
new file mode 100644
index 000000000..58128d71c
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlDataTriggerEvent.go
@@ -0,0 +1,191 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlDataTriggerEvent is the corresponding interface of TriggerControlDataTriggerEvent
+type TriggerControlDataTriggerEvent interface {
+ utils.LengthAware
+ utils.Serializable
+ TriggerControlData
+ // GetActionSelector returns ActionSelector (property field)
+ GetActionSelector() byte
+}
+
+// TriggerControlDataTriggerEventExactly can be used when we want exactly this type and not a type which fulfills TriggerControlDataTriggerEvent.
+// This is useful for switch cases.
+type TriggerControlDataTriggerEventExactly interface {
+ TriggerControlDataTriggerEvent
+ isTriggerControlDataTriggerEvent() bool
+}
+
+// _TriggerControlDataTriggerEvent is the data-structure of this message
+type _TriggerControlDataTriggerEvent struct {
+ *_TriggerControlData
+ ActionSelector byte
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for discriminator values.
+///////////////////////
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+func (m *_TriggerControlDataTriggerEvent) InitializeParent(parent TriggerControlData, commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) {
+ m.CommandTypeContainer = commandTypeContainer
+ m.TriggerGroup = triggerGroup
+}
+
+func (m *_TriggerControlDataTriggerEvent) GetParent() TriggerControlData {
+ return m._TriggerControlData
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *_TriggerControlDataTriggerEvent) GetActionSelector() byte {
+ return m.ActionSelector
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewTriggerControlDataTriggerEvent factory function for _TriggerControlDataTriggerEvent
+func NewTriggerControlDataTriggerEvent(actionSelector byte, commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) *_TriggerControlDataTriggerEvent {
+ _result := &_TriggerControlDataTriggerEvent{
+ ActionSelector: actionSelector,
+ _TriggerControlData: NewTriggerControlData(commandTypeContainer, triggerGroup),
+ }
+ _result._TriggerControlData._TriggerControlDataChildRequirements = _result
+ return _result
+}
+
+// Deprecated: use the interface for direct cast
+func CastTriggerControlDataTriggerEvent(structType interface{}) TriggerControlDataTriggerEvent {
+ if casted, ok := structType.(TriggerControlDataTriggerEvent); ok {
+ return casted
+ }
+ if casted, ok := structType.(*TriggerControlDataTriggerEvent); ok {
+ return *casted
+ }
+ return nil
+}
+
+func (m *_TriggerControlDataTriggerEvent) GetTypeName() string {
+ return "TriggerControlDataTriggerEvent"
+}
+
+func (m *_TriggerControlDataTriggerEvent) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *_TriggerControlDataTriggerEvent) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(m.GetParentLengthInBits())
+
+ // Simple field (actionSelector)
+ lengthInBits += 8
+
+ return lengthInBits
+}
+
+func (m *_TriggerControlDataTriggerEvent) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlDataTriggerEventParse(readBuffer utils.ReadBuffer) (TriggerControlDataTriggerEvent, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("TriggerControlDataTriggerEvent"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for TriggerControlDataTriggerEvent")
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ // Simple Field (actionSelector)
+ _actionSelector, _actionSelectorErr := readBuffer.ReadByte("actionSelector")
+ if _actionSelectorErr != nil {
+ return nil, errors.Wrap(_actionSelectorErr, "Error parsing 'actionSelector' field of TriggerControlDataTriggerEvent")
+ }
+ actionSelector := _actionSelector
+
+ if closeErr := readBuffer.CloseContext("TriggerControlDataTriggerEvent"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for TriggerControlDataTriggerEvent")
+ }
+
+ // Create a partially initialized instance
+ _child := &_TriggerControlDataTriggerEvent{
+ ActionSelector: actionSelector,
+ _TriggerControlData: &_TriggerControlData{},
+ }
+ _child._TriggerControlData._TriggerControlDataChildRequirements = _child
+ return _child, nil
+}
+
+func (m *_TriggerControlDataTriggerEvent) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ ser := func() error {
+ if pushErr := writeBuffer.PushContext("TriggerControlDataTriggerEvent"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for TriggerControlDataTriggerEvent")
+ }
+
+ // Simple Field (actionSelector)
+ actionSelector := byte(m.GetActionSelector())
+ _actionSelectorErr := writeBuffer.WriteByte("actionSelector", (actionSelector))
+ if _actionSelectorErr != nil {
+ return errors.Wrap(_actionSelectorErr, "Error serializing 'actionSelector' field")
+ }
+
+ if popErr := writeBuffer.PopContext("TriggerControlDataTriggerEvent"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for TriggerControlDataTriggerEvent")
+ }
+ return nil
+ }
+ return m.SerializeParent(writeBuffer, m, ser)
+}
+
+func (m *_TriggerControlDataTriggerEvent) isTriggerControlDataTriggerEvent() bool {
+ return true
+}
+
+func (m *_TriggerControlDataTriggerEvent) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ writeBuffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := writeBuffer.WriteSerializable(m); err != nil {
+ return err.Error()
+ }
+ return writeBuffer.GetBox().String()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlDataTriggerMin.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlDataTriggerMin.go
new file mode 100644
index 000000000..1cdbb4a0a
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlDataTriggerMin.go
@@ -0,0 +1,155 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlDataTriggerMin is the corresponding interface of TriggerControlDataTriggerMin
+type TriggerControlDataTriggerMin interface {
+ utils.LengthAware
+ utils.Serializable
+ TriggerControlData
+}
+
+// TriggerControlDataTriggerMinExactly can be used when we want exactly this type and not a type which fulfills TriggerControlDataTriggerMin.
+// This is useful for switch cases.
+type TriggerControlDataTriggerMinExactly interface {
+ TriggerControlDataTriggerMin
+ isTriggerControlDataTriggerMin() bool
+}
+
+// _TriggerControlDataTriggerMin is the data-structure of this message
+type _TriggerControlDataTriggerMin struct {
+ *_TriggerControlData
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for discriminator values.
+///////////////////////
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+func (m *_TriggerControlDataTriggerMin) InitializeParent(parent TriggerControlData, commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) {
+ m.CommandTypeContainer = commandTypeContainer
+ m.TriggerGroup = triggerGroup
+}
+
+func (m *_TriggerControlDataTriggerMin) GetParent() TriggerControlData {
+ return m._TriggerControlData
+}
+
+// NewTriggerControlDataTriggerMin factory function for _TriggerControlDataTriggerMin
+func NewTriggerControlDataTriggerMin(commandTypeContainer TriggerControlCommandTypeContainer, triggerGroup byte) *_TriggerControlDataTriggerMin {
+ _result := &_TriggerControlDataTriggerMin{
+ _TriggerControlData: NewTriggerControlData(commandTypeContainer, triggerGroup),
+ }
+ _result._TriggerControlData._TriggerControlDataChildRequirements = _result
+ return _result
+}
+
+// Deprecated: use the interface for direct cast
+func CastTriggerControlDataTriggerMin(structType interface{}) TriggerControlDataTriggerMin {
+ if casted, ok := structType.(TriggerControlDataTriggerMin); ok {
+ return casted
+ }
+ if casted, ok := structType.(*TriggerControlDataTriggerMin); ok {
+ return *casted
+ }
+ return nil
+}
+
+func (m *_TriggerControlDataTriggerMin) GetTypeName() string {
+ return "TriggerControlDataTriggerMin"
+}
+
+func (m *_TriggerControlDataTriggerMin) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *_TriggerControlDataTriggerMin) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(m.GetParentLengthInBits())
+
+ return lengthInBits
+}
+
+func (m *_TriggerControlDataTriggerMin) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlDataTriggerMinParse(readBuffer utils.ReadBuffer) (TriggerControlDataTriggerMin, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("TriggerControlDataTriggerMin"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for TriggerControlDataTriggerMin")
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ if closeErr := readBuffer.CloseContext("TriggerControlDataTriggerMin"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for TriggerControlDataTriggerMin")
+ }
+
+ // Create a partially initialized instance
+ _child := &_TriggerControlDataTriggerMin{
+ _TriggerControlData: &_TriggerControlData{},
+ }
+ _child._TriggerControlData._TriggerControlDataChildRequirements = _child
+ return _child, nil
+}
+
+func (m *_TriggerControlDataTriggerMin) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ ser := func() error {
+ if pushErr := writeBuffer.PushContext("TriggerControlDataTriggerMin"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for TriggerControlDataTriggerMin")
+ }
+
+ if popErr := writeBuffer.PopContext("TriggerControlDataTriggerMin"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for TriggerControlDataTriggerMin")
+ }
+ return nil
+ }
+ return m.SerializeParent(writeBuffer, m, ser)
+}
+
+func (m *_TriggerControlDataTriggerMin) isTriggerControlDataTriggerMin() bool {
+ return true
+}
+
+func (m *_TriggerControlDataTriggerMin) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ writeBuffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := writeBuffer.WriteSerializable(m); err != nil {
+ return err.Error()
+ }
+ return writeBuffer.GetBox().String()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelFlavour.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelFlavour.go
new file mode 100644
index 000000000..cfb4b9305
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelFlavour.go
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+ "github.com/rs/zerolog/log"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlLabelFlavour is an enum
+type TriggerControlLabelFlavour uint8
+
+type ITriggerControlLabelFlavour interface {
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+const (
+ TriggerControlLabelFlavour_FLAVOUR_0 TriggerControlLabelFlavour = 0
+ TriggerControlLabelFlavour_FLAVOUR_1 TriggerControlLabelFlavour = 1
+ TriggerControlLabelFlavour_FLAVOUR_2 TriggerControlLabelFlavour = 2
+ TriggerControlLabelFlavour_FLAVOUR_3 TriggerControlLabelFlavour = 3
+)
+
+var TriggerControlLabelFlavourValues []TriggerControlLabelFlavour
+
+func init() {
+ _ = errors.New
+ TriggerControlLabelFlavourValues = []TriggerControlLabelFlavour{
+ TriggerControlLabelFlavour_FLAVOUR_0,
+ TriggerControlLabelFlavour_FLAVOUR_1,
+ TriggerControlLabelFlavour_FLAVOUR_2,
+ TriggerControlLabelFlavour_FLAVOUR_3,
+ }
+}
+
+func TriggerControlLabelFlavourByValue(value uint8) (enum TriggerControlLabelFlavour, ok bool) {
+ switch value {
+ case 0:
+ return TriggerControlLabelFlavour_FLAVOUR_0, true
+ case 1:
+ return TriggerControlLabelFlavour_FLAVOUR_1, true
+ case 2:
+ return TriggerControlLabelFlavour_FLAVOUR_2, true
+ case 3:
+ return TriggerControlLabelFlavour_FLAVOUR_3, true
+ }
+ return 0, false
+}
+
+func TriggerControlLabelFlavourByName(value string) (enum TriggerControlLabelFlavour, ok bool) {
+ switch value {
+ case "FLAVOUR_0":
+ return TriggerControlLabelFlavour_FLAVOUR_0, true
+ case "FLAVOUR_1":
+ return TriggerControlLabelFlavour_FLAVOUR_1, true
+ case "FLAVOUR_2":
+ return TriggerControlLabelFlavour_FLAVOUR_2, true
+ case "FLAVOUR_3":
+ return TriggerControlLabelFlavour_FLAVOUR_3, true
+ }
+ return 0, false
+}
+
+func TriggerControlLabelFlavourKnows(value uint8) bool {
+ for _, typeValue := range TriggerControlLabelFlavourValues {
+ if uint8(typeValue) == value {
+ return true
+ }
+ }
+ return false
+}
+
+func CastTriggerControlLabelFlavour(structType interface{}) TriggerControlLabelFlavour {
+ castFunc := func(typ interface{}) TriggerControlLabelFlavour {
+ if sTriggerControlLabelFlavour, ok := typ.(TriggerControlLabelFlavour); ok {
+ return sTriggerControlLabelFlavour
+ }
+ return 0
+ }
+ return castFunc(structType)
+}
+
+func (m TriggerControlLabelFlavour) GetLengthInBits() uint16 {
+ return 2
+}
+
+func (m TriggerControlLabelFlavour) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlLabelFlavourParse(readBuffer utils.ReadBuffer) (TriggerControlLabelFlavour, error) {
+ val, err := readBuffer.ReadUint8("TriggerControlLabelFlavour", 2)
+ if err != nil {
+ return 0, errors.Wrap(err, "error reading TriggerControlLabelFlavour")
+ }
+ if enum, ok := TriggerControlLabelFlavourByValue(val); !ok {
+ log.Debug().Msgf("no value %x found for RequestType", val)
+ return TriggerControlLabelFlavour(val), nil
+ } else {
+ return enum, nil
+ }
+}
+
+func (e TriggerControlLabelFlavour) Serialize(writeBuffer utils.WriteBuffer) error {
+ return writeBuffer.WriteUint8("TriggerControlLabelFlavour", 2, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
+}
+
+// PLC4XEnumName returns the name that is used in code to identify this enum
+func (e TriggerControlLabelFlavour) PLC4XEnumName() string {
+ switch e {
+ case TriggerControlLabelFlavour_FLAVOUR_0:
+ return "FLAVOUR_0"
+ case TriggerControlLabelFlavour_FLAVOUR_1:
+ return "FLAVOUR_1"
+ case TriggerControlLabelFlavour_FLAVOUR_2:
+ return "FLAVOUR_2"
+ case TriggerControlLabelFlavour_FLAVOUR_3:
+ return "FLAVOUR_3"
+ }
+ return ""
+}
+
+func (e TriggerControlLabelFlavour) String() string {
+ return e.PLC4XEnumName()
+}
diff --git a/plc4go/protocols/cbus/readwrite/model/LightingLabelOptions.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelOptions.go
similarity index 60%
copy from plc4go/protocols/cbus/readwrite/model/LightingLabelOptions.go
copy to plc4go/protocols/cbus/readwrite/model/TriggerControlLabelOptions.go
index 466ac9b85..199437994 100644
--- a/plc4go/protocols/cbus/readwrite/model/LightingLabelOptions.go
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelOptions.go
@@ -27,35 +27,35 @@ import (
// Code generated by code-generation. DO NOT EDIT.
-// LightingLabelOptions is the corresponding interface of LightingLabelOptions
-type LightingLabelOptions interface {
+// TriggerControlLabelOptions is the corresponding interface of TriggerControlLabelOptions
+type TriggerControlLabelOptions interface {
utils.LengthAware
utils.Serializable
// GetReservedBit7 returns ReservedBit7 (property field)
GetReservedBit7() bool
// GetLabelFlavour returns LabelFlavour (property field)
- GetLabelFlavour() LightingLabelFlavour
- // GetReservedBit4 returns ReservedBit4 (property field)
- GetReservedBit4() bool
+ GetLabelFlavour() TriggerControlLabelFlavour
+ // GetReservedBit3 returns ReservedBit3 (property field)
+ GetReservedBit3() bool
// GetLabelType returns LabelType (property field)
- GetLabelType() LightingLabelType
+ GetLabelType() TriggerControlLabelType
// GetReservedBit0 returns ReservedBit0 (property field)
GetReservedBit0() bool
}
-// LightingLabelOptionsExactly can be used when we want exactly this type and not a type which fulfills LightingLabelOptions.
+// TriggerControlLabelOptionsExactly can be used when we want exactly this type and not a type which fulfills TriggerControlLabelOptions.
// This is useful for switch cases.
-type LightingLabelOptionsExactly interface {
- LightingLabelOptions
- isLightingLabelOptions() bool
+type TriggerControlLabelOptionsExactly interface {
+ TriggerControlLabelOptions
+ isTriggerControlLabelOptions() bool
}
-// _LightingLabelOptions is the data-structure of this message
-type _LightingLabelOptions struct {
+// _TriggerControlLabelOptions is the data-structure of this message
+type _TriggerControlLabelOptions struct {
ReservedBit7 bool
- LabelFlavour LightingLabelFlavour
- ReservedBit4 bool
- LabelType LightingLabelType
+ LabelFlavour TriggerControlLabelFlavour
+ ReservedBit3 bool
+ LabelType TriggerControlLabelType
ReservedBit0 bool
}
@@ -64,23 +64,23 @@ type _LightingLabelOptions struct {
/////////////////////// Accessors for property fields.
///////////////////////
-func (m *_LightingLabelOptions) GetReservedBit7() bool {
+func (m *_TriggerControlLabelOptions) GetReservedBit7() bool {
return m.ReservedBit7
}
-func (m *_LightingLabelOptions) GetLabelFlavour() LightingLabelFlavour {
+func (m *_TriggerControlLabelOptions) GetLabelFlavour() TriggerControlLabelFlavour {
return m.LabelFlavour
}
-func (m *_LightingLabelOptions) GetReservedBit4() bool {
- return m.ReservedBit4
+func (m *_TriggerControlLabelOptions) GetReservedBit3() bool {
+ return m.ReservedBit3
}
-func (m *_LightingLabelOptions) GetLabelType() LightingLabelType {
+func (m *_TriggerControlLabelOptions) GetLabelType() TriggerControlLabelType {
return m.LabelType
}
-func (m *_LightingLabelOptions) GetReservedBit0() bool {
+func (m *_TriggerControlLabelOptions) GetReservedBit0() bool {
return m.ReservedBit0
}
@@ -89,31 +89,31 @@ func (m *_LightingLabelOptions) GetReservedBit0() bool {
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
-// NewLightingLabelOptions factory function for _LightingLabelOptions
-func NewLightingLabelOptions(reservedBit7 bool, labelFlavour LightingLabelFlavour, reservedBit4 bool, labelType LightingLabelType, reservedBit0 bool) *_LightingLabelOptions {
- return &_LightingLabelOptions{ReservedBit7: reservedBit7, LabelFlavour: labelFlavour, ReservedBit4: reservedBit4, LabelType: labelType, ReservedBit0: reservedBit0}
+// NewTriggerControlLabelOptions factory function for _TriggerControlLabelOptions
+func NewTriggerControlLabelOptions(reservedBit7 bool, labelFlavour TriggerControlLabelFlavour, reservedBit3 bool, labelType TriggerControlLabelType, reservedBit0 bool) *_TriggerControlLabelOptions {
+ return &_TriggerControlLabelOptions{ReservedBit7: reservedBit7, LabelFlavour: labelFlavour, ReservedBit3: reservedBit3, LabelType: labelType, ReservedBit0: reservedBit0}
}
// Deprecated: use the interface for direct cast
-func CastLightingLabelOptions(structType interface{}) LightingLabelOptions {
- if casted, ok := structType.(LightingLabelOptions); ok {
+func CastTriggerControlLabelOptions(structType interface{}) TriggerControlLabelOptions {
+ if casted, ok := structType.(TriggerControlLabelOptions); ok {
return casted
}
- if casted, ok := structType.(*LightingLabelOptions); ok {
+ if casted, ok := structType.(*TriggerControlLabelOptions); ok {
return *casted
}
return nil
}
-func (m *_LightingLabelOptions) GetTypeName() string {
- return "LightingLabelOptions"
+func (m *_TriggerControlLabelOptions) GetTypeName() string {
+ return "TriggerControlLabelOptions"
}
-func (m *_LightingLabelOptions) GetLengthInBits() uint16 {
+func (m *_TriggerControlLabelOptions) GetLengthInBits() uint16 {
return m.GetLengthInBitsConditional(false)
}
-func (m *_LightingLabelOptions) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *_TriggerControlLabelOptions) GetLengthInBitsConditional(lastItem bool) uint16 {
lengthInBits := uint16(0)
// Simple field (reservedBit7)
@@ -125,7 +125,7 @@ func (m *_LightingLabelOptions) GetLengthInBitsConditional(lastItem bool) uint16
// Reserved Field (reserved)
lengthInBits += 1
- // Simple field (reservedBit4)
+ // Simple field (reservedBit3)
lengthInBits += 1
// Simple field (labelType)
@@ -137,15 +137,15 @@ func (m *_LightingLabelOptions) GetLengthInBitsConditional(lastItem bool) uint16
return lengthInBits
}
-func (m *_LightingLabelOptions) GetLengthInBytes() uint16 {
+func (m *_TriggerControlLabelOptions) GetLengthInBytes() uint16 {
return m.GetLengthInBits() / 8
}
-func LightingLabelOptionsParse(readBuffer utils.ReadBuffer) (LightingLabelOptions, error) {
+func TriggerControlLabelOptionsParse(readBuffer utils.ReadBuffer) (TriggerControlLabelOptions, error) {
positionAware := readBuffer
_ = positionAware
- if pullErr := readBuffer.PullContext("LightingLabelOptions"); pullErr != nil {
- return nil, errors.Wrap(pullErr, "Error pulling for LightingLabelOptions")
+ if pullErr := readBuffer.PullContext("TriggerControlLabelOptions"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for TriggerControlLabelOptions")
}
currentPos := positionAware.GetPos()
_ = currentPos
@@ -153,7 +153,7 @@ func LightingLabelOptionsParse(readBuffer utils.ReadBuffer) (LightingLabelOption
// Simple Field (reservedBit7)
_reservedBit7, _reservedBit7Err := readBuffer.ReadBit("reservedBit7")
if _reservedBit7Err != nil {
- return nil, errors.Wrap(_reservedBit7Err, "Error parsing 'reservedBit7' field of LightingLabelOptions")
+ return nil, errors.Wrap(_reservedBit7Err, "Error parsing 'reservedBit7' field of TriggerControlLabelOptions")
}
reservedBit7 := _reservedBit7
@@ -161,9 +161,9 @@ func LightingLabelOptionsParse(readBuffer utils.ReadBuffer) (LightingLabelOption
if pullErr := readBuffer.PullContext("labelFlavour"); pullErr != nil {
return nil, errors.Wrap(pullErr, "Error pulling for labelFlavour")
}
- _labelFlavour, _labelFlavourErr := LightingLabelFlavourParse(readBuffer)
+ _labelFlavour, _labelFlavourErr := TriggerControlLabelFlavourParse(readBuffer)
if _labelFlavourErr != nil {
- return nil, errors.Wrap(_labelFlavourErr, "Error parsing 'labelFlavour' field of LightingLabelOptions")
+ return nil, errors.Wrap(_labelFlavourErr, "Error parsing 'labelFlavour' field of TriggerControlLabelOptions")
}
labelFlavour := _labelFlavour
if closeErr := readBuffer.CloseContext("labelFlavour"); closeErr != nil {
@@ -174,7 +174,7 @@ func LightingLabelOptionsParse(readBuffer utils.ReadBuffer) (LightingLabelOption
{
reserved, _err := readBuffer.ReadBit("reserved")
if _err != nil {
- return nil, errors.Wrap(_err, "Error parsing 'reserved' field of LightingLabelOptions")
+ return nil, errors.Wrap(_err, "Error parsing 'reserved' field of TriggerControlLabelOptions")
}
if reserved != bool(false) {
log.Info().Fields(map[string]interface{}{
@@ -184,20 +184,20 @@ func LightingLabelOptionsParse(readBuffer utils.ReadBuffer) (LightingLabelOption
}
}
- // Simple Field (reservedBit4)
- _reservedBit4, _reservedBit4Err := readBuffer.ReadBit("reservedBit4")
- if _reservedBit4Err != nil {
- return nil, errors.Wrap(_reservedBit4Err, "Error parsing 'reservedBit4' field of LightingLabelOptions")
+ // Simple Field (reservedBit3)
+ _reservedBit3, _reservedBit3Err := readBuffer.ReadBit("reservedBit3")
+ if _reservedBit3Err != nil {
+ return nil, errors.Wrap(_reservedBit3Err, "Error parsing 'reservedBit3' field of TriggerControlLabelOptions")
}
- reservedBit4 := _reservedBit4
+ reservedBit3 := _reservedBit3
// Simple Field (labelType)
if pullErr := readBuffer.PullContext("labelType"); pullErr != nil {
return nil, errors.Wrap(pullErr, "Error pulling for labelType")
}
- _labelType, _labelTypeErr := LightingLabelTypeParse(readBuffer)
+ _labelType, _labelTypeErr := TriggerControlLabelTypeParse(readBuffer)
if _labelTypeErr != nil {
- return nil, errors.Wrap(_labelTypeErr, "Error parsing 'labelType' field of LightingLabelOptions")
+ return nil, errors.Wrap(_labelTypeErr, "Error parsing 'labelType' field of TriggerControlLabelOptions")
}
labelType := _labelType
if closeErr := readBuffer.CloseContext("labelType"); closeErr != nil {
@@ -207,23 +207,23 @@ func LightingLabelOptionsParse(readBuffer utils.ReadBuffer) (LightingLabelOption
// Simple Field (reservedBit0)
_reservedBit0, _reservedBit0Err := readBuffer.ReadBit("reservedBit0")
if _reservedBit0Err != nil {
- return nil, errors.Wrap(_reservedBit0Err, "Error parsing 'reservedBit0' field of LightingLabelOptions")
+ return nil, errors.Wrap(_reservedBit0Err, "Error parsing 'reservedBit0' field of TriggerControlLabelOptions")
}
reservedBit0 := _reservedBit0
- if closeErr := readBuffer.CloseContext("LightingLabelOptions"); closeErr != nil {
- return nil, errors.Wrap(closeErr, "Error closing for LightingLabelOptions")
+ if closeErr := readBuffer.CloseContext("TriggerControlLabelOptions"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for TriggerControlLabelOptions")
}
// Create the instance
- return NewLightingLabelOptions(reservedBit7, labelFlavour, reservedBit4, labelType, reservedBit0), nil
+ return NewTriggerControlLabelOptions(reservedBit7, labelFlavour, reservedBit3, labelType, reservedBit0), nil
}
-func (m *_LightingLabelOptions) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *_TriggerControlLabelOptions) Serialize(writeBuffer utils.WriteBuffer) error {
positionAware := writeBuffer
_ = positionAware
- if pushErr := writeBuffer.PushContext("LightingLabelOptions"); pushErr != nil {
- return errors.Wrap(pushErr, "Error pushing for LightingLabelOptions")
+ if pushErr := writeBuffer.PushContext("TriggerControlLabelOptions"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for TriggerControlLabelOptions")
}
// Simple Field (reservedBit7)
@@ -253,11 +253,11 @@ func (m *_LightingLabelOptions) Serialize(writeBuffer utils.WriteBuffer) error {
}
}
- // Simple Field (reservedBit4)
- reservedBit4 := bool(m.GetReservedBit4())
- _reservedBit4Err := writeBuffer.WriteBit("reservedBit4", (reservedBit4))
- if _reservedBit4Err != nil {
- return errors.Wrap(_reservedBit4Err, "Error serializing 'reservedBit4' field")
+ // Simple Field (reservedBit3)
+ reservedBit3 := bool(m.GetReservedBit3())
+ _reservedBit3Err := writeBuffer.WriteBit("reservedBit3", (reservedBit3))
+ if _reservedBit3Err != nil {
+ return errors.Wrap(_reservedBit3Err, "Error serializing 'reservedBit3' field")
}
// Simple Field (labelType)
@@ -279,17 +279,17 @@ func (m *_LightingLabelOptions) Serialize(writeBuffer utils.WriteBuffer) error {
return errors.Wrap(_reservedBit0Err, "Error serializing 'reservedBit0' field")
}
- if popErr := writeBuffer.PopContext("LightingLabelOptions"); popErr != nil {
- return errors.Wrap(popErr, "Error popping for LightingLabelOptions")
+ if popErr := writeBuffer.PopContext("TriggerControlLabelOptions"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for TriggerControlLabelOptions")
}
return nil
}
-func (m *_LightingLabelOptions) isLightingLabelOptions() bool {
+func (m *_TriggerControlLabelOptions) isTriggerControlLabelOptions() bool {
return true
}
-func (m *_LightingLabelOptions) String() string {
+func (m *_TriggerControlLabelOptions) String() string {
if m == nil {
return "<nil>"
}
diff --git a/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelType.go b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelType.go
new file mode 100644
index 000000000..e807d1e83
--- /dev/null
+++ b/plc4go/protocols/cbus/readwrite/model/TriggerControlLabelType.go
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+ "github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+ "github.com/rs/zerolog/log"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// TriggerControlLabelType is an enum
+type TriggerControlLabelType uint8
+
+type ITriggerControlLabelType interface {
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+const (
+ TriggerControlLabelType_TEXT_LABEL TriggerControlLabelType = 0
+ TriggerControlLabelType_PREDEFINED_ICON TriggerControlLabelType = 1
+ TriggerControlLabelType_LOAD_DYNAMIC_ICON TriggerControlLabelType = 2
+ TriggerControlLabelType_SET_PREFERRED_LANGUAGE TriggerControlLabelType = 3
+)
+
+var TriggerControlLabelTypeValues []TriggerControlLabelType
+
+func init() {
+ _ = errors.New
+ TriggerControlLabelTypeValues = []TriggerControlLabelType{
+ TriggerControlLabelType_TEXT_LABEL,
+ TriggerControlLabelType_PREDEFINED_ICON,
+ TriggerControlLabelType_LOAD_DYNAMIC_ICON,
+ TriggerControlLabelType_SET_PREFERRED_LANGUAGE,
+ }
+}
+
+func TriggerControlLabelTypeByValue(value uint8) (enum TriggerControlLabelType, ok bool) {
+ switch value {
+ case 0:
+ return TriggerControlLabelType_TEXT_LABEL, true
+ case 1:
+ return TriggerControlLabelType_PREDEFINED_ICON, true
+ case 2:
+ return TriggerControlLabelType_LOAD_DYNAMIC_ICON, true
+ case 3:
+ return TriggerControlLabelType_SET_PREFERRED_LANGUAGE, true
+ }
+ return 0, false
+}
+
+func TriggerControlLabelTypeByName(value string) (enum TriggerControlLabelType, ok bool) {
+ switch value {
+ case "TEXT_LABEL":
+ return TriggerControlLabelType_TEXT_LABEL, true
+ case "PREDEFINED_ICON":
+ return TriggerControlLabelType_PREDEFINED_ICON, true
+ case "LOAD_DYNAMIC_ICON":
+ return TriggerControlLabelType_LOAD_DYNAMIC_ICON, true
+ case "SET_PREFERRED_LANGUAGE":
+ return TriggerControlLabelType_SET_PREFERRED_LANGUAGE, true
+ }
+ return 0, false
+}
+
+func TriggerControlLabelTypeKnows(value uint8) bool {
+ for _, typeValue := range TriggerControlLabelTypeValues {
+ if uint8(typeValue) == value {
+ return true
+ }
+ }
+ return false
+}
+
+func CastTriggerControlLabelType(structType interface{}) TriggerControlLabelType {
+ castFunc := func(typ interface{}) TriggerControlLabelType {
+ if sTriggerControlLabelType, ok := typ.(TriggerControlLabelType); ok {
+ return sTriggerControlLabelType
+ }
+ return 0
+ }
+ return castFunc(structType)
+}
+
+func (m TriggerControlLabelType) GetLengthInBits() uint16 {
+ return 2
+}
+
+func (m TriggerControlLabelType) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func TriggerControlLabelTypeParse(readBuffer utils.ReadBuffer) (TriggerControlLabelType, error) {
+ val, err := readBuffer.ReadUint8("TriggerControlLabelType", 2)
+ if err != nil {
+ return 0, errors.Wrap(err, "error reading TriggerControlLabelType")
+ }
+ if enum, ok := TriggerControlLabelTypeByValue(val); !ok {
+ log.Debug().Msgf("no value %x found for RequestType", val)
+ return TriggerControlLabelType(val), nil
+ } else {
+ return enum, nil
+ }
+}
+
+func (e TriggerControlLabelType) Serialize(writeBuffer utils.WriteBuffer) error {
+ return writeBuffer.WriteUint8("TriggerControlLabelType", 2, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName()))
+}
+
+// PLC4XEnumName returns the name that is used in code to identify this enum
+func (e TriggerControlLabelType) PLC4XEnumName() string {
+ switch e {
+ case TriggerControlLabelType_TEXT_LABEL:
+ return "TEXT_LABEL"
+ case TriggerControlLabelType_PREDEFINED_ICON:
+ return "PREDEFINED_ICON"
+ case TriggerControlLabelType_LOAD_DYNAMIC_ICON:
+ return "LOAD_DYNAMIC_ICON"
+ case TriggerControlLabelType_SET_PREFERRED_LANGUAGE:
+ return "SET_PREFERRED_LANGUAGE"
+ }
+ return ""
+}
+
+func (e TriggerControlLabelType) String() string {
+ return e.PLC4XEnumName()
+}
diff --git a/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/readwrite/utils/StaticHelper.java b/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/readwrite/utils/StaticHelper.java
index 16a4fa25c..a6f2d123e 100644
--- a/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/readwrite/utils/StaticHelper.java
+++ b/plc4j/drivers/c-bus/src/main/java/org/apache/plc4x/java/cbus/readwrite/utils/StaticHelper.java
@@ -128,4 +128,15 @@ public class StaticHelper {
}
}
+ public static boolean knowsTriggerControlCommandTypeContainer(ReadBuffer readBuffer) {
+ int oldPos = readBuffer.getPos();
+ try {
+ return TriggerControlCommandTypeContainer.isDefined(readBuffer.readUnsignedShort(8));
+ } catch (ParseException ignore) {
+ return false;
+ } finally {
+ readBuffer.reset(oldPos);
+ }
+ }
+
}
diff --git a/plc4j/drivers/c-bus/src/test/java/org/apache/plc4x/java/cbus/ReferenceTest.java b/plc4j/drivers/c-bus/src/test/java/org/apache/plc4x/java/cbus/ReferenceTest.java
index cfc64b0ab..278afed82 100644
--- a/plc4j/drivers/c-bus/src/test/java/org/apache/plc4x/java/cbus/ReferenceTest.java
+++ b/plc4j/drivers/c-bus/src/test/java/org/apache/plc4x/java/cbus/ReferenceTest.java
@@ -936,4 +936,39 @@ public class ReferenceTest {
}
}
+
+ // from: https://updates.clipsal.com/ClipsalSoftwareDownload/DL/downloads/OpenCBus/Chapter%2007%20-%20C-Bus%20Trigger%20Control%20Application.pdf
+ @Nested
+ class TriggerControlApplicationsTest{
+
+ //7.12
+ @Nested
+ class Examples{
+ @Test
+ void LocalTrigger() throws Exception {
+ byte[] bytes = "\\05CA0002250109\r".getBytes(StandardCharsets.UTF_8);
+ ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+ cBusOptions = new CBusOptions(false, false, false, false, false, false, false, false, true);
+ CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, requestContext, cBusOptions, bytes.length);
+ assertThat(msg).isNotNull();
+ System.out.println(msg);
+ System.out.println(((RequestCommand) ((CBusMessageToServer) msg).getRequest()).getCbusCommand());
+ assertMessageMatches(bytes, msg);
+ }
+
+ @Test
+ void RemoteTrigger() throws Exception {
+ byte[] bytes = "\\035609CA022501AC\r".getBytes(StandardCharsets.UTF_8);
+ ReadBufferByteBased readBufferByteBased = new ReadBufferByteBased(bytes);
+ cBusOptions = new CBusOptions(false, false, false, false, false, false, false, false, true);
+ CBusMessage msg = CBusMessage.staticParse(readBufferByteBased, false, requestContext, cBusOptions, bytes.length);
+ assertThat(msg).isNotNull();
+ System.out.println(msg);
+ System.out.println(((RequestCommand) ((CBusMessageToServer) msg).getRequest()).getCbusCommand());
+ assertMessageMatches(bytes, msg);
+ }
+
+ }
+
+ }
}
diff --git a/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec b/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec
index dcf49e3bd..52167d058 100644
--- a/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec
+++ b/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec
@@ -1329,7 +1329,7 @@
[validation '1==2' "AIR_CONDITIONING Not yet implemented"] // TODO: implement me
]
['TRIGGER_CONTROL' *TriggerControl
- [validation '1==2' "TRIGGER_CONTROL Not yet implemented"] // TODO: implement me
+ [simple TriggerControlData triggerControlData]
]
['ENABLE_CONTROL' *EnableControl
[validation '1==2' "ENABLE_CONTROL Not yet implemented"] // TODO: implement me
@@ -1385,7 +1385,7 @@
['LABEL' *Label(LightingCommandTypeContainer commandTypeContainer)
[simple byte group ]
[simple LightingLabelOptions labelOptions ]
- [optional LightingLanguage language 'labelOptions.labelType != LightingLabelType.LOAD_DYNAMIC_ICON']
+ [optional Language language 'labelOptions.labelType != LightingLabelType.LOAD_DYNAMIC_ICON']
[array byte data count '(commandTypeContainer.numBytes-((labelOptions.labelType != LightingLabelType.LOAD_DYNAMIC_ICON)?(3):(2)))' ]
]
]
@@ -1395,16 +1395,16 @@
[simple bit reservedBit7] // only for dynamic icon loading can switch to 1 (note this could use mspec reserved field but sadly this discards data)
[simple LightingLabelFlavour labelFlavour]
[reserved bit 'false' ]
- [simple bit reservedBit4] // For Lighting, this bit must be 0 (note this could use mspec reserved field but sadly this discards data)
+ [simple bit reservedBit3] // For Lighting, this bit must be 0 (note this could use mspec reserved field but sadly this discards data)
[simple LightingLabelType labelType ]
[simple bit reservedBit0] // For Lighting, this bit must be 0 (note this could use mspec reserved field but sadly this discards data)
]
[enum uint 2 LightingLabelFlavour
- ['0' FLAVOUR_1 ]
- ['1' FLAVOUR_2 ]
- ['2' FLAVOUR_3 ]
- ['3' FLAVOUR_4 ]
+ ['0' FLAVOUR_0 ]
+ ['1' FLAVOUR_1 ]
+ ['2' FLAVOUR_2 ]
+ ['3' FLAVOUR_3 ]
]
[enum uint 2 LightingLabelType
@@ -1414,7 +1414,7 @@
['3' SET_PREFERRED_LANGUAGE ]
]
-[enum uint 8 LightingLanguage
+[enum uint 8 Language
['0x00' NO_LANGUAGE ]
['0x01' ENGLISH ]
['0x02' ENGLISH_AUSTRALIA ]
@@ -1915,6 +1915,119 @@
['0x00' EVENT ]
]
+[type TriggerControlData
+ //TODO: golang doesn't like checking for null so we use that static call to check that the enum is known
+ [validation 'STATIC_CALL("knowsTriggerControlCommandTypeContainer", readBuffer)' "no command type could be found" shouldFail=false]
+ [simple TriggerControlCommandTypeContainer commandTypeContainer ]
+ [virtual TriggerControlCommandType commandType 'commandTypeContainer.commandType']
+ [simple byte triggerGroup ]
+ [virtual bit isUnused 'triggerGroup > 0xFE' ]
+ [typeSwitch commandType
+ ['TRIGGER_EVENT' *TriggerEvent
+ [simple byte actionSelector]
+ ]
+ ['TRIGGER_MIN' *TriggerMin
+ ]
+ ['TRIGGER_MAX' *TriggerMin
+ ]
+ ['INDICATOR_KILL' *IndicatorKill
+ ]
+ ['LABEL' *Label(TriggerControlCommandTypeContainer commandTypeContainer)
+ [simple TriggerControlLabelOptions triggerControlOptions ]
+ [simple byte actionSelector ]
+ [optional Language language 'triggerControlOptions.labelType != TriggerControlLabelType.LOAD_DYNAMIC_ICON']
+ [array byte data count '(commandTypeContainer.numBytes-((triggerControlOptions.labelType != TriggerControlLabelType.LOAD_DYNAMIC_ICON)?(4):(3)))' ]
+ ]
+ ]
+]
+
+[enum uint 8 TriggerControlCommandTypeContainer(TriggerControlCommandType commandType, uint 5 numBytes)
+ ['0x01' TriggerControlCommandTriggerMin_1Bytes ['TRIGGER_MIN', '1']]
+ ['0x09' TriggerControlCommandIndicatorKill_1Bytes ['INDICATOR_KILL', '1']]
+ ['0x79' TriggerControlCommandTriggerMax_1Bytes ['TRIGGER_MAX', '1']]
+ ['0x02' TriggerControlCommandTriggerEvent0_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x0A' TriggerControlCommandTriggerEvent1_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x12' TriggerControlCommandTriggerEvent2_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x1A' TriggerControlCommandTriggerEvent3_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x22' TriggerControlCommandTriggerEvent4_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x2A' TriggerControlCommandTriggerEvent5_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x32' TriggerControlCommandTriggerEvent6_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x3A' TriggerControlCommandTriggerEvent7_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x42' TriggerControlCommandTriggerEvent8_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x4A' TriggerControlCommandTriggerEvent9_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x52' TriggerControlCommandTriggerEvent10_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x5A' TriggerControlCommandTriggerEvent11_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x62' TriggerControlCommandTriggerEvent12_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x6A' TriggerControlCommandTriggerEvent13_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x72' TriggerControlCommandTriggerEvent14_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0x7A' TriggerControlCommandTriggerEvent15_2Bytes ['TRIGGER_EVENT', '2']]
+ ['0xA0' TriggerControlCommandLabel_0Bytes ['LABEL', '0']]
+ ['0xA1' TriggerControlCommandLabel_1Bytes ['LABEL', '1']]
+ ['0xA2' TriggerControlCommandLabel_2Bytes ['LABEL', '2']]
+ ['0xA3' TriggerControlCommandLabel_3Bytes ['LABEL', '3']]
+ ['0xA4' TriggerControlCommandLabel_4Bytes ['LABEL', '4']]
+ ['0xA5' TriggerControlCommandLabel_5Bytes ['LABEL', '5']]
+ ['0xA6' TriggerControlCommandLabel_6Bytes ['LABEL', '6']]
+ ['0xA7' TriggerControlCommandLabel_7Bytes ['LABEL', '7']]
+ ['0xA8' TriggerControlCommandLabel_8Bytes ['LABEL', '8']]
+ ['0xA9' TriggerControlCommandLabel_9Bytes ['LABEL', '9']]
+ ['0xAA' TriggerControlCommandLabel_10Bytes ['LABEL', '10']]
+ ['0xAB' TriggerControlCommandLabel_11Bytes ['LABEL', '11']]
+ ['0xAC' TriggerControlCommandLabel_12Bytes ['LABEL', '12']]
+ ['0xAD' TriggerControlCommandLabel_13Bytes ['LABEL', '13']]
+ ['0xAE' TriggerControlCommandLabel_14Bytes ['LABEL', '14']]
+ ['0xAF' TriggerControlCommandLabel_15Bytes ['LABEL', '15']]
+ ['0xB0' TriggerControlCommandLabel_16Bytes ['LABEL', '16']]
+ ['0xB1' TriggerControlCommandLabel_17Bytes ['LABEL', '17']]
+ ['0xB2' TriggerControlCommandLabel_18Bytes ['LABEL', '18']]
+ ['0xB3' TriggerControlCommandLabel_19Bytes ['LABEL', '19']]
+ ['0xB4' TriggerControlCommandLabel_20Bytes ['LABEL', '20']]
+ ['0xB5' TriggerControlCommandLabel_21Bytes ['LABEL', '21']]
+ ['0xB6' TriggerControlCommandLabel_22Bytes ['LABEL', '22']]
+ ['0xB7' TriggerControlCommandLabel_23Bytes ['LABEL', '23']]
+ ['0xB8' TriggerControlCommandLabel_24Bytes ['LABEL', '24']]
+ ['0xB9' TriggerControlCommandLabel_25Bytes ['LABEL', '25']]
+ ['0xBA' TriggerControlCommandLabel_26Bytes ['LABEL', '26']]
+ ['0xBB' TriggerControlCommandLabel_27Bytes ['LABEL', '27']]
+ ['0xBC' TriggerControlCommandLabel_28Bytes ['LABEL', '28']]
+ ['0xBD' TriggerControlCommandLabel_29Bytes ['LABEL', '29']]
+ ['0xBE' TriggerControlCommandLabel_30Bytes ['LABEL', '30']]
+ ['0xBF' TriggerControlCommandLabel_31Bytes ['LABEL', '31']]
+]
+
+[enum uint 4 TriggerControlCommandType
+ ['0x00' TRIGGER_EVENT ]
+ ['0x01' TRIGGER_MIN ]
+ ['0x02' TRIGGER_MAX ]
+ ['0x03' INDICATOR_KILL ]
+ ['0x04' LABEL ]
+]
+
+// TODO: maybe can be merged with lightning labels
+[type TriggerControlLabelOptions
+ [simple bit reservedBit7] // only for dynamic icon loading can switch to 1 (note this could use mspec reserved field but sadly this discards data)
+ [simple TriggerControlLabelFlavour labelFlavour]
+ [reserved bit 'false' ]
+ [simple bit reservedBit3] // For Control Trigger, this bit must be 0 (note this could use mspec reserved field but sadly this discards data)
+ [simple TriggerControlLabelType labelType ]
+ [simple bit reservedBit0] // For Control Trigger, this bit must be 1 (note this could use mspec reserved field but sadly this discards data)
+]
+
+// TODO: maybe can be merged with lightning labels
+[enum uint 2 TriggerControlLabelFlavour
+ ['0' FLAVOUR_0 ]
+ ['1' FLAVOUR_1 ]
+ ['2' FLAVOUR_2 ]
+ ['3' FLAVOUR_3 ]
+]
+
+[enum uint 2 TriggerControlLabelType
+ ['0' TEXT_LABEL ]
+ ['1' PREDEFINED_ICON ]
+ ['2' LOAD_DYNAMIC_ICON ]
+ ['3' SET_PREFERRED_LANGUAGE ]
+]
+
[type ReplyOrConfirmation(CBusOptions cBusOptions, uint 16 messageLength, RequestContext requestContext)
[peek byte peekedByte ]
[virtual bit isAlpha '(peekedByte >= 0x67) && (peekedByte <= 0x7A)' ]