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/11/09 16:58:42 UTC
[plc4x] branch develop updated: feat(bacnet): add more info to the enums to access values from code
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 807419e9e5 feat(bacnet): add more info to the enums to access values from code
807419e9e5 is described below
commit 807419e9e5c0822b40b372b99ad922dffdd96c92
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Nov 9 17:52:13 2022 +0100
feat(bacnet): add more info to the enums to access values from code
---
.../protocols/bacnetip/readwrite/ParserHelper.go | 14 ----
.../bacnetip/readwrite/XmlParserHelper.go | 16 -----
.../readwrite/model/MaxApduLengthAccepted.go | 82 ++++++++++++++++++++++
.../readwrite/model/MaxSegmentsAccepted.go | 50 +++++++++++++
.../protocols/bacnetip/bacnet-private-enums.mspec | 58 +++++++--------
5 files changed, 161 insertions(+), 59 deletions(-)
diff --git a/plc4go/protocols/bacnetip/readwrite/ParserHelper.go b/plc4go/protocols/bacnetip/readwrite/ParserHelper.go
index 759d1cc039..aef2467129 100644
--- a/plc4go/protocols/bacnetip/readwrite/ParserHelper.go
+++ b/plc4go/protocols/bacnetip/readwrite/ParserHelper.go
@@ -654,13 +654,6 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
}
tagClass, _ := model.TagClassByName(arguments[1])
return model.BACnetLiftFaultTaggedParseWithBuffer(io, tagNumber, tagClass)
- case "MaxApduLengthAcceptedTagged":
- tagNumber, err := utils.StrToUint8(arguments[0])
- if err != nil {
- return nil, errors.Wrap(err, "Error parsing")
- }
- tagClass, _ := model.TagClassByName(arguments[1])
- return model.MaxApduLengthAcceptedTaggedParseWithBuffer(io, tagNumber, tagClass)
case "BACnetPropertyStatesEnclosed":
tagNumber, err := utils.StrToUint8(arguments[0])
if err != nil {
@@ -1399,13 +1392,6 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
return model.SubscribeCOVPropertyMultipleErrorFirstFailedSubscriptionParseWithBuffer(io, tagNumber)
case "BACnetAuthenticationFactor":
return model.BACnetAuthenticationFactorParseWithBuffer(io)
- case "MaxSegmentsAcceptedTagged":
- tagNumber, err := utils.StrToUint8(arguments[0])
- if err != nil {
- return nil, errors.Wrap(err, "Error parsing")
- }
- tagClass, _ := model.TagClassByName(arguments[1])
- return model.MaxSegmentsAcceptedTaggedParseWithBuffer(io, tagNumber, tagClass)
case "BACnetWriteAccessSpecification":
return model.BACnetWriteAccessSpecificationParseWithBuffer(io)
case "BACnetLightingCommandEnclosed":
diff --git a/plc4go/protocols/bacnetip/readwrite/XmlParserHelper.go b/plc4go/protocols/bacnetip/readwrite/XmlParserHelper.go
index 9a748421af..dc6b33ad59 100644
--- a/plc4go/protocols/bacnetip/readwrite/XmlParserHelper.go
+++ b/plc4go/protocols/bacnetip/readwrite/XmlParserHelper.go
@@ -748,14 +748,6 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
tagNumber := uint8(parsedUint0)
tagClass, _ := model.TagClassByName(parserArguments[1])
return model.BACnetLiftFaultTaggedParseWithBuffer(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
- case "MaxApduLengthAcceptedTagged":
- parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
- if err != nil {
- return nil, err
- }
- tagNumber := uint8(parsedUint0)
- tagClass, _ := model.TagClassByName(parserArguments[1])
- return model.MaxApduLengthAcceptedTaggedParseWithBuffer(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
case "BACnetPropertyStatesEnclosed":
parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
if err != nil {
@@ -1585,14 +1577,6 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
return model.SubscribeCOVPropertyMultipleErrorFirstFailedSubscriptionParseWithBuffer(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
case "BACnetAuthenticationFactor":
return model.BACnetAuthenticationFactorParseWithBuffer(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
- case "MaxSegmentsAcceptedTagged":
- parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
- if err != nil {
- return nil, err
- }
- tagNumber := uint8(parsedUint0)
- tagClass, _ := model.TagClassByName(parserArguments[1])
- return model.MaxSegmentsAcceptedTaggedParseWithBuffer(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
case "BACnetWriteAccessSpecification":
return model.BACnetWriteAccessSpecificationParseWithBuffer(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetLightingCommandEnclosed":
diff --git a/plc4go/protocols/bacnetip/readwrite/model/MaxApduLengthAccepted.go b/plc4go/protocols/bacnetip/readwrite/model/MaxApduLengthAccepted.go
index 6f9ce33058..a43a7f70f9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/MaxApduLengthAccepted.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/MaxApduLengthAccepted.go
@@ -33,6 +33,7 @@ type MaxApduLengthAccepted uint8
type IMaxApduLengthAccepted interface {
utils.Serializable
+ NumberOfOctets() uint16
}
const (
@@ -78,6 +79,87 @@ func init() {
}
}
+func (e MaxApduLengthAccepted) NumberOfOctets() uint16 {
+ switch e {
+ case 0x0:
+ { /* '0x0' */
+ return 50
+ }
+ case 0x1:
+ { /* '0x1' */
+ return 128
+ }
+ case 0x2:
+ { /* '0x2' */
+ return 206
+ }
+ case 0x3:
+ { /* '0x3' */
+ return 480
+ }
+ case 0x4:
+ { /* '0x4' */
+ return 1024
+ }
+ case 0x5:
+ { /* '0x5' */
+ return 1476
+ }
+ case 0x6:
+ { /* '0x6' */
+ return 0
+ }
+ case 0x7:
+ { /* '0x7' */
+ return 0
+ }
+ case 0x8:
+ { /* '0x8' */
+ return 0
+ }
+ case 0x9:
+ { /* '0x9' */
+ return 0
+ }
+ case 0xA:
+ { /* '0xA' */
+ return 0
+ }
+ case 0xB:
+ { /* '0xB' */
+ return 0
+ }
+ case 0xC:
+ { /* '0xC' */
+ return 0
+ }
+ case 0xD:
+ { /* '0xD' */
+ return 0
+ }
+ case 0xE:
+ { /* '0xE' */
+ return 0
+ }
+ case 0xF:
+ { /* '0xF' */
+ return 0
+ }
+ default:
+ {
+ return 0
+ }
+ }
+}
+
+func MaxApduLengthAcceptedFirstEnumForFieldNumberOfOctets(value uint16) (MaxApduLengthAccepted, error) {
+ for _, sizeValue := range MaxApduLengthAcceptedValues {
+ if sizeValue.NumberOfOctets() == value {
+ return sizeValue, nil
+ }
+ }
+ return 0, errors.Errorf("enum for %v describing NumberOfOctets not found", value)
+}
func MaxApduLengthAcceptedByValue(value uint8) (enum MaxApduLengthAccepted, ok bool) {
switch value {
case 0x0:
diff --git a/plc4go/protocols/bacnetip/readwrite/model/MaxSegmentsAccepted.go b/plc4go/protocols/bacnetip/readwrite/model/MaxSegmentsAccepted.go
index bc454bc7bc..2bf9d41fa6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/MaxSegmentsAccepted.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/MaxSegmentsAccepted.go
@@ -33,6 +33,7 @@ type MaxSegmentsAccepted uint8
type IMaxSegmentsAccepted interface {
utils.Serializable
+ MaxSegments() uint8
}
const (
@@ -62,6 +63,55 @@ func init() {
}
}
+func (e MaxSegmentsAccepted) MaxSegments() uint8 {
+ switch e {
+ case 0x0:
+ { /* '0x0' */
+ return 255
+ }
+ case 0x1:
+ { /* '0x1' */
+ return 2
+ }
+ case 0x2:
+ { /* '0x2' */
+ return 4
+ }
+ case 0x3:
+ { /* '0x3' */
+ return 8
+ }
+ case 0x4:
+ { /* '0x4' */
+ return 16
+ }
+ case 0x5:
+ { /* '0x5' */
+ return 32
+ }
+ case 0x6:
+ { /* '0x6' */
+ return 64
+ }
+ case 0x7:
+ { /* '0x7' */
+ return 255
+ }
+ default:
+ {
+ return 0
+ }
+ }
+}
+
+func MaxSegmentsAcceptedFirstEnumForFieldMaxSegments(value uint8) (MaxSegmentsAccepted, error) {
+ for _, sizeValue := range MaxSegmentsAcceptedValues {
+ if sizeValue.MaxSegments() == value {
+ return sizeValue, nil
+ }
+ }
+ return 0, errors.Errorf("enum for %v describing MaxSegments not found", value)
+}
func MaxSegmentsAcceptedByValue(value uint8) (enum MaxSegmentsAccepted, ok bool) {
switch value {
case 0x0:
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-private-enums.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-private-enums.mspec
index 640ca53ed4..2d2670f09a 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-private-enums.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-private-enums.mspec
@@ -488,35 +488,35 @@
]
// Attention: No proprietary extension allowed
-[enum uint 3 MaxSegmentsAccepted
- ['0x0' UNSPECIFIED ]
- ['0x1' NUM_SEGMENTS_02 ]
- ['0x2' NUM_SEGMENTS_04 ]
- ['0x3' NUM_SEGMENTS_08 ]
- ['0x4' NUM_SEGMENTS_16 ]
- ['0x5' NUM_SEGMENTS_32 ]
- ['0x6' NUM_SEGMENTS_64 ]
- ['0x7' MORE_THAN_64_SEGMENTS ]
-]
-
-// Attention: No proprietary extension allowed
-[enum uint 4 MaxApduLengthAccepted
- ['0x0' MINIMUM_MESSAGE_SIZE ] // 50 octets
- ['0x1' NUM_OCTETS_128 ]
- ['0x2' NUM_OCTETS_206 ] // fits in a LonTalk frame
- ['0x3' NUM_OCTETS_480 ] // fits in an ARCNET frame
- ['0x4' NUM_OCTETS_1024 ]
- ['0x5' NUM_OCTETS_1476 ] // fits in an Ethernet frame
- ['0x6' RESERVED_BY_ASHRAE_01 ]
- ['0x7' RESERVED_BY_ASHRAE_02 ]
- ['0x8' RESERVED_BY_ASHRAE_03 ]
- ['0x9' RESERVED_BY_ASHRAE_04 ]
- ['0xA' RESERVED_BY_ASHRAE_05 ]
- ['0xB' RESERVED_BY_ASHRAE_06 ]
- ['0xC' RESERVED_BY_ASHRAE_07 ]
- ['0xD' RESERVED_BY_ASHRAE_08 ]
- ['0xE' RESERVED_BY_ASHRAE_09 ]
- ['0xF' RESERVED_BY_ASHRAE_10 ]
+[enum uint 3 MaxSegmentsAccepted(uint 8 maxSegments)
+ ['0x0' UNSPECIFIED ['255']]
+ ['0x1' NUM_SEGMENTS_02 [ '2']]
+ ['0x2' NUM_SEGMENTS_04 [ '4']]
+ ['0x3' NUM_SEGMENTS_08 [ '8']]
+ ['0x4' NUM_SEGMENTS_16 [ '16']]
+ ['0x5' NUM_SEGMENTS_32 [ '32']]
+ ['0x6' NUM_SEGMENTS_64 [ '64']]
+ ['0x7' MORE_THAN_64_SEGMENTS ['255']]
+]
+
+// Attention: No proprietary extension allowed
+[enum uint 4 MaxApduLengthAccepted(uint 16 numberOfOctets)
+ ['0x0' MINIMUM_MESSAGE_SIZE [ '50']] // 50 octets
+ ['0x1' NUM_OCTETS_128 [ '128']]
+ ['0x2' NUM_OCTETS_206 [ '206']] // fits in a LonTalk frame
+ ['0x3' NUM_OCTETS_480 [ '480']] // fits in an ARCNET frame
+ ['0x4' NUM_OCTETS_1024 ['1024']]
+ ['0x5' NUM_OCTETS_1476 ['1476']] // fits in an Ethernet frame
+ ['0x6' RESERVED_BY_ASHRAE_01 [ '0']]
+ ['0x7' RESERVED_BY_ASHRAE_02 [ '0']]
+ ['0x8' RESERVED_BY_ASHRAE_03 [ '0']]
+ ['0x9' RESERVED_BY_ASHRAE_04 [ '0']]
+ ['0xA' RESERVED_BY_ASHRAE_05 [ '0']]
+ ['0xB' RESERVED_BY_ASHRAE_06 [ '0']]
+ ['0xC' RESERVED_BY_ASHRAE_07 [ '0']]
+ ['0xD' RESERVED_BY_ASHRAE_08 [ '0']]
+ ['0xE' RESERVED_BY_ASHRAE_09 [ '0']]
+ ['0xF' RESERVED_BY_ASHRAE_10 [ '0']]
]
// Attention: No proprietary extension allowed