You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2022/08/17 19:37:46 UTC
[plc4x] 02/02: chore(plc4j/ads): Merged the ReservedIndexGroups and AdsSignificantGroupAddresses
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 01405a02f3b1047e1a7582c42cf9188e58cd1ca5
Author: Christofer Dutz <ch...@rivian.com>
AuthorDate: Wed Aug 17 21:37:33 2022 +0200
chore(plc4j/ads): Merged the ReservedIndexGroups and AdsSignificantGroupAddresses
---
.../ads/readwrite/model/AdsDataTypeTableEntry.go | 132 ++++++++++-----------
.../ads/readwrite/model/ReservedIndexGroups.go | 76 +++++++-----
.../knxnetip/readwrite/model/KnxManufacturer.go | 26 +++-
.../plc4x/java/ads/protocol/AdsProtocolLogic.java | 6 +-
.../knxnetip/readwrite/model/KnxManufacturer.cs | 19 ++-
.../ads/src/main/resources/protocols/ads/ads.mspec | 22 ++--
6 files changed, 161 insertions(+), 120 deletions(-)
diff --git a/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableEntry.go b/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableEntry.go
index 8a9905d06..e4ef888a1 100644
--- a/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableEntry.go
+++ b/plc4go/protocols/ads/readwrite/model/AdsDataTypeTableEntry.go
@@ -28,8 +28,8 @@ import (
// Code generated by code-generation. DO NOT EDIT.
// Constant values.
-const AdsDataTypeTableEntry_NAMETERMINATOR uint8 = 0x00
const AdsDataTypeTableEntry_DATATYPENAMETERMINATOR uint8 = 0x00
+const AdsDataTypeTableEntry_SIMPLETYPENAMETERMINATOR uint8 = 0x00
const AdsDataTypeTableEntry_COMMENTTERMINATOR uint8 = 0x00
// AdsDataTypeTableEntry is the corresponding interface of AdsDataTypeTableEntry
@@ -56,10 +56,10 @@ type AdsDataTypeTableEntry interface {
GetArrayDimensions() uint16
// GetNumChildren returns NumChildren (property field)
GetNumChildren() uint16
- // GetName returns Name (property field)
- GetName() string
// GetDataTypeName returns DataTypeName (property field)
GetDataTypeName() string
+ // GetSimpleTypeName returns SimpleTypeName (property field)
+ GetSimpleTypeName() string
// GetComment returns Comment (property field)
GetComment() string
// GetArrayInfo returns ArrayInfo (property field)
@@ -89,8 +89,8 @@ type _AdsDataTypeTableEntry struct {
Flags uint32
ArrayDimensions uint16
NumChildren uint16
- Name string
DataTypeName string
+ SimpleTypeName string
Comment string
ArrayInfo []AdsDataTypeArrayInfo
Children []AdsDataTypeTableChildEntry
@@ -142,14 +142,14 @@ func (m *_AdsDataTypeTableEntry) GetNumChildren() uint16 {
return m.NumChildren
}
-func (m *_AdsDataTypeTableEntry) GetName() string {
- return m.Name
-}
-
func (m *_AdsDataTypeTableEntry) GetDataTypeName() string {
return m.DataTypeName
}
+func (m *_AdsDataTypeTableEntry) GetSimpleTypeName() string {
+ return m.SimpleTypeName
+}
+
func (m *_AdsDataTypeTableEntry) GetComment() string {
return m.Comment
}
@@ -175,14 +175,14 @@ func (m *_AdsDataTypeTableEntry) GetRest() []byte {
/////////////////////// Accessors for const fields.
///////////////////////
-func (m *_AdsDataTypeTableEntry) GetNameTerminator() uint8 {
- return AdsDataTypeTableEntry_NAMETERMINATOR
-}
-
func (m *_AdsDataTypeTableEntry) GetDataTypeNameTerminator() uint8 {
return AdsDataTypeTableEntry_DATATYPENAMETERMINATOR
}
+func (m *_AdsDataTypeTableEntry) GetSimpleTypeNameTerminator() uint8 {
+ return AdsDataTypeTableEntry_SIMPLETYPENAMETERMINATOR
+}
+
func (m *_AdsDataTypeTableEntry) GetCommentTerminator() uint8 {
return AdsDataTypeTableEntry_COMMENTTERMINATOR
}
@@ -193,8 +193,8 @@ func (m *_AdsDataTypeTableEntry) GetCommentTerminator() uint8 {
///////////////////////////////////////////////////////////
// NewAdsDataTypeTableEntry factory function for _AdsDataTypeTableEntry
-func NewAdsDataTypeTableEntry(entryLength uint32, version uint32, hashValue uint32, typeHashValue uint32, size uint32, offset uint32, dataType uint32, flags uint32, arrayDimensions uint16, numChildren uint16, name string, dataTypeName string, comment string, arrayInfo []AdsDataTypeArrayInfo, children []AdsDataTypeTableChildEntry, rest []byte) *_AdsDataTypeTableEntry {
- return &_AdsDataTypeTableEntry{EntryLength: entryLength, Version: version, HashValue: hashValue, TypeHashValue: typeHashValue, Size: size, Offset: offset, DataType: dataType, Flags: flags, ArrayDimensions: arrayDimensions, NumChildren: numChildren, Name: name, DataTypeName: dataTypeName, Comment: comment, ArrayInfo: arrayInfo, Children: children, Rest: rest}
+func NewAdsDataTypeTableEntry(entryLength uint32, version uint32, hashValue uint32, typeHashValue uint32, size uint32, offset uint32, dataType uint32, flags uint32, arrayDimensions uint16, numChildren uint16, dataTypeName string, simpleTypeName string, comment string, arrayInfo []AdsDataTypeArrayInfo, children []AdsDataTypeTableChildEntry, rest []byte) *_AdsDataTypeTableEntry {
+ return &_AdsDataTypeTableEntry{EntryLength: entryLength, Version: version, HashValue: hashValue, TypeHashValue: typeHashValue, Size: size, Offset: offset, DataType: dataType, Flags: flags, ArrayDimensions: arrayDimensions, NumChildren: numChildren, DataTypeName: dataTypeName, SimpleTypeName: simpleTypeName, Comment: comment, ArrayInfo: arrayInfo, Children: children, Rest: rest}
}
// Deprecated: use the interface for direct cast
@@ -243,10 +243,10 @@ func (m *_AdsDataTypeTableEntry) GetLengthInBitsConditional(lastItem bool) uint1
// Simple field (flags)
lengthInBits += 32
- // Implicit Field (nameLength)
+ // Implicit Field (dataTypeNameLength)
lengthInBits += 16
- // Implicit Field (dataTypeNameLength)
+ // Implicit Field (simpleTypeNameLength)
lengthInBits += 16
// Implicit Field (commentLength)
@@ -258,18 +258,18 @@ func (m *_AdsDataTypeTableEntry) GetLengthInBitsConditional(lastItem bool) uint1
// Simple field (numChildren)
lengthInBits += 16
- // Simple field (name)
- lengthInBits += uint16(int32(GetSTR_LEN()(m.GetName())) * int32(int32(8)))
-
- // Const Field (nameTerminator)
- lengthInBits += 8
-
// Simple field (dataTypeName)
lengthInBits += uint16(int32(GetSTR_LEN()(m.GetDataTypeName())) * int32(int32(8)))
// Const Field (dataTypeNameTerminator)
lengthInBits += 8
+ // Simple field (simpleTypeName)
+ lengthInBits += uint16(int32(GetSTR_LEN()(m.GetSimpleTypeName())) * int32(int32(8)))
+
+ // Const Field (simpleTypeNameTerminator)
+ lengthInBits += 8
+
// Simple field (comment)
lengthInBits += uint16(int32(GetSTR_LEN()(m.GetComment())) * int32(int32(8)))
@@ -371,13 +371,6 @@ func AdsDataTypeTableEntryParse(readBuffer utils.ReadBuffer) (AdsDataTypeTableEn
}
flags := _flags
- // Implicit Field (nameLength) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
- nameLength, _nameLengthErr := readBuffer.ReadUint16("nameLength", 16)
- _ = nameLength
- if _nameLengthErr != nil {
- return nil, errors.Wrap(_nameLengthErr, "Error parsing 'nameLength' field of AdsDataTypeTableEntry")
- }
-
// Implicit Field (dataTypeNameLength) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
dataTypeNameLength, _dataTypeNameLengthErr := readBuffer.ReadUint16("dataTypeNameLength", 16)
_ = dataTypeNameLength
@@ -385,6 +378,13 @@ func AdsDataTypeTableEntryParse(readBuffer utils.ReadBuffer) (AdsDataTypeTableEn
return nil, errors.Wrap(_dataTypeNameLengthErr, "Error parsing 'dataTypeNameLength' field of AdsDataTypeTableEntry")
}
+ // Implicit Field (simpleTypeNameLength) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
+ simpleTypeNameLength, _simpleTypeNameLengthErr := readBuffer.ReadUint16("simpleTypeNameLength", 16)
+ _ = simpleTypeNameLength
+ if _simpleTypeNameLengthErr != nil {
+ return nil, errors.Wrap(_simpleTypeNameLengthErr, "Error parsing 'simpleTypeNameLength' field of AdsDataTypeTableEntry")
+ }
+
// Implicit Field (commentLength) (Used for parsing, but its value is not stored as it's implicitly given by the objects content)
commentLength, _commentLengthErr := readBuffer.ReadUint16("commentLength", 16)
_ = commentLength
@@ -406,22 +406,6 @@ func AdsDataTypeTableEntryParse(readBuffer utils.ReadBuffer) (AdsDataTypeTableEn
}
numChildren := _numChildren
- // Simple Field (name)
- _name, _nameErr := readBuffer.ReadString("name", uint32((nameLength)*(8)))
- if _nameErr != nil {
- return nil, errors.Wrap(_nameErr, "Error parsing 'name' field of AdsDataTypeTableEntry")
- }
- name := _name
-
- // Const Field (nameTerminator)
- nameTerminator, _nameTerminatorErr := readBuffer.ReadUint8("nameTerminator", 8)
- if _nameTerminatorErr != nil {
- return nil, errors.Wrap(_nameTerminatorErr, "Error parsing 'nameTerminator' field of AdsDataTypeTableEntry")
- }
- if nameTerminator != AdsDataTypeTableEntry_NAMETERMINATOR {
- return nil, errors.New("Expected constant value " + fmt.Sprintf("%d", AdsDataTypeTableEntry_NAMETERMINATOR) + " but got " + fmt.Sprintf("%d", nameTerminator))
- }
-
// Simple Field (dataTypeName)
_dataTypeName, _dataTypeNameErr := readBuffer.ReadString("dataTypeName", uint32((dataTypeNameLength)*(8)))
if _dataTypeNameErr != nil {
@@ -438,6 +422,22 @@ func AdsDataTypeTableEntryParse(readBuffer utils.ReadBuffer) (AdsDataTypeTableEn
return nil, errors.New("Expected constant value " + fmt.Sprintf("%d", AdsDataTypeTableEntry_DATATYPENAMETERMINATOR) + " but got " + fmt.Sprintf("%d", dataTypeNameTerminator))
}
+ // Simple Field (simpleTypeName)
+ _simpleTypeName, _simpleTypeNameErr := readBuffer.ReadString("simpleTypeName", uint32((simpleTypeNameLength)*(8)))
+ if _simpleTypeNameErr != nil {
+ return nil, errors.Wrap(_simpleTypeNameErr, "Error parsing 'simpleTypeName' field of AdsDataTypeTableEntry")
+ }
+ simpleTypeName := _simpleTypeName
+
+ // Const Field (simpleTypeNameTerminator)
+ simpleTypeNameTerminator, _simpleTypeNameTerminatorErr := readBuffer.ReadUint8("simpleTypeNameTerminator", 8)
+ if _simpleTypeNameTerminatorErr != nil {
+ return nil, errors.Wrap(_simpleTypeNameTerminatorErr, "Error parsing 'simpleTypeNameTerminator' field of AdsDataTypeTableEntry")
+ }
+ if simpleTypeNameTerminator != AdsDataTypeTableEntry_SIMPLETYPENAMETERMINATOR {
+ return nil, errors.New("Expected constant value " + fmt.Sprintf("%d", AdsDataTypeTableEntry_SIMPLETYPENAMETERMINATOR) + " but got " + fmt.Sprintf("%d", simpleTypeNameTerminator))
+ }
+
// Simple Field (comment)
_comment, _commentErr := readBuffer.ReadString("comment", uint32((commentLength)*(8)))
if _commentErr != nil {
@@ -522,8 +522,8 @@ func AdsDataTypeTableEntryParse(readBuffer utils.ReadBuffer) (AdsDataTypeTableEn
Flags: flags,
ArrayDimensions: arrayDimensions,
NumChildren: numChildren,
- Name: name,
DataTypeName: dataTypeName,
+ SimpleTypeName: simpleTypeName,
Comment: comment,
ArrayInfo: arrayInfo,
Children: children,
@@ -594,13 +594,6 @@ func (m *_AdsDataTypeTableEntry) Serialize(writeBuffer utils.WriteBuffer) error
return errors.Wrap(_flagsErr, "Error serializing 'flags' field")
}
- // Implicit Field (nameLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
- nameLength := uint16(GetSTR_LEN()(m.GetName()))
- _nameLengthErr := writeBuffer.WriteUint16("nameLength", 16, (nameLength))
- if _nameLengthErr != nil {
- return errors.Wrap(_nameLengthErr, "Error serializing 'nameLength' field")
- }
-
// Implicit Field (dataTypeNameLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
dataTypeNameLength := uint16(GetSTR_LEN()(m.GetDataTypeName()))
_dataTypeNameLengthErr := writeBuffer.WriteUint16("dataTypeNameLength", 16, (dataTypeNameLength))
@@ -608,6 +601,13 @@ func (m *_AdsDataTypeTableEntry) Serialize(writeBuffer utils.WriteBuffer) error
return errors.Wrap(_dataTypeNameLengthErr, "Error serializing 'dataTypeNameLength' field")
}
+ // Implicit Field (simpleTypeNameLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
+ simpleTypeNameLength := uint16(GetSTR_LEN()(m.GetSimpleTypeName()))
+ _simpleTypeNameLengthErr := writeBuffer.WriteUint16("simpleTypeNameLength", 16, (simpleTypeNameLength))
+ if _simpleTypeNameLengthErr != nil {
+ return errors.Wrap(_simpleTypeNameLengthErr, "Error serializing 'simpleTypeNameLength' field")
+ }
+
// Implicit Field (commentLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
commentLength := uint16(GetSTR_LEN()(m.GetComment()))
_commentLengthErr := writeBuffer.WriteUint16("commentLength", 16, (commentLength))
@@ -629,19 +629,6 @@ func (m *_AdsDataTypeTableEntry) Serialize(writeBuffer utils.WriteBuffer) error
return errors.Wrap(_numChildrenErr, "Error serializing 'numChildren' field")
}
- // Simple Field (name)
- name := string(m.GetName())
- _nameErr := writeBuffer.WriteString("name", uint32((GetSTR_LEN()(m.GetName()))*(8)), "UTF-8", (name))
- if _nameErr != nil {
- return errors.Wrap(_nameErr, "Error serializing 'name' field")
- }
-
- // Const Field (nameTerminator)
- _nameTerminatorErr := writeBuffer.WriteUint8("nameTerminator", 8, 0x00)
- if _nameTerminatorErr != nil {
- return errors.Wrap(_nameTerminatorErr, "Error serializing 'nameTerminator' field")
- }
-
// Simple Field (dataTypeName)
dataTypeName := string(m.GetDataTypeName())
_dataTypeNameErr := writeBuffer.WriteString("dataTypeName", uint32((GetSTR_LEN()(m.GetDataTypeName()))*(8)), "UTF-8", (dataTypeName))
@@ -655,6 +642,19 @@ func (m *_AdsDataTypeTableEntry) Serialize(writeBuffer utils.WriteBuffer) error
return errors.Wrap(_dataTypeNameTerminatorErr, "Error serializing 'dataTypeNameTerminator' field")
}
+ // Simple Field (simpleTypeName)
+ simpleTypeName := string(m.GetSimpleTypeName())
+ _simpleTypeNameErr := writeBuffer.WriteString("simpleTypeName", uint32((GetSTR_LEN()(m.GetSimpleTypeName()))*(8)), "UTF-8", (simpleTypeName))
+ if _simpleTypeNameErr != nil {
+ return errors.Wrap(_simpleTypeNameErr, "Error serializing 'simpleTypeName' field")
+ }
+
+ // Const Field (simpleTypeNameTerminator)
+ _simpleTypeNameTerminatorErr := writeBuffer.WriteUint8("simpleTypeNameTerminator", 8, 0x00)
+ if _simpleTypeNameTerminatorErr != nil {
+ return errors.Wrap(_simpleTypeNameTerminatorErr, "Error serializing 'simpleTypeNameTerminator' field")
+ }
+
// Simple Field (comment)
comment := string(m.GetComment())
_commentErr := writeBuffer.WriteString("comment", uint32((GetSTR_LEN()(m.GetComment()))*(8)), "UTF-8", (comment))
diff --git a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
index edd11d25a..aa594c7aa 100644
--- a/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
+++ b/plc4go/protocols/ads/readwrite/model/ReservedIndexGroups.go
@@ -35,36 +35,38 @@ 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_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_DEVICE_DATA ReservedIndexGroups = 0x0000F100
+ ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE ReservedIndexGroups = 0x00000000
+ ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE ReservedIndexGroups = 0x00000002
)
var ReservedIndexGroupsValues []ReservedIndexGroups
@@ -85,6 +87,8 @@ func init() {
ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD,
ReservedIndexGroups_ADSIGRP_SYM_UPLOAD,
ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO,
+ ReservedIndexGroups_ADSIGRP_DATA_TYPE_TABLE_UPLOAD,
+ ReservedIndexGroups_ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES,
ReservedIndexGroups_ADSIGRP_SYMNOTE,
ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB,
ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX,
@@ -137,6 +141,10 @@ func ReservedIndexGroupsByValue(value uint32) (enum ReservedIndexGroups, ok bool
return ReservedIndexGroups_ADSIGRP_SYM_UPLOAD, true
case 0x0000F00C:
return ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO, true
+ case 0x0000F00E:
+ return ReservedIndexGroups_ADSIGRP_DATA_TYPE_TABLE_UPLOAD, true
+ case 0x0000F00F:
+ return ReservedIndexGroups_ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES, true
case 0x0000F010:
return ReservedIndexGroups_ADSIGRP_SYMNOTE, true
case 0x0000F020:
@@ -203,6 +211,10 @@ func ReservedIndexGroupsByName(value string) (enum ReservedIndexGroups, ok bool)
return ReservedIndexGroups_ADSIGRP_SYM_UPLOAD, true
case "ADSIGRP_SYM_UPLOADINFO":
return ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO, true
+ case "ADSIGRP_DATA_TYPE_TABLE_UPLOAD":
+ return ReservedIndexGroups_ADSIGRP_DATA_TYPE_TABLE_UPLOAD, true
+ case "ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES":
+ return ReservedIndexGroups_ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES, true
case "ADSIGRP_SYMNOTE":
return ReservedIndexGroups_ADSIGRP_SYMNOTE, true
case "ADSIGRP_IOIMAGE_RWIB":
@@ -314,6 +326,10 @@ func (e ReservedIndexGroups) PLC4XEnumName() string {
return "ADSIGRP_SYM_UPLOAD"
case ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO:
return "ADSIGRP_SYM_UPLOADINFO"
+ case ReservedIndexGroups_ADSIGRP_DATA_TYPE_TABLE_UPLOAD:
+ return "ADSIGRP_DATA_TYPE_TABLE_UPLOAD"
+ case ReservedIndexGroups_ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES:
+ return "ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES"
case ReservedIndexGroups_ADSIGRP_SYMNOTE:
return "ADSIGRP_SYMNOTE"
case ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB:
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
index 01e0555ac..eba4ce85f 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
@@ -632,8 +632,9 @@ const (
KnxManufacturer_M_DELTA_ELECTRONICS KnxManufacturer = 592
KnxManufacturer_M_SHANGHAI_LEWIN_INTELLIGENT_TECHNOLOGY_CO__LTD_ KnxManufacturer = 593
KnxManufacturer_M_KG_POWER KnxManufacturer = 594
- KnxManufacturer_M_ABB___RESERVED KnxManufacturer = 595
- KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED KnxManufacturer = 596
+ KnxManufacturer_M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD KnxManufacturer = 595
+ KnxManufacturer_M_ABB___RESERVED KnxManufacturer = 596
+ KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED KnxManufacturer = 597
)
var KnxManufacturerValues []KnxManufacturer
@@ -1236,6 +1237,7 @@ func init() {
KnxManufacturer_M_DELTA_ELECTRONICS,
KnxManufacturer_M_SHANGHAI_LEWIN_INTELLIGENT_TECHNOLOGY_CO__LTD_,
KnxManufacturer_M_KG_POWER,
+ KnxManufacturer_M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD,
KnxManufacturer_M_ABB___RESERVED,
KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED,
}
@@ -3449,10 +3451,14 @@ func (e KnxManufacturer) Number() uint16 {
}
case 595:
{ /* '595' */
- return 43954
+ return 653
}
case 596:
{ /* '596' */
+ return 43954
+ }
+ case 597:
+ { /* '597' */
return 43959
}
case 6:
@@ -5855,10 +5861,14 @@ func (e KnxManufacturer) Name() string {
}
case 595:
{ /* '595' */
- return "ABB - reserved"
+ return "Zhejiang Moorgen Intelligent Technology Co., Ltd"
}
case 596:
{ /* '596' */
+ return "ABB - reserved"
+ }
+ case 597:
+ { /* '597' */
return "Busch-Jaeger Elektro - reserved"
}
case 6:
@@ -7157,8 +7167,10 @@ func KnxManufacturerByValue(value uint16) (enum KnxManufacturer, ok bool) {
case 594:
return KnxManufacturer_M_KG_POWER, true
case 595:
- return KnxManufacturer_M_ABB___RESERVED, true
+ return KnxManufacturer_M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD, true
case 596:
+ return KnxManufacturer_M_ABB___RESERVED, true
+ case 597:
return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED, true
case 6:
return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO, true
@@ -8356,6 +8368,8 @@ func KnxManufacturerByName(value string) (enum KnxManufacturer, ok bool) {
return KnxManufacturer_M_SHANGHAI_LEWIN_INTELLIGENT_TECHNOLOGY_CO__LTD_, true
case "M_KG_POWER":
return KnxManufacturer_M_KG_POWER, true
+ case "M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD":
+ return KnxManufacturer_M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD, true
case "M_ABB___RESERVED":
return KnxManufacturer_M_ABB___RESERVED, true
case "M_BUSCH_JAEGER_ELEKTRO___RESERVED":
@@ -9601,6 +9615,8 @@ func (e KnxManufacturer) PLC4XEnumName() string {
return "M_SHANGHAI_LEWIN_INTELLIGENT_TECHNOLOGY_CO__LTD_"
case KnxManufacturer_M_KG_POWER:
return "M_KG_POWER"
+ case KnxManufacturer_M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD:
+ return "M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD"
case KnxManufacturer_M_ABB___RESERVED:
return "M_ABB___RESERVED"
case KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED:
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java
index 8ceade36f..a71bab324 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/protocol/AdsProtocolLogic.java
@@ -107,7 +107,7 @@ public class AdsProtocolLogic extends Plc4xProtocolBase<AmsTCPPacket> implements
List<AdsDataTypeTableEntry> dataTypes = new ArrayList<>();
List<AdsSymbolTableEntry> symbols = new ArrayList<>();
// Initialize the request.
- AdsData adsData = new AdsReadRequest(AdsSignificantGroupAddresses.TABLE_SIZES.getValue(), 0x00000000, 24);
+ AdsData adsData = new AdsReadRequest(ReservedIndexGroups.ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES.getValue(), 0x00000000, 24);
AmsPacket amsPacket = new AmsPacket(configuration.getTargetAmsNetId(), configuration.getTargetAmsPort(),
configuration.getSourceAmsNetId(), configuration.getSourceAmsPort(),
CommandId.ADS_READ, DEFAULT_COMMAND_STATE, 0, getInvokeId(), adsData);
@@ -129,7 +129,7 @@ public class AdsProtocolLogic extends Plc4xProtocolBase<AmsTCPPacket> implements
LOGGER.debug("PLC contains {} symbols and {} data-types", adsTableSizes.getSymbolCount(), adsTableSizes.getDataTypeCount());
// Now we load the datatype definitions.
- AdsData adsReadTypeTableData = new AdsReadRequest(AdsSignificantGroupAddresses.DATA_TYPE_TABLE.getValue(), 0x00000000, adsTableSizes.getDataTypeLength());
+ AdsData adsReadTypeTableData = new AdsReadRequest(ReservedIndexGroups.ADSIGRP_DATA_TYPE_TABLE_UPLOAD.getValue(), 0x00000000, adsTableSizes.getDataTypeLength());
AmsPacket amsReadTablePacket = new AmsPacket(configuration.getTargetAmsNetId(), configuration.getTargetAmsPort(),
configuration.getSourceAmsNetId(), configuration.getSourceAmsPort(),
CommandId.ADS_READ, DEFAULT_COMMAND_STATE, 0, getInvokeId(), adsReadTypeTableData);
@@ -155,7 +155,7 @@ public class AdsProtocolLogic extends Plc4xProtocolBase<AmsTCPPacket> implements
}
}
- AdsData adsReadSymbolTableData = new AdsReadRequest(AdsSignificantGroupAddresses.SYMBOL_TABLE.getValue(), 0x00000000, adsTableSizes.getSymbolLength());
+ AdsData adsReadSymbolTableData = new AdsReadRequest(ReservedIndexGroups.ADSIGRP_SYM_UPLOAD.getValue(), 0x00000000, adsTableSizes.getSymbolLength());
AmsPacket amsReadSymbolTablePacket = new AmsPacket(configuration.getTargetAmsNetId(), configuration.getTargetAmsPort(),
configuration.getSourceAmsNetId(), configuration.getSourceAmsPort(),
CommandId.ADS_READ, DEFAULT_COMMAND_STATE, 0, getInvokeId(), adsReadSymbolTableData);
diff --git a/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs b/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs
index bd0a28d2e..0df9c2f6b 100644
--- a/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs
+++ b/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs
@@ -619,8 +619,9 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
M_DELTA_ELECTRONICS = 592,
M_SHANGHAI_LEWIN_INTELLIGENT_TECHNOLOGY_CO__LTD_ = 593,
M_KG_POWER = 594,
- M_ABB___RESERVED = 595,
- M_BUSCH_JAEGER_ELEKTRO___RESERVED = 596,
+ M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD = 595,
+ M_ABB___RESERVED = 596,
+ M_BUSCH_JAEGER_ELEKTRO___RESERVED = 597,
}
public static class KnxManufacturerInfo
@@ -2283,10 +2284,13 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
case KnxManufacturer.M_KG_POWER: { /* '594' */
return 652;
}
- case KnxManufacturer.M_ABB___RESERVED: { /* '595' */
+ case KnxManufacturer.M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD: { /* '595' */
+ return 653;
+ }
+ case KnxManufacturer.M_ABB___RESERVED: { /* '596' */
return 43954;
}
- case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '596' */
+ case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '597' */
return 43959;
}
case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO: { /* '6' */
@@ -4084,10 +4088,13 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
case KnxManufacturer.M_KG_POWER: { /* '594' */
return "KG-POWER";
}
- case KnxManufacturer.M_ABB___RESERVED: { /* '595' */
+ case KnxManufacturer.M_ZHEJIANG_MOORGEN_INTELLIGENT_TECHNOLOGY_CO___LTD: { /* '595' */
+ return "Zhejiang Moorgen Intelligent Technology Co., Ltd";
+ }
+ case KnxManufacturer.M_ABB___RESERVED: { /* '596' */
return "ABB - reserved";
}
- case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '596' */
+ case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '597' */
return "Busch-Jaeger Elektro - reserved";
}
case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO: { /* '6' */
diff --git a/protocols/ads/src/main/resources/protocols/ads/ads.mspec b/protocols/ads/src/main/resources/protocols/ads/ads.mspec
index f8421ba02..bc82fd672 100644
--- a/protocols/ads/src/main/resources/protocols/ads/ads.mspec
+++ b/protocols/ads/src/main/resources/protocols/ads/ads.mspec
@@ -569,6 +569,10 @@
['0x28' DT ['4', '"IEC61131_DATE_AND_TIME"']]
]
+// https://github.com/Beckhoff/ADS/blob/master/AdsLib/standalone/AdsDef.h
+// https://gitlab.com/xilix-systems-llc/go-native-ads/-/blob/master/ads.go#L145
+// https://gitlab.com/xilix-systems-llc/go-native-ads/-/blob/master/connection.go#L109
+// https://gitlab.com/xilix-systems-llc/go-native-ads/-/blob/master/symbols.go#L222
[enum uint 32 ReservedIndexGroups
['0x0000F000' ADSIGRP_SYMTAB]
['0x0000F001' ADSIGRP_SYMNAME]
@@ -579,10 +583,18 @@
['0x0000F006' ADSIGRP_SYM_RELEASEHND]
['0x0000F007' ADSIGRP_SYM_INFOBYNAME]
['0x0000F008' ADSIGRP_SYM_VERSION]
+ // We can use this GID to read the type information of a given variable
+ // in the operation mode in which we don't read the entire structures on
+ // connection start.
['0x0000F009' ADSIGRP_SYM_INFOBYNAMEEX]
['0x0000F00A' ADSIGRP_SYM_DOWNLOAD]
+ // Read the symbol-table (All variables defined in the PLC)
['0x0000F00B' ADSIGRP_SYM_UPLOAD]
['0x0000F00C' ADSIGRP_SYM_UPLOADINFO]
+ // Read the data-type-table (All data-types defined in the PLC)
+ ['0x0000F00E' ADSIGRP_DATA_TYPE_TABLE_UPLOAD]
+ // Read the sizes of the symbol and data-type-tables
+ ['0x0000F00F' ADSIGRP_SYMBOL_AND_DATA_TYPE_SIZES]
['0x0000F010' ADSIGRP_SYMNOTE]
['0x0000F020' ADSIGRP_IOIMAGE_RWIB]
['0x0000F021' ADSIGRP_IOIMAGE_RWIX]
@@ -736,16 +748,6 @@
['0x2751' WSAEHOSTUNREACH]
]
-// https://github.com/Beckhoff/ADS/blob/master/AdsLib/standalone/AdsDef.h
-// https://gitlab.com/xilix-systems-llc/go-native-ads/-/blob/master/ads.go#L145
-// https://gitlab.com/xilix-systems-llc/go-native-ads/-/blob/master/connection.go#L109
-// https://gitlab.com/xilix-systems-llc/go-native-ads/-/blob/master/symbols.go#L222
-[enum uint 32 AdsSignificantGroupAddresses
- ['0x0000F00B' SYMBOL_TABLE ]
- ['0x0000F00E' DATA_TYPE_TABLE]
- ['0x0000F00F' TABLE_SIZES ]
-]
-
[type AdsTableSizes byteOrder='LITTLE_ENDIAN'
[simple uint 32 symbolCount ]
[simple uint 32 symbolLength ]