This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch feature/ads-symbol-discovery in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 513fa67186b32273be4a5981c0107b313475b310 Author: Christofer Dutz <[email protected]> AuthorDate: Wed Aug 24 18:11:17 2022 +0200 chore(plc4go/ads): Updated go code for ADS --- plc4go/protocols/ads/readwrite/ParserHelper.go | 7 +- plc4go/protocols/ads/readwrite/XmlParserHelper.go | 5 +- .../protocols/ads/readwrite/model/AdsDataType.go | 92 +++--- plc4go/protocols/ads/readwrite/model/DataItem.go | 104 +++--- .../protocols/ads/readwrite/model/PlcValueType.go | 361 +++++++++++++++++++++ .../ads/readwrite/model/ReservedIndexGroups.go | 88 +++-- 6 files changed, 519 insertions(+), 138 deletions(-) diff --git a/plc4go/protocols/ads/readwrite/ParserHelper.go b/plc4go/protocols/ads/readwrite/ParserHelper.go index 886924168..1e0a3a4f1 100644 --- a/plc4go/protocols/ads/readwrite/ParserHelper.go +++ b/plc4go/protocols/ads/readwrite/ParserHelper.go @@ -35,15 +35,12 @@ func (m AdsParserHelper) Parse(typeName string, arguments []string, io utils.Rea case "AmsSerialFrame": return model.AmsSerialFrameParse(io) case "DataItem": - dataFormatName, err := utils.StrToString(arguments[0]) - if err != nil { - return nil, errors.Wrap(err, "Error parsing") - } + plcValueType, _ := model.PlcValueTypeByName(arguments[0]) stringLength, err := utils.StrToInt32(arguments[1]) if err != nil { return nil, errors.Wrap(err, "Error parsing") } - return model.DataItemParse(io, dataFormatName, stringLength) + return model.DataItemParse(io, plcValueType, stringLength) case "AdsTableSizes": return model.AdsTableSizesParse(io) case "AdsMultiRequestItem": diff --git a/plc4go/protocols/ads/readwrite/XmlParserHelper.go b/plc4go/protocols/ads/readwrite/XmlParserHelper.go index 39125b2e7..06b1eb683 100644 --- a/plc4go/protocols/ads/readwrite/XmlParserHelper.go +++ b/plc4go/protocols/ads/readwrite/XmlParserHelper.go @@ -45,14 +45,13 @@ func (m AdsXmlParserHelper) Parse(typeName string, xmlString string, parserArgum case "AmsSerialFrame": return model.AmsSerialFrameParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString))) case "DataItem": - // TODO: find a way to parse the sub types - var dataFormatName string + plcValueType, _ := model.PlcValueTypeByName(parserArguments[0]) parsedInt1, err := strconv.ParseInt(parserArguments[1], 10, 32) if err != nil { return nil, err } stringLength := int32(parsedInt1) - return model.DataItemParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), dataFormatName, stringLength) + return model.DataItemParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), plcValueType, stringLength) case "AdsTableSizes": return model.AdsTableSizesParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString))) case "AdsMultiRequestItem": diff --git a/plc4go/protocols/ads/readwrite/model/AdsDataType.go b/plc4go/protocols/ads/readwrite/model/AdsDataType.go index 99d9680ee..6918b275c 100644 --- a/plc4go/protocols/ads/readwrite/model/AdsDataType.go +++ b/plc4go/protocols/ads/readwrite/model/AdsDataType.go @@ -32,7 +32,7 @@ type AdsDataType int8 type IAdsDataType interface { NumBytes() uint16 - DataFormatName() string + PlcValueType() PlcValueType Serialize(writeBuffer utils.WriteBuffer) error } @@ -305,182 +305,182 @@ func AdsDataTypeFirstEnumForFieldNumBytes(value uint16) (AdsDataType, error) { return 0, errors.Errorf("enum for %v describing NumBytes not found", value) } -func (e AdsDataType) DataFormatName() string { +func (e AdsDataType) PlcValueType() PlcValueType { switch e { case 0x01: { /* '0x01' */ - return "IEC61131_BOOL" + return PlcValueType_BOOL } case 0x02: { /* '0x02' */ - return "IEC61131_BOOL" + return PlcValueType_BOOL } case 0x03: { /* '0x03' */ - return "IEC61131_BYTE" + return PlcValueType_BYTE } case 0x04: { /* '0x04' */ - return "IEC61131_BYTE" + return PlcValueType_BYTE } case 0x05: { /* '0x05' */ - return "IEC61131_BYTE" + return PlcValueType_BYTE } case 0x06: { /* '0x06' */ - return "IEC61131_WORD" + return PlcValueType_WORD } case 0x07: { /* '0x07' */ - return "IEC61131_WORD" + return PlcValueType_WORD } case 0x08: { /* '0x08' */ - return "IEC61131_DWORD" + return PlcValueType_DWORD } case 0x09: { /* '0x09' */ - return "IEC61131_DWORD" + return PlcValueType_DWORD } case 0x0A: { /* '0x0A' */ - return "IEC61131_SINT" + return PlcValueType_SINT } case 0x0B: { /* '0x0B' */ - return "IEC61131_SINT" + return PlcValueType_SINT } case 0x0C: { /* '0x0C' */ - return "IEC61131_USINT" + return PlcValueType_USINT } case 0x0D: { /* '0x0D' */ - return "IEC61131_USINT" + return PlcValueType_USINT } case 0x0E: { /* '0x0E' */ - return "IEC61131_INT" + return PlcValueType_INT } case 0x0F: { /* '0x0F' */ - return "IEC61131_INT" + return PlcValueType_INT } case 0x10: { /* '0x10' */ - return "IEC61131_UINT" + return PlcValueType_UINT } case 0x11: { /* '0x11' */ - return "IEC61131_UINT" + return PlcValueType_UINT } case 0x12: { /* '0x12' */ - return "IEC61131_DINT" + return PlcValueType_DINT } case 0x13: { /* '0x13' */ - return "IEC61131_DINT" + return PlcValueType_DINT } case 0x14: { /* '0x14' */ - return "IEC61131_UDINT" + return PlcValueType_UDINT } case 0x15: { /* '0x15' */ - return "IEC61131_UDINT" + return PlcValueType_UDINT } case 0x16: { /* '0x16' */ - return "IEC61131_LINT" + return PlcValueType_LINT } case 0x17: { /* '0x17' */ - return "IEC61131_LINT" + return PlcValueType_LINT } case 0x18: { /* '0x18' */ - return "IEC61131_ULINT" + return PlcValueType_ULINT } case 0x19: { /* '0x19' */ - return "IEC61131_ULINT" + return PlcValueType_ULINT } case 0x1A: { /* '0x1A' */ - return "IEC61131_REAL" + return PlcValueType_REAL } case 0x1B: { /* '0x1B' */ - return "IEC61131_REAL" + return PlcValueType_REAL } case 0x1C: { /* '0x1C' */ - return "IEC61131_LREAL" + return PlcValueType_LREAL } case 0x1D: { /* '0x1D' */ - return "IEC61131_LREAL" + return PlcValueType_LREAL } case 0x1E: { /* '0x1E' */ - return "IEC61131_CHAR" + return PlcValueType_CHAR } case 0x1F: { /* '0x1F' */ - return "IEC61131_WCHAR" + return PlcValueType_WCHAR } case 0x20: { /* '0x20' */ - return "IEC61131_STRING" + return PlcValueType_STRING } case 0x21: { /* '0x21' */ - return "IEC61131_WSTRING" + return PlcValueType_WSTRING } case 0x22: { /* '0x22' */ - return "IEC61131_TIME" + return PlcValueType_TIME } case 0x23: { /* '0x23' */ - return "IEC61131_LTIME" + return PlcValueType_LTIME } case 0x24: { /* '0x24' */ - return "IEC61131_DATE" + return PlcValueType_DATE } case 0x25: { /* '0x25' */ - return "IEC61131_TIME_OF_DAY" + return PlcValueType_TIME_OF_DAY } case 0x26: { /* '0x26' */ - return "IEC61131_TIME_OF_DAY" + return PlcValueType_TIME_OF_DAY } case 0x27: { /* '0x27' */ - return "IEC61131_DATE_AND_TIME" + return PlcValueType_DATE_AND_TIME } case 0x28: { /* '0x28' */ - return "IEC61131_DATE_AND_TIME" + return PlcValueType_DATE_AND_TIME } default: { - return "" + return 0 } } } -func AdsDataTypeFirstEnumForFieldDataFormatName(value string) (AdsDataType, error) { +func AdsDataTypeFirstEnumForFieldPlcValueType(value PlcValueType) (AdsDataType, error) { for _, sizeValue := range AdsDataTypeValues { - if sizeValue.DataFormatName() == value { + if sizeValue.PlcValueType() == value { return sizeValue, nil } } - return 0, errors.Errorf("enum for %v describing DataFormatName not found", value) + return 0, errors.Errorf("enum for %v describing PlcValueType not found", value) } func AdsDataTypeByValue(value int8) (enum AdsDataType, ok bool) { switch value { diff --git a/plc4go/protocols/ads/readwrite/model/DataItem.go b/plc4go/protocols/ads/readwrite/model/DataItem.go index 5d2215378..ad0f76c64 100644 --- a/plc4go/protocols/ads/readwrite/model/DataItem.go +++ b/plc4go/protocols/ads/readwrite/model/DataItem.go @@ -29,10 +29,10 @@ import ( // Code generated by code-generation. DO NOT EDIT. -func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLength int32) (api.PlcValue, error) { +func DataItemParse(readBuffer utils.ReadBuffer, plcValueType PlcValueType, stringLength int32) (api.PlcValue, error) { readBuffer.PullContext("DataItem") switch { - case dataFormatName == "IEC61131_BOOL": // BOOL + case plcValueType == PlcValueType_BOOL: // BOOL // Reserved Field (Just skip the bytes) if _, _err := readBuffer.ReadUint8("reserved", 7); _err != nil { return nil, errors.Wrap(_err, "Error parsing reserved field") @@ -45,7 +45,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcBOOL(value), nil - case dataFormatName == "IEC61131_BYTE": // BitString + case plcValueType == PlcValueType_BYTE: // BitString // Simple Field (value) value, _valueErr := readBuffer.ReadUint8("value", 8) if _valueErr != nil { @@ -53,7 +53,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcBitString(value), nil - case dataFormatName == "IEC61131_WORD": // BitString + case plcValueType == PlcValueType_WORD: // BitString // Simple Field (value) value, _valueErr := readBuffer.ReadUint16("value", 16) if _valueErr != nil { @@ -61,7 +61,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcBitString(value), nil - case dataFormatName == "IEC61131_DWORD": // BitString + case plcValueType == PlcValueType_DWORD: // BitString // Simple Field (value) value, _valueErr := readBuffer.ReadUint32("value", 32) if _valueErr != nil { @@ -69,7 +69,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcBitString(value), nil - case dataFormatName == "IEC61131_SINT": // SINT + case plcValueType == PlcValueType_SINT: // SINT // Simple Field (value) value, _valueErr := readBuffer.ReadInt8("value", 8) if _valueErr != nil { @@ -77,7 +77,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcSINT(value), nil - case dataFormatName == "IEC61131_USINT": // USINT + case plcValueType == PlcValueType_USINT: // USINT // Simple Field (value) value, _valueErr := readBuffer.ReadUint8("value", 8) if _valueErr != nil { @@ -85,7 +85,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcUSINT(value), nil - case dataFormatName == "IEC61131_INT": // INT + case plcValueType == PlcValueType_INT: // INT // Simple Field (value) value, _valueErr := readBuffer.ReadInt16("value", 16) if _valueErr != nil { @@ -93,7 +93,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcINT(value), nil - case dataFormatName == "IEC61131_UINT": // UINT + case plcValueType == PlcValueType_UINT: // UINT // Simple Field (value) value, _valueErr := readBuffer.ReadUint16("value", 16) if _valueErr != nil { @@ -101,7 +101,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcUINT(value), nil - case dataFormatName == "IEC61131_DINT": // DINT + case plcValueType == PlcValueType_DINT: // DINT // Simple Field (value) value, _valueErr := readBuffer.ReadInt32("value", 32) if _valueErr != nil { @@ -109,7 +109,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcDINT(value), nil - case dataFormatName == "IEC61131_UDINT": // UDINT + case plcValueType == PlcValueType_UDINT: // UDINT // Simple Field (value) value, _valueErr := readBuffer.ReadUint32("value", 32) if _valueErr != nil { @@ -117,7 +117,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcUDINT(value), nil - case dataFormatName == "IEC61131_LINT": // LINT + case plcValueType == PlcValueType_LINT: // LINT // Simple Field (value) value, _valueErr := readBuffer.ReadInt64("value", 64) if _valueErr != nil { @@ -125,7 +125,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcLINT(value), nil - case dataFormatName == "IEC61131_ULINT": // ULINT + case plcValueType == PlcValueType_ULINT: // ULINT // Simple Field (value) value, _valueErr := readBuffer.ReadUint64("value", 64) if _valueErr != nil { @@ -133,7 +133,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcULINT(value), nil - case dataFormatName == "IEC61131_REAL": // REAL + case plcValueType == PlcValueType_REAL: // REAL // Simple Field (value) value, _valueErr := readBuffer.ReadFloat32("value", 32) if _valueErr != nil { @@ -141,7 +141,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcREAL(value), nil - case dataFormatName == "IEC61131_LREAL": // LREAL + case plcValueType == PlcValueType_LREAL: // LREAL // Simple Field (value) value, _valueErr := readBuffer.ReadFloat64("value", 64) if _valueErr != nil { @@ -149,7 +149,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcLREAL(value), nil - case dataFormatName == "IEC61131_CHAR": // STRING + case plcValueType == PlcValueType_CHAR: // STRING // Simple Field (value) value, _valueErr := readBuffer.ReadString("value", uint32(8)) if _valueErr != nil { @@ -157,7 +157,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcSTRING(value), nil - case dataFormatName == "IEC61131_WCHAR": // STRING + case plcValueType == PlcValueType_WCHAR: // STRING // Simple Field (value) value, _valueErr := readBuffer.ReadString("value", uint32(16)) if _valueErr != nil { @@ -165,7 +165,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcSTRING(value), nil - case dataFormatName == "IEC61131_STRING": // STRING + case plcValueType == PlcValueType_STRING: // STRING // Manual Field (value) value, _valueErr := ParseAmsString(readBuffer, stringLength, "UTF-8") if _valueErr != nil { @@ -173,7 +173,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcSTRING(value), nil - case dataFormatName == "IEC61131_WSTRING": // STRING + case plcValueType == PlcValueType_WSTRING: // STRING // Manual Field (value) value, _valueErr := ParseAmsString(readBuffer, stringLength, "UTF-16") if _valueErr != nil { @@ -181,7 +181,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcSTRING(value), nil - case dataFormatName == "IEC61131_TIME": // TIME + case plcValueType == PlcValueType_TIME: // TIME // Simple Field (value) value, _valueErr := readBuffer.ReadUint32("value", 32) if _valueErr != nil { @@ -189,7 +189,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcTIME(value), nil - case dataFormatName == "IEC61131_LTIME": // LTIME + case plcValueType == PlcValueType_LTIME: // LTIME // Simple Field (value) value, _valueErr := readBuffer.ReadUint64("value", 64) if _valueErr != nil { @@ -197,7 +197,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcLTIME(value), nil - case dataFormatName == "IEC61131_DATE": // DATE + case plcValueType == PlcValueType_DATE: // DATE // Simple Field (value) value, _valueErr := readBuffer.ReadUint32("value", 32) if _valueErr != nil { @@ -205,7 +205,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcDATE(value), nil - case dataFormatName == "IEC61131_TIME_OF_DAY": // TIME_OF_DAY + case plcValueType == PlcValueType_TIME_OF_DAY: // TIME_OF_DAY // Simple Field (value) value, _valueErr := readBuffer.ReadUint32("value", 32) if _valueErr != nil { @@ -213,7 +213,7 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen } readBuffer.CloseContext("DataItem") return values.NewPlcTIME_OF_DAY(value), nil - case dataFormatName == "IEC61131_DATE_AND_TIME": // DATE_AND_TIME + case plcValueType == PlcValueType_DATE_AND_TIME: // DATE_AND_TIME // Simple Field (secondsSinceEpoch) secondsSinceEpoch, _secondsSinceEpochErr := readBuffer.ReadUint32("secondsSinceEpoch", 32) if _secondsSinceEpochErr != nil { @@ -227,18 +227,18 @@ func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLen return nil, errors.New("unsupported type") } -func DataItemSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, dataFormatName string, stringLength int32) error { +func DataItemSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, plcValueType PlcValueType, stringLength int32) error { m := struct { - DataFormatName string - StringLength int32 + PlcValueType PlcValueType + StringLength int32 }{ - DataFormatName: dataFormatName, - StringLength: stringLength, + PlcValueType: plcValueType, + StringLength: stringLength, } _ = m writeBuffer.PushContext("DataItem") switch { - case dataFormatName == "IEC61131_BOOL": // BOOL + case plcValueType == PlcValueType_BOOL: // BOOL // Reserved Field (Just skip the bytes) if _err := writeBuffer.WriteUint8("reserved", 7, uint8(0x00)); _err != nil { return errors.Wrap(_err, "Error serializing reserved field") @@ -248,114 +248,114 @@ func DataItemSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, dataFo if _err := writeBuffer.WriteBit("value", value.GetBool()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_BYTE": // BitString + case plcValueType == PlcValueType_BYTE: // BitString // Simple Field (value) if _err := writeBuffer.WriteUint8("value", 8, value.GetUint8()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_WORD": // BitString + case plcValueType == PlcValueType_WORD: // BitString // Simple Field (value) if _err := writeBuffer.WriteUint16("value", 16, value.GetUint16()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_DWORD": // BitString + case plcValueType == PlcValueType_DWORD: // BitString // Simple Field (value) if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_SINT": // SINT + case plcValueType == PlcValueType_SINT: // SINT // Simple Field (value) if _err := writeBuffer.WriteInt8("value", 8, value.GetInt8()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_USINT": // USINT + case plcValueType == PlcValueType_USINT: // USINT // Simple Field (value) if _err := writeBuffer.WriteUint8("value", 8, value.GetUint8()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_INT": // INT + case plcValueType == PlcValueType_INT: // INT // Simple Field (value) if _err := writeBuffer.WriteInt16("value", 16, value.GetInt16()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_UINT": // UINT + case plcValueType == PlcValueType_UINT: // UINT // Simple Field (value) if _err := writeBuffer.WriteUint16("value", 16, value.GetUint16()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_DINT": // DINT + case plcValueType == PlcValueType_DINT: // DINT // Simple Field (value) if _err := writeBuffer.WriteInt32("value", 32, value.GetInt32()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_UDINT": // UDINT + case plcValueType == PlcValueType_UDINT: // UDINT // Simple Field (value) if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_LINT": // LINT + case plcValueType == PlcValueType_LINT: // LINT // Simple Field (value) if _err := writeBuffer.WriteInt64("value", 64, value.GetInt64()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_ULINT": // ULINT + case plcValueType == PlcValueType_ULINT: // ULINT // Simple Field (value) if _err := writeBuffer.WriteUint64("value", 64, value.GetUint64()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_REAL": // REAL + case plcValueType == PlcValueType_REAL: // REAL // Simple Field (value) if _err := writeBuffer.WriteFloat32("value", 32, value.GetFloat32()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_LREAL": // LREAL + case plcValueType == PlcValueType_LREAL: // LREAL // Simple Field (value) if _err := writeBuffer.WriteFloat64("value", 64, value.GetFloat64()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_CHAR": // STRING + case plcValueType == PlcValueType_CHAR: // STRING // Simple Field (value) if _err := writeBuffer.WriteString("value", uint32(8), "UTF-8", value.GetString()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_WCHAR": // STRING + case plcValueType == PlcValueType_WCHAR: // STRING // Simple Field (value) if _err := writeBuffer.WriteString("value", uint32(16), "UTF-16", value.GetString()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_STRING": // STRING + case plcValueType == PlcValueType_STRING: // STRING // Manual Field (value) _valueErr := SerializeAmsString(writeBuffer, value, m.StringLength, "UTF-8") if _valueErr != nil { return errors.Wrap(_valueErr, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_WSTRING": // STRING + case plcValueType == PlcValueType_WSTRING: // STRING // Manual Field (value) _valueErr := SerializeAmsString(writeBuffer, value, m.StringLength, "UTF-16") if _valueErr != nil { return errors.Wrap(_valueErr, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_TIME": // TIME + case plcValueType == PlcValueType_TIME: // TIME // Simple Field (value) if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_LTIME": // LTIME + case plcValueType == PlcValueType_LTIME: // LTIME // Simple Field (value) if _err := writeBuffer.WriteUint64("value", 64, value.GetUint64()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_DATE": // DATE + case plcValueType == PlcValueType_DATE: // DATE // Simple Field (value) if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_TIME_OF_DAY": // TIME_OF_DAY + case plcValueType == PlcValueType_TIME_OF_DAY: // TIME_OF_DAY // Simple Field (value) if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil { return errors.Wrap(_err, "Error serializing 'value' field") } - case dataFormatName == "IEC61131_DATE_AND_TIME": // DATE_AND_TIME + case plcValueType == PlcValueType_DATE_AND_TIME: // DATE_AND_TIME // Simple Field (secondsSinceEpoch) if _err := writeBuffer.WriteUint32("secondsSinceEpoch", 32, value.GetUint32()); _err != nil { return errors.Wrap(_err, "Error serializing 'secondsSinceEpoch' field") diff --git a/plc4go/protocols/ads/readwrite/model/PlcValueType.go b/plc4go/protocols/ads/readwrite/model/PlcValueType.go new file mode 100644 index 000000000..2817a8ba0 --- /dev/null +++ b/plc4go/protocols/ads/readwrite/model/PlcValueType.go @@ -0,0 +1,361 @@ +/* + * 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/spi/utils" + "github.com/pkg/errors" + "github.com/rs/zerolog/log" +) + +// Code generated by code-generation. DO NOT EDIT. + +// PlcValueType is an enum +type PlcValueType uint8 + +type IPlcValueType interface { + Serialize(writeBuffer utils.WriteBuffer) error +} + +const ( + PlcValueType_NULL PlcValueType = 0x00 + PlcValueType_BOOL PlcValueType = 0x01 + PlcValueType_BYTE PlcValueType = 0x02 + PlcValueType_WORD PlcValueType = 0x03 + PlcValueType_DWORD PlcValueType = 0x04 + PlcValueType_LWORD PlcValueType = 0x05 + PlcValueType_USINT PlcValueType = 0x11 + PlcValueType_UINT PlcValueType = 0x12 + PlcValueType_UDINT PlcValueType = 0x13 + PlcValueType_ULINT PlcValueType = 0x14 + PlcValueType_SINT PlcValueType = 0x21 + PlcValueType_INT PlcValueType = 0x22 + PlcValueType_DINT PlcValueType = 0x23 + PlcValueType_LINT PlcValueType = 0x24 + PlcValueType_REAL PlcValueType = 0x31 + PlcValueType_LREAL PlcValueType = 0x32 + PlcValueType_CHAR PlcValueType = 0x41 + PlcValueType_WCHAR PlcValueType = 0x42 + PlcValueType_STRING PlcValueType = 0x43 + PlcValueType_WSTRING PlcValueType = 0x44 + PlcValueType_TIME PlcValueType = 0x51 + PlcValueType_LTIME PlcValueType = 0x52 + PlcValueType_DATE PlcValueType = 0x53 + PlcValueType_LDATE PlcValueType = 0x54 + PlcValueType_TIME_OF_DAY PlcValueType = 0x55 + PlcValueType_LTIME_OF_DAY PlcValueType = 0x56 + PlcValueType_DATE_AND_TIME PlcValueType = 0x57 + PlcValueType_LDATE_AND_TIME PlcValueType = 0x58 + PlcValueType_Struct PlcValueType = 0x61 + PlcValueType_List PlcValueType = 0x62 + PlcValueType_RAW_BYTE_ARRAY PlcValueType = 0x71 +) + +var PlcValueTypeValues []PlcValueType + +func init() { + _ = errors.New + PlcValueTypeValues = []PlcValueType{ + PlcValueType_NULL, + PlcValueType_BOOL, + PlcValueType_BYTE, + PlcValueType_WORD, + PlcValueType_DWORD, + PlcValueType_LWORD, + PlcValueType_USINT, + PlcValueType_UINT, + PlcValueType_UDINT, + PlcValueType_ULINT, + PlcValueType_SINT, + PlcValueType_INT, + PlcValueType_DINT, + PlcValueType_LINT, + PlcValueType_REAL, + PlcValueType_LREAL, + PlcValueType_CHAR, + PlcValueType_WCHAR, + PlcValueType_STRING, + PlcValueType_WSTRING, + PlcValueType_TIME, + PlcValueType_LTIME, + PlcValueType_DATE, + PlcValueType_LDATE, + PlcValueType_TIME_OF_DAY, + PlcValueType_LTIME_OF_DAY, + PlcValueType_DATE_AND_TIME, + PlcValueType_LDATE_AND_TIME, + PlcValueType_Struct, + PlcValueType_List, + PlcValueType_RAW_BYTE_ARRAY, + } +} + +func PlcValueTypeByValue(value uint8) (enum PlcValueType, ok bool) { + switch value { + case 0x00: + return PlcValueType_NULL, true + case 0x01: + return PlcValueType_BOOL, true + case 0x02: + return PlcValueType_BYTE, true + case 0x03: + return PlcValueType_WORD, true + case 0x04: + return PlcValueType_DWORD, true + case 0x05: + return PlcValueType_LWORD, true + case 0x11: + return PlcValueType_USINT, true + case 0x12: + return PlcValueType_UINT, true + case 0x13: + return PlcValueType_UDINT, true + case 0x14: + return PlcValueType_ULINT, true + case 0x21: + return PlcValueType_SINT, true + case 0x22: + return PlcValueType_INT, true + case 0x23: + return PlcValueType_DINT, true + case 0x24: + return PlcValueType_LINT, true + case 0x31: + return PlcValueType_REAL, true + case 0x32: + return PlcValueType_LREAL, true + case 0x41: + return PlcValueType_CHAR, true + case 0x42: + return PlcValueType_WCHAR, true + case 0x43: + return PlcValueType_STRING, true + case 0x44: + return PlcValueType_WSTRING, true + case 0x51: + return PlcValueType_TIME, true + case 0x52: + return PlcValueType_LTIME, true + case 0x53: + return PlcValueType_DATE, true + case 0x54: + return PlcValueType_LDATE, true + case 0x55: + return PlcValueType_TIME_OF_DAY, true + case 0x56: + return PlcValueType_LTIME_OF_DAY, true + case 0x57: + return PlcValueType_DATE_AND_TIME, true + case 0x58: + return PlcValueType_LDATE_AND_TIME, true + case 0x61: + return PlcValueType_Struct, true + case 0x62: + return PlcValueType_List, true + case 0x71: + return PlcValueType_RAW_BYTE_ARRAY, true + } + return 0, false +} + +func PlcValueTypeByName(value string) (enum PlcValueType, ok bool) { + switch value { + case "NULL": + return PlcValueType_NULL, true + case "BOOL": + return PlcValueType_BOOL, true + case "BYTE": + return PlcValueType_BYTE, true + case "WORD": + return PlcValueType_WORD, true + case "DWORD": + return PlcValueType_DWORD, true + case "LWORD": + return PlcValueType_LWORD, true + case "USINT": + return PlcValueType_USINT, true + case "UINT": + return PlcValueType_UINT, true + case "UDINT": + return PlcValueType_UDINT, true + case "ULINT": + return PlcValueType_ULINT, true + case "SINT": + return PlcValueType_SINT, true + case "INT": + return PlcValueType_INT, true + case "DINT": + return PlcValueType_DINT, true + case "LINT": + return PlcValueType_LINT, true + case "REAL": + return PlcValueType_REAL, true + case "LREAL": + return PlcValueType_LREAL, true + case "CHAR": + return PlcValueType_CHAR, true + case "WCHAR": + return PlcValueType_WCHAR, true + case "STRING": + return PlcValueType_STRING, true + case "WSTRING": + return PlcValueType_WSTRING, true + case "TIME": + return PlcValueType_TIME, true + case "LTIME": + return PlcValueType_LTIME, true + case "DATE": + return PlcValueType_DATE, true + case "LDATE": + return PlcValueType_LDATE, true + case "TIME_OF_DAY": + return PlcValueType_TIME_OF_DAY, true + case "LTIME_OF_DAY": + return PlcValueType_LTIME_OF_DAY, true + case "DATE_AND_TIME": + return PlcValueType_DATE_AND_TIME, true + case "LDATE_AND_TIME": + return PlcValueType_LDATE_AND_TIME, true + case "Struct": + return PlcValueType_Struct, true + case "List": + return PlcValueType_List, true + case "RAW_BYTE_ARRAY": + return PlcValueType_RAW_BYTE_ARRAY, true + } + return 0, false +} + +func PlcValueTypeKnows(value uint8) bool { + for _, typeValue := range PlcValueTypeValues { + if uint8(typeValue) == value { + return true + } + } + return false +} + +func CastPlcValueType(structType interface{}) PlcValueType { + castFunc := func(typ interface{}) PlcValueType { + if sPlcValueType, ok := typ.(PlcValueType); ok { + return sPlcValueType + } + return 0 + } + return castFunc(structType) +} + +func (m PlcValueType) GetLengthInBits() uint16 { + return 8 +} + +func (m PlcValueType) GetLengthInBytes() uint16 { + return m.GetLengthInBits() / 8 +} + +func PlcValueTypeParse(readBuffer utils.ReadBuffer) (PlcValueType, error) { + val, err := readBuffer.ReadUint8("PlcValueType", 8) + if err != nil { + return 0, errors.Wrap(err, "error reading PlcValueType") + } + if enum, ok := PlcValueTypeByValue(val); !ok { + log.Debug().Msgf("no value %x found for RequestType", val) + return PlcValueType(val), nil + } else { + return enum, nil + } +} + +func (e PlcValueType) Serialize(writeBuffer utils.WriteBuffer) error { + return writeBuffer.WriteUint8("PlcValueType", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.PLC4XEnumName())) +} + +// PLC4XEnumName returns the name that is used in code to identify this enum +func (e PlcValueType) PLC4XEnumName() string { + switch e { + case PlcValueType_NULL: + return "NULL" + case PlcValueType_BOOL: + return "BOOL" + case PlcValueType_BYTE: + return "BYTE" + case PlcValueType_WORD: + return "WORD" + case PlcValueType_DWORD: + return "DWORD" + case PlcValueType_LWORD: + return "LWORD" + case PlcValueType_USINT: + return "USINT" + case PlcValueType_UINT: + return "UINT" + case PlcValueType_UDINT: + return "UDINT" + case PlcValueType_ULINT: + return "ULINT" + case PlcValueType_SINT: + return "SINT" + case PlcValueType_INT: + return "INT" + case PlcValueType_DINT: + return "DINT" + case PlcValueType_LINT: + return "LINT" + case PlcValueType_REAL: + return "REAL" + case PlcValueType_LREAL: + return "LREAL" + case PlcValueType_CHAR: + return "CHAR" + case PlcValueType_WCHAR: + return "WCHAR" + case PlcValueType_STRING: + return "STRING" + case PlcValueType_WSTRING: + return "WSTRING" + case PlcValueType_TIME: + return "TIME" + case PlcValueType_LTIME: + return "LTIME" + case PlcValueType_DATE: + return "DATE" + case PlcValueType_LDATE: + return "LDATE" + case PlcValueType_TIME_OF_DAY: + return "TIME_OF_DAY" + case PlcValueType_LTIME_OF_DAY: + return "LTIME_OF_DAY" + case PlcValueType_DATE_AND_TIME: + return "DATE_AND_TIME" + case PlcValueType_LDATE_AND_TIME: + return "LDATE_AND_TIME" + case PlcValueType_Struct: + return "Struct" + case PlcValueType_List: + return "List" + case PlcValueType_RAW_BYTE_ARRAY: + return "RAW_BYTE_ARRAY" + } + return "" +} + +func (e PlcValueType) String() string { + return e.PLC4XEnumName() +} diff --git a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go index aa594c7aa..257a4568b 100644 --- a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go +++ b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go @@ -35,38 +35,41 @@ type IReservedIndexGroups interface { } const ( - ReservedIndexGroups_ADSIGRP_SYMTAB ReservedIndexGroups = 0x0000F000 - ReservedIndexGroups_ADSIGRP_SYMNAME ReservedIndexGroups = 0x0000F001 - ReservedIndexGroups_ADSIGRP_SYMVAL ReservedIndexGroups = 0x0000F002 - ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME ReservedIndexGroups = 0x0000F003 - ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME ReservedIndexGroups = 0x0000F004 - ReservedIndexGroups_ADSIGRP_SYM_VALBYHND ReservedIndexGroups = 0x0000F005 - ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND ReservedIndexGroups = 0x0000F006 - ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME ReservedIndexGroups = 0x0000F007 - ReservedIndexGroups_ADSIGRP_SYM_VERSION ReservedIndexGroups = 0x0000F008 - ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX ReservedIndexGroups = 0x0000F009 - ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD ReservedIndexGroups = 0x0000F00A - ReservedIndexGroups_ADSIGRP_SYM_UPLOAD ReservedIndexGroups = 0x0000F00B - ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO ReservedIndexGroups = 0x0000F00C - ReservedIndexGroups_ADSIGRP_DATA_TYPE_TABLE_UPLOAD ReservedIndexGroups = 0x0000F00E - ReservedIndexGroups_ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES ReservedIndexGroups = 0x0000F00F - ReservedIndexGroups_ADSIGRP_SYMNOTE ReservedIndexGroups = 0x0000F010 - ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB ReservedIndexGroups = 0x0000F020 - ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX ReservedIndexGroups = 0x0000F021 - ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE ReservedIndexGroups = 0x0000F025 - ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB ReservedIndexGroups = 0x0000F030 - ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX ReservedIndexGroups = 0x0000F031 - ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE ReservedIndexGroups = 0x0000F035 - ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI ReservedIndexGroups = 0x0000F040 - ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO ReservedIndexGroups = 0x0000F050 - ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB ReservedIndexGroups = 0x0000F060 - ReservedIndexGroups_ADSIGRP_MULTIPLE_READ ReservedIndexGroups = 0x0000F080 - ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE ReservedIndexGroups = 0x0000F081 - ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE ReservedIndexGroups = 0x0000F082 - ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE ReservedIndexGroups = 0x0000F083 - ReservedIndexGroups_ADSIGRP_DEVICE_DATA ReservedIndexGroups = 0x0000F100 - ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE ReservedIndexGroups = 0x00000000 - ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE ReservedIndexGroups = 0x00000002 + ReservedIndexGroups_ADSIGRP_SYMTAB ReservedIndexGroups = 0x0000F000 + ReservedIndexGroups_ADSIGRP_SYMNAME ReservedIndexGroups = 0x0000F001 + ReservedIndexGroups_ADSIGRP_SYMVAL ReservedIndexGroups = 0x0000F002 + ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME ReservedIndexGroups = 0x0000F003 + ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME ReservedIndexGroups = 0x0000F004 + ReservedIndexGroups_ADSIGRP_SYM_VALBYHND ReservedIndexGroups = 0x0000F005 + ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND ReservedIndexGroups = 0x0000F006 + ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME ReservedIndexGroups = 0x0000F007 + ReservedIndexGroups_ADSIGRP_SYM_VERSION ReservedIndexGroups = 0x0000F008 + ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX ReservedIndexGroups = 0x0000F009 + ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD ReservedIndexGroups = 0x0000F00A + ReservedIndexGroups_ADSIGRP_SYM_UPLOAD ReservedIndexGroups = 0x0000F00B + ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO ReservedIndexGroups = 0x0000F00C + ReservedIndexGroups_ADSIGRP_DATA_TYPE_TABLE_UPLOAD ReservedIndexGroups = 0x0000F00E + ReservedIndexGroups_ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES ReservedIndexGroups = 0x0000F00F + ReservedIndexGroups_ADSIGRP_SYMNOTE ReservedIndexGroups = 0x0000F010 + ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB ReservedIndexGroups = 0x0000F020 + ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX ReservedIndexGroups = 0x0000F021 + ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE ReservedIndexGroups = 0x0000F025 + ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB ReservedIndexGroups = 0x0000F030 + ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX ReservedIndexGroups = 0x0000F031 + ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE ReservedIndexGroups = 0x0000F035 + ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI ReservedIndexGroups = 0x0000F040 + ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO ReservedIndexGroups = 0x0000F050 + ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB ReservedIndexGroups = 0x0000F060 + ReservedIndexGroups_ADSIGRP_MULTIPLE_READ ReservedIndexGroups = 0x0000F080 + ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE ReservedIndexGroups = 0x0000F081 + ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE ReservedIndexGroups = 0x0000F082 + ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE ReservedIndexGroups = 0x0000F083 + ReservedIndexGroups_ADSIGRP_SUMUP_READEX2 ReservedIndexGroups = 0x0000F084 + ReservedIndexGroups_ADSIGRP_MULTIPLE_ADD_DEVICE_NOTIFICATIONS ReservedIndexGroups = 0x0000F085 + ReservedIndexGroups_ADSIGRP_MULTIPLE_DELETE_DEVICE_NOTIFICATIONS ReservedIndexGroups = 0x0000F086 + ReservedIndexGroups_ADSIGRP_DEVICE_DATA ReservedIndexGroups = 0x0000F100 + ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE ReservedIndexGroups = 0x00000000 + ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE ReservedIndexGroups = 0x00000002 ) var ReservedIndexGroupsValues []ReservedIndexGroups @@ -103,6 +106,9 @@ func init() { ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE, ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE, ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE, + ReservedIndexGroups_ADSIGRP_SUMUP_READEX2, + ReservedIndexGroups_ADSIGRP_MULTIPLE_ADD_DEVICE_NOTIFICATIONS, + ReservedIndexGroups_ADSIGRP_MULTIPLE_DELETE_DEVICE_NOTIFICATIONS, ReservedIndexGroups_ADSIGRP_DEVICE_DATA, ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE, ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE, @@ -173,6 +179,12 @@ func ReservedIndexGroupsByValue(value uint32) (enum ReservedIndexGroups, ok bool return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE, true case 0x0000F083: return ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE, true + case 0x0000F084: + return ReservedIndexGroups_ADSIGRP_SUMUP_READEX2, true + case 0x0000F085: + return ReservedIndexGroups_ADSIGRP_MULTIPLE_ADD_DEVICE_NOTIFICATIONS, true + case 0x0000F086: + return ReservedIndexGroups_ADSIGRP_MULTIPLE_DELETE_DEVICE_NOTIFICATIONS, true case 0x0000F100: return ReservedIndexGroups_ADSIGRP_DEVICE_DATA, true } @@ -243,6 +255,12 @@ func ReservedIndexGroupsByName(value string) (enum ReservedIndexGroups, ok bool) return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE, true case "ADSIGRP_MULTIPLE_RELEASE_HANDLE": return ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE, true + case "ADSIGRP_SUMUP_READEX2": + return ReservedIndexGroups_ADSIGRP_SUMUP_READEX2, true + case "ADSIGRP_MULTIPLE_ADD_DEVICE_NOTIFICATIONS": + return ReservedIndexGroups_ADSIGRP_MULTIPLE_ADD_DEVICE_NOTIFICATIONS, true + case "ADSIGRP_MULTIPLE_DELETE_DEVICE_NOTIFICATIONS": + return ReservedIndexGroups_ADSIGRP_MULTIPLE_DELETE_DEVICE_NOTIFICATIONS, true case "ADSIGRP_DEVICE_DATA": return ReservedIndexGroups_ADSIGRP_DEVICE_DATA, true } @@ -358,6 +376,12 @@ func (e ReservedIndexGroups) PLC4XEnumName() string { return "ADSIGRP_MULTIPLE_READ_WRITE" case ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE: return "ADSIGRP_MULTIPLE_RELEASE_HANDLE" + case ReservedIndexGroups_ADSIGRP_SUMUP_READEX2: + return "ADSIGRP_SUMUP_READEX2" + case ReservedIndexGroups_ADSIGRP_MULTIPLE_ADD_DEVICE_NOTIFICATIONS: + return "ADSIGRP_MULTIPLE_ADD_DEVICE_NOTIFICATIONS" + case ReservedIndexGroups_ADSIGRP_MULTIPLE_DELETE_DEVICE_NOTIFICATIONS: + return "ADSIGRP_MULTIPLE_DELETE_DEVICE_NOTIFICATIONS" case ReservedIndexGroups_ADSIGRP_DEVICE_DATA: return "ADSIGRP_DEVICE_DATA" }
