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/05/17 10:16:37 UTC
[plc4x] 02/02: feat(bacnet): implemented BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
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
commit 48521c33691c8ff42a72430c1871cb82d6b5206f
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue May 17 12:16:28 2022 +0200
feat(bacnet): implemented BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
---
.../plc4go/bacnetip/readwrite/ParserHelper.go | 30 ++-
.../plc4go/bacnetip/readwrite/XmlParserHelper.go | 34 ++-
...rviceRequestConfirmedCOVNotificationMultiple.go | 14 +-
...OVNotificationMultipleListOfCovNotifications.go | 123 ++-------
...tificationMultipleListOfCovNotificationsList.go | 248 ++++++++++++++++++
...edServiceRequestSubscribeCOVPropertyMultiple.go | 246 +++++++++++++++++-
...yMultipleListOfCovSubscriptionSpecifications.go | 280 +++++++++++++++++++++
...tipleListOfCovSubscriptionSpecificationsList.go | 248 ++++++++++++++++++
...ListOfCovSubscriptionSpecificationsReference.go | 245 ++++++++++++++++++
...entSummaries.go => BACnetEventSummariesList.go} | 59 ++---
.../model/BACnetServiceAckGetEventInformation.go | 16 +-
.../resources/protocols/bacnetip/bacnetip.mspec | 105 +++++---
12 files changed, 1455 insertions(+), 193 deletions(-)
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
index af151743dc..43d208bd08 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
@@ -103,19 +103,13 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
}
return model.BACnetTagPayloadEnumeratedParse(io, actualLength)
case "BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications":
- tagNumber, err := utils.StrToUint8(arguments[0])
- if err != nil {
- return nil, errors.Wrap(err, "Error parsing")
- }
- return model.BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsParse(io, tagNumber)
+ return model.BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsParse(io)
case "BACnetTagPayloadOctetString":
actualLength, err := utils.StrToUint32(arguments[0])
if err != nil {
return nil, errors.Wrap(err, "Error parsing")
}
return model.BACnetTagPayloadOctetStringParse(io, actualLength)
- case "BACnetEventSummaries":
- return model.BACnetEventSummariesParse(io)
case "BACnetServiceAckAtomicReadFileStreamOrRecord":
return model.BACnetServiceAckAtomicReadFileStreamOrRecordParse(io)
case "NPDUControl":
@@ -227,6 +221,12 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
case "BACnetError":
errorChoice := model.BACnetConfirmedServiceChoiceByName(arguments[0])
return model.BACnetErrorParse(io, errorChoice)
+ case "BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList":
+ tagNumber, err := utils.StrToUint8(arguments[0])
+ if err != nil {
+ return nil, errors.Wrap(err, "Error parsing")
+ }
+ return model.BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsListParse(io, tagNumber)
case "BACnetTimeStamp":
return model.BACnetTimeStampParse(io)
case "BACnetNotificationParameters":
@@ -254,6 +254,12 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
return nil, errors.Wrap(err, "Error parsing")
}
return model.BACnetEventProritiesParse(io, tagNumber)
+ case "BACnetEventSummariesList":
+ tagNumber, err := utils.StrToUint8(arguments[0])
+ if err != nil {
+ return nil, errors.Wrap(err, "Error parsing")
+ }
+ return model.BACnetEventSummariesListParse(io, tagNumber)
case "BACnetAddress":
return model.BACnetAddressParse(io)
case "BACnetTagPayloadUnsignedInteger":
@@ -262,6 +268,8 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
return nil, errors.Wrap(err, "Error parsing")
}
return model.BACnetTagPayloadUnsignedIntegerParse(io, actualLength)
+ case "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference":
+ return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReferenceParse(io)
case "BACnetApplicationTag":
return model.BACnetApplicationTagParse(io)
case "BACnetTagPayloadBitString":
@@ -316,6 +324,8 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
return nil, errors.Wrap(err, "Error parsing")
}
return model.SubscribeCOVPropertyMultipleErrorFirstFailedSubscriptionParse(io, tagNumber)
+ case "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications":
+ return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsParse(io)
case "BACnetWriteAccessSpecification":
return model.BACnetWriteAccessSpecificationParse(io)
case "BACnetServiceAck":
@@ -338,6 +348,12 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
return nil, errors.Wrap(err, "Error parsing")
}
return model.BACnetActionParse(io, tagNumber)
+ case "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList":
+ tagNumber, err := utils.StrToUint8(arguments[0])
+ if err != nil {
+ return nil, errors.Wrap(err, "Error parsing")
+ }
+ return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsListParse(io, tagNumber)
case "NPDU":
npduLength, err := utils.StrToUint16(arguments[0])
if err != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
index d0a601dab2..612fae54b4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
@@ -122,12 +122,7 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
actualLength := uint32(parsedUint0)
return model.BACnetTagPayloadEnumeratedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), actualLength)
case "BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications":
- parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
- if err != nil {
- return nil, err
- }
- tagNumber := uint8(parsedUint0)
- return model.BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+ return model.BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetTagPayloadOctetString":
parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 32)
if err != nil {
@@ -135,8 +130,6 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
}
actualLength := uint32(parsedUint0)
return model.BACnetTagPayloadOctetStringParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), actualLength)
- case "BACnetEventSummaries":
- return model.BACnetEventSummariesParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetServiceAckAtomicReadFileStreamOrRecord":
return model.BACnetServiceAckAtomicReadFileStreamOrRecordParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "NPDUControl":
@@ -261,6 +254,13 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
case "BACnetError":
errorChoice := model.BACnetConfirmedServiceChoiceByName(parserArguments[0])
return model.BACnetErrorParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), errorChoice)
+ case "BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList":
+ parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+ if err != nil {
+ return nil, err
+ }
+ tagNumber := uint8(parsedUint0)
+ return model.BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsListParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
case "BACnetTimeStamp":
return model.BACnetTimeStampParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetNotificationParameters":
@@ -292,6 +292,13 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
}
tagNumber := uint8(parsedUint0)
return model.BACnetEventProritiesParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+ case "BACnetEventSummariesList":
+ parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+ if err != nil {
+ return nil, err
+ }
+ tagNumber := uint8(parsedUint0)
+ return model.BACnetEventSummariesListParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
case "BACnetAddress":
return model.BACnetAddressParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetTagPayloadUnsignedInteger":
@@ -301,6 +308,8 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
}
actualLength := uint32(parsedUint0)
return model.BACnetTagPayloadUnsignedIntegerParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), actualLength)
+ case "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference":
+ return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReferenceParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetApplicationTag":
return model.BACnetApplicationTagParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetTagPayloadBitString":
@@ -362,6 +371,8 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
}
tagNumber := uint8(parsedUint0)
return model.SubscribeCOVPropertyMultipleErrorFirstFailedSubscriptionParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+ case "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications":
+ return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetWriteAccessSpecification":
return model.BACnetWriteAccessSpecificationParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
case "BACnetServiceAck":
@@ -387,6 +398,13 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
}
tagNumber := uint8(parsedUint0)
return model.BACnetActionParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+ case "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList":
+ parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+ if err != nil {
+ return nil, err
+ }
+ tagNumber := uint8(parsedUint0)
+ return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsListParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
case "NPDU":
parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 16)
if err != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
index 39c6e77f2d..a6be2a06a3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
@@ -34,7 +34,7 @@ type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple struct {
InitiatingDeviceIdentifier *BACnetContextTagObjectIdentifier
TimeRemaining *BACnetContextTagUnsignedInteger
Timestamp *BACnetTimeStampEnclosed
- ListOfCovNotifications *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications
+ ListOfCovNotifications *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList
// Arguments.
ServiceRequestLength uint16
@@ -52,7 +52,7 @@ type IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple interface {
// GetTimestamp returns Timestamp (property field)
GetTimestamp() *BACnetTimeStampEnclosed
// GetListOfCovNotifications returns ListOfCovNotifications (property field)
- GetListOfCovNotifications() *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications
+ GetListOfCovNotifications() *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList
// GetLengthInBytes returns the length in bytes
GetLengthInBytes() uint16
// GetLengthInBits returns the length in bits
@@ -103,7 +103,7 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) GetTimes
return m.Timestamp
}
-func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) GetListOfCovNotifications() *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications {
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) GetListOfCovNotifications() *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList {
return m.ListOfCovNotifications
}
@@ -113,7 +113,7 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) GetListO
///////////////////////////////////////////////////////////
// NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple factory function for BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple
-func NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple(subscriberProcessIdentifier *BACnetContextTagUnsignedInteger, initiatingDeviceIdentifier *BACnetContextTagObjectIdentifier, timeRemaining *BACnetContextTagUnsignedInteger, timestamp *BACnetTimeStampEnclosed, listOfCovNotifications *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications, serviceRequestLength uint16) *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple {
+func NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple(subscriberProcessIdentifier *BACnetContextTagUnsignedInteger, initiatingDeviceIdentifier *BACnetContextTagObjectIdentifier, timeRemaining *BACnetContextTagUnsignedInteger, timestamp *BACnetTimeStampEnclosed, listOfCovNotifications *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList, serviceRequestLength uint16) *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple {
_result := &BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple{
SubscriberProcessIdentifier: subscriberProcessIdentifier,
InitiatingDeviceIdentifier: initiatingDeviceIdentifier,
@@ -250,11 +250,11 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(readBuff
if pullErr := readBuffer.PullContext("listOfCovNotifications"); pullErr != nil {
return nil, pullErr
}
- _listOfCovNotifications, _listOfCovNotificationsErr := BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsParse(readBuffer, uint8(uint8(4)))
+ _listOfCovNotifications, _listOfCovNotificationsErr := BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsListParse(readBuffer, uint8(uint8(4)))
if _listOfCovNotificationsErr != nil {
return nil, errors.Wrap(_listOfCovNotificationsErr, "Error parsing 'listOfCovNotifications' field")
}
- listOfCovNotifications := CastBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(_listOfCovNotifications)
+ listOfCovNotifications := CastBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList(_listOfCovNotifications)
if closeErr := readBuffer.CloseContext("listOfCovNotifications"); closeErr != nil {
return nil, closeErr
}
@@ -269,7 +269,7 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(readBuff
InitiatingDeviceIdentifier: CastBACnetContextTagObjectIdentifier(initiatingDeviceIdentifier),
TimeRemaining: CastBACnetContextTagUnsignedInteger(timeRemaining),
Timestamp: CastBACnetTimeStampEnclosed(timestamp),
- ListOfCovNotifications: CastBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(listOfCovNotifications),
+ ListOfCovNotifications: CastBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList(listOfCovNotifications),
BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
}
_child.BACnetConfirmedServiceRequest.Child = _child
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications.go
index 1f4b1a508a..e1147c5420 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications.go
@@ -28,29 +28,20 @@ import (
// BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications is the data-structure of this message
type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications struct {
- OpeningTag *BACnetOpeningTag
MonitoredObjectIdentifier *BACnetContextTagObjectIdentifier
- InnerOpeningTag *BACnetOpeningTag
+ OpeningTag *BACnetOpeningTag
ListOfValues []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsValue
- InnerClosingTag *BACnetClosingTag
ClosingTag *BACnetClosingTag
-
- // Arguments.
- TagNumber uint8
}
// IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications is the corresponding interface of BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications
type IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications interface {
- // GetOpeningTag returns OpeningTag (property field)
- GetOpeningTag() *BACnetOpeningTag
// GetMonitoredObjectIdentifier returns MonitoredObjectIdentifier (property field)
GetMonitoredObjectIdentifier() *BACnetContextTagObjectIdentifier
- // GetInnerOpeningTag returns InnerOpeningTag (property field)
- GetInnerOpeningTag() *BACnetOpeningTag
+ // GetOpeningTag returns OpeningTag (property field)
+ GetOpeningTag() *BACnetOpeningTag
// GetListOfValues returns ListOfValues (property field)
GetListOfValues() []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsValue
- // GetInnerClosingTag returns InnerClosingTag (property field)
- GetInnerClosingTag() *BACnetClosingTag
// GetClosingTag returns ClosingTag (property field)
GetClosingTag() *BACnetClosingTag
// GetLengthInBytes returns the length in bytes
@@ -66,26 +57,18 @@ type IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNoti
/////////////////////// Accessors for property fields.
///////////////////////
-func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) GetOpeningTag() *BACnetOpeningTag {
- return m.OpeningTag
-}
-
func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) GetMonitoredObjectIdentifier() *BACnetContextTagObjectIdentifier {
return m.MonitoredObjectIdentifier
}
-func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) GetInnerOpeningTag() *BACnetOpeningTag {
- return m.InnerOpeningTag
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) GetOpeningTag() *BACnetOpeningTag {
+ return m.OpeningTag
}
func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) GetListOfValues() []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsValue {
return m.ListOfValues
}
-func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) GetInnerClosingTag() *BACnetClosingTag {
- return m.InnerClosingTag
-}
-
func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) GetClosingTag() *BACnetClosingTag {
return m.ClosingTag
}
@@ -96,8 +79,8 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovN
///////////////////////////////////////////////////////////
// NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications factory function for BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications
-func NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(openingTag *BACnetOpeningTag, monitoredObjectIdentifier *BACnetContextTagObjectIdentifier, innerOpeningTag *BACnetOpeningTag, listOfValues []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsValue, innerClosingTag *BACnetClosingTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications {
- return &BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications{OpeningTag: openingTag, MonitoredObjectIdentifier: monitoredObjectIdentifier, InnerOpeningTag: innerOpeningTag, ListOfValues: listOfValues, InnerClosingTag: innerClosingTag, ClosingTag: closingTag, TagNumber: tagNumber}
+func NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(monitoredObjectIdentifier *BACnetContextTagObjectIdentifier, openingTag *BACnetOpeningTag, listOfValues []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsValue, closingTag *BACnetClosingTag) *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications {
+ return &BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications{MonitoredObjectIdentifier: monitoredObjectIdentifier, OpeningTag: openingTag, ListOfValues: listOfValues, ClosingTag: closingTag}
}
func CastBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(structType interface{}) *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications {
@@ -121,14 +104,11 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovN
func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) GetLengthInBitsConditional(lastItem bool) uint16 {
lengthInBits := uint16(0)
- // Simple field (openingTag)
- lengthInBits += m.OpeningTag.GetLengthInBits()
-
// Simple field (monitoredObjectIdentifier)
lengthInBits += m.MonitoredObjectIdentifier.GetLengthInBits()
- // Simple field (innerOpeningTag)
- lengthInBits += m.InnerOpeningTag.GetLengthInBits()
+ // Simple field (openingTag)
+ lengthInBits += m.OpeningTag.GetLengthInBits()
// Array field
if len(m.ListOfValues) > 0 {
@@ -137,9 +117,6 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovN
}
}
- // Simple field (innerClosingTag)
- lengthInBits += m.InnerClosingTag.GetLengthInBits()
-
// Simple field (closingTag)
lengthInBits += m.ClosingTag.GetLengthInBits()
@@ -150,7 +127,7 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovN
return m.GetLengthInBits() / 8
}
-func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications, error) {
+func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsParse(readBuffer utils.ReadBuffer) (*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications, error) {
positionAware := readBuffer
_ = positionAware
if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications"); pullErr != nil {
@@ -159,19 +136,6 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotif
currentPos := positionAware.GetPos()
_ = currentPos
- // Simple Field (openingTag)
- if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
- return nil, pullErr
- }
- _openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
- if _openingTagErr != nil {
- return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
- }
- openingTag := CastBACnetOpeningTag(_openingTag)
- if closeErr := readBuffer.CloseContext("openingTag"); closeErr != nil {
- return nil, closeErr
- }
-
// Simple Field (monitoredObjectIdentifier)
if pullErr := readBuffer.PullContext("monitoredObjectIdentifier"); pullErr != nil {
return nil, pullErr
@@ -185,16 +149,16 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotif
return nil, closeErr
}
- // Simple Field (innerOpeningTag)
- if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
+ // Simple Field (openingTag)
+ if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
return nil, pullErr
}
- _innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_OPENING_TAG))
- if _innerOpeningTagErr != nil {
- return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
+ _openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_OPENING_TAG))
+ if _openingTagErr != nil {
+ return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
}
- innerOpeningTag := CastBACnetOpeningTag(_innerOpeningTag)
- if closeErr := readBuffer.CloseContext("innerOpeningTag"); closeErr != nil {
+ openingTag := CastBACnetOpeningTag(_openingTag)
+ if closeErr := readBuffer.CloseContext("openingTag"); closeErr != nil {
return nil, closeErr
}
@@ -218,24 +182,11 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotif
return nil, closeErr
}
- // Simple Field (innerClosingTag)
- if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
- return nil, pullErr
- }
- _innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_CLOSING_TAG))
- if _innerClosingTagErr != nil {
- return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
- }
- innerClosingTag := CastBACnetClosingTag(_innerClosingTag)
- if closeErr := readBuffer.CloseContext("innerClosingTag"); closeErr != nil {
- return nil, closeErr
- }
-
// Simple Field (closingTag)
if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
return nil, pullErr
}
- _closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+ _closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_CLOSING_TAG))
if _closingTagErr != nil {
return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
}
@@ -249,7 +200,7 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotif
}
// Create the instance
- return NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(openingTag, monitoredObjectIdentifier, innerOpeningTag, listOfValues, innerClosingTag, closingTag, tagNumber), nil
+ return NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(monitoredObjectIdentifier, openingTag, listOfValues, closingTag), nil
}
func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications) Serialize(writeBuffer utils.WriteBuffer) error {
@@ -259,18 +210,6 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovN
return pushErr
}
- // Simple Field (openingTag)
- if pushErr := writeBuffer.PushContext("openingTag"); pushErr != nil {
- return pushErr
- }
- _openingTagErr := m.OpeningTag.Serialize(writeBuffer)
- if popErr := writeBuffer.PopContext("openingTag"); popErr != nil {
- return popErr
- }
- if _openingTagErr != nil {
- return errors.Wrap(_openingTagErr, "Error serializing 'openingTag' field")
- }
-
// Simple Field (monitoredObjectIdentifier)
if pushErr := writeBuffer.PushContext("monitoredObjectIdentifier"); pushErr != nil {
return pushErr
@@ -283,16 +222,16 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovN
return errors.Wrap(_monitoredObjectIdentifierErr, "Error serializing 'monitoredObjectIdentifier' field")
}
- // Simple Field (innerOpeningTag)
- if pushErr := writeBuffer.PushContext("innerOpeningTag"); pushErr != nil {
+ // Simple Field (openingTag)
+ if pushErr := writeBuffer.PushContext("openingTag"); pushErr != nil {
return pushErr
}
- _innerOpeningTagErr := m.InnerOpeningTag.Serialize(writeBuffer)
- if popErr := writeBuffer.PopContext("innerOpeningTag"); popErr != nil {
+ _openingTagErr := m.OpeningTag.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("openingTag"); popErr != nil {
return popErr
}
- if _innerOpeningTagErr != nil {
- return errors.Wrap(_innerOpeningTagErr, "Error serializing 'innerOpeningTag' field")
+ if _openingTagErr != nil {
+ return errors.Wrap(_openingTagErr, "Error serializing 'openingTag' field")
}
// Array Field (listOfValues)
@@ -311,18 +250,6 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovN
}
}
- // Simple Field (innerClosingTag)
- if pushErr := writeBuffer.PushContext("innerClosingTag"); pushErr != nil {
- return pushErr
- }
- _innerClosingTagErr := m.InnerClosingTag.Serialize(writeBuffer)
- if popErr := writeBuffer.PopContext("innerClosingTag"); popErr != nil {
- return popErr
- }
- if _innerClosingTagErr != nil {
- return errors.Wrap(_innerClosingTagErr, "Error serializing 'innerClosingTag' field")
- }
-
// Simple Field (closingTag)
if pushErr := writeBuffer.PushContext("closingTag"); pushErr != nil {
return pushErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList.go
new file mode 100644
index 0000000000..a5923b955a
--- /dev/null
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList.go
@@ -0,0 +1,248 @@
+/*
+ * 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
+ *
+ * http://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/plc4go/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList is the data-structure of this message
+type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList struct {
+ OpeningTag *BACnetOpeningTag
+ Specifications []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications
+ ClosingTag *BACnetClosingTag
+
+ // Arguments.
+ TagNumber uint8
+}
+
+// IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList is the corresponding interface of BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList
+type IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList interface {
+ // GetOpeningTag returns OpeningTag (property field)
+ GetOpeningTag() *BACnetOpeningTag
+ // GetSpecifications returns Specifications (property field)
+ GetSpecifications() []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications
+ // GetClosingTag returns ClosingTag (property field)
+ GetClosingTag() *BACnetClosingTag
+ // GetLengthInBytes returns the length in bytes
+ GetLengthInBytes() uint16
+ // GetLengthInBits returns the length in bits
+ GetLengthInBits() uint16
+ // Serialize serializes this type
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) GetOpeningTag() *BACnetOpeningTag {
+ return m.OpeningTag
+}
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) GetSpecifications() []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications {
+ return m.Specifications
+}
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) GetClosingTag() *BACnetClosingTag {
+ return m.ClosingTag
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList factory function for BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList
+func NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList(openingTag *BACnetOpeningTag, specifications []*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList {
+ return &BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList{OpeningTag: openingTag, Specifications: specifications, ClosingTag: closingTag, TagNumber: tagNumber}
+}
+
+func CastBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList(structType interface{}) *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList {
+ if casted, ok := structType.(BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList); ok {
+ return &casted
+ }
+ if casted, ok := structType.(*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList); ok {
+ return casted
+ }
+ return nil
+}
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) GetTypeName() string {
+ return "BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList"
+}
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(0)
+
+ // Simple field (openingTag)
+ lengthInBits += m.OpeningTag.GetLengthInBits()
+
+ // Array field
+ if len(m.Specifications) > 0 {
+ for _, element := range m.Specifications {
+ lengthInBits += element.GetLengthInBits()
+ }
+ }
+
+ // Simple field (closingTag)
+ lengthInBits += m.ClosingTag.GetLengthInBits()
+
+ return lengthInBits
+}
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsListParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList"); pullErr != nil {
+ return nil, pullErr
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ // Simple Field (openingTag)
+ if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
+ return nil, pullErr
+ }
+ _openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+ if _openingTagErr != nil {
+ return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
+ }
+ openingTag := CastBACnetOpeningTag(_openingTag)
+ if closeErr := readBuffer.CloseContext("openingTag"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Array field (specifications)
+ if pullErr := readBuffer.PullContext("specifications", utils.WithRenderAsList(true)); pullErr != nil {
+ return nil, pullErr
+ }
+ // Terminated array
+ specifications := make([]*BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications, 0)
+ {
+ for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
+ _item, _err := BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsParse(readBuffer)
+ if _err != nil {
+ return nil, errors.Wrap(_err, "Error parsing 'specifications' field")
+ }
+ specifications = append(specifications, CastBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(_item))
+
+ }
+ }
+ if closeErr := readBuffer.CloseContext("specifications", utils.WithRenderAsList(true)); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (closingTag)
+ if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
+ return nil, pullErr
+ }
+ _closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+ if _closingTagErr != nil {
+ return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
+ }
+ closingTag := CastBACnetClosingTag(_closingTag)
+ if closeErr := readBuffer.CloseContext("closingTag"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList(openingTag, specifications, closingTag, tagNumber), nil
+}
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList"); pushErr != nil {
+ return pushErr
+ }
+
+ // Simple Field (openingTag)
+ if pushErr := writeBuffer.PushContext("openingTag"); pushErr != nil {
+ return pushErr
+ }
+ _openingTagErr := m.OpeningTag.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("openingTag"); popErr != nil {
+ return popErr
+ }
+ if _openingTagErr != nil {
+ return errors.Wrap(_openingTagErr, "Error serializing 'openingTag' field")
+ }
+
+ // Array Field (specifications)
+ if m.Specifications != nil {
+ if pushErr := writeBuffer.PushContext("specifications", utils.WithRenderAsList(true)); pushErr != nil {
+ return pushErr
+ }
+ for _, _element := range m.Specifications {
+ _elementErr := _element.Serialize(writeBuffer)
+ if _elementErr != nil {
+ return errors.Wrap(_elementErr, "Error serializing 'specifications' field")
+ }
+ }
+ if popErr := writeBuffer.PopContext("specifications", utils.WithRenderAsList(true)); popErr != nil {
+ return popErr
+ }
+ }
+
+ // Simple Field (closingTag)
+ if pushErr := writeBuffer.PushContext("closingTag"); pushErr != nil {
+ return pushErr
+ }
+ _closingTagErr := m.ClosingTag.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("closingTag"); popErr != nil {
+ return popErr
+ }
+ if _closingTagErr != nil {
+ return errors.Wrap(_closingTagErr, "Error serializing 'closingTag' field")
+ }
+
+ if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList"); popErr != nil {
+ return popErr
+ }
+ return nil
+}
+
+func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := m.Serialize(buffer); err != nil {
+ return err.Error()
+ }
+ return buffer.GetBox().String()
+}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
index a32d9c0f50..ccb6f283c0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
@@ -21,6 +21,8 @@ package model
import (
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "github.com/pkg/errors"
+ "io"
)
// Code generated by code-generation. DO NOT EDIT.
@@ -28,6 +30,11 @@ import (
// BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple is the data-structure of this message
type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple struct {
*BACnetConfirmedServiceRequest
+ SubscriberProcessIdentifier *BACnetContextTagUnsignedInteger
+ IssueConfirmedNotifications *BACnetContextTagBoolean
+ Lifetime *BACnetContextTagUnsignedInteger
+ MaxNotificationDelay *BACnetContextTagUnsignedInteger
+ ListOfCovSubscriptionSpecifications *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList
// Arguments.
ServiceRequestLength uint16
@@ -36,6 +43,16 @@ type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple struct {
// IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple is the corresponding interface of BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
type IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple interface {
IBACnetConfirmedServiceRequest
+ // GetSubscriberProcessIdentifier returns SubscriberProcessIdentifier (property field)
+ GetSubscriberProcessIdentifier() *BACnetContextTagUnsignedInteger
+ // GetIssueConfirmedNotifications returns IssueConfirmedNotifications (property field)
+ GetIssueConfirmedNotifications() *BACnetContextTagBoolean
+ // GetLifetime returns Lifetime (property field)
+ GetLifetime() *BACnetContextTagUnsignedInteger
+ // GetMaxNotificationDelay returns MaxNotificationDelay (property field)
+ GetMaxNotificationDelay() *BACnetContextTagUnsignedInteger
+ // GetListOfCovSubscriptionSpecifications returns ListOfCovSubscriptionSpecifications (property field)
+ GetListOfCovSubscriptionSpecifications() *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList
// GetLengthInBytes returns the length in bytes
GetLengthInBytes() uint16
// GetLengthInBits returns the length in bits
@@ -65,10 +82,45 @@ func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) GetParent()
return m.BACnetConfirmedServiceRequest
}
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) GetSubscriberProcessIdentifier() *BACnetContextTagUnsignedInteger {
+ return m.SubscriberProcessIdentifier
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) GetIssueConfirmedNotifications() *BACnetContextTagBoolean {
+ return m.IssueConfirmedNotifications
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) GetLifetime() *BACnetContextTagUnsignedInteger {
+ return m.Lifetime
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) GetMaxNotificationDelay() *BACnetContextTagUnsignedInteger {
+ return m.MaxNotificationDelay
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) GetListOfCovSubscriptionSpecifications() *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList {
+ return m.ListOfCovSubscriptionSpecifications
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
// NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple factory function for BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
-func NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple(serviceRequestLength uint16) *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple {
+func NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple(subscriberProcessIdentifier *BACnetContextTagUnsignedInteger, issueConfirmedNotifications *BACnetContextTagBoolean, lifetime *BACnetContextTagUnsignedInteger, maxNotificationDelay *BACnetContextTagUnsignedInteger, listOfCovSubscriptionSpecifications *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList, serviceRequestLength uint16) *BACnetConfirmedServiceRequestSubscribeCOVProper [...]
_result := &BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple{
- BACnetConfirmedServiceRequest: NewBACnetConfirmedServiceRequest(serviceRequestLength),
+ SubscriberProcessIdentifier: subscriberProcessIdentifier,
+ IssueConfirmedNotifications: issueConfirmedNotifications,
+ Lifetime: lifetime,
+ MaxNotificationDelay: maxNotificationDelay,
+ ListOfCovSubscriptionSpecifications: listOfCovSubscriptionSpecifications,
+ BACnetConfirmedServiceRequest: NewBACnetConfirmedServiceRequest(serviceRequestLength),
}
_result.Child = _result
return _result
@@ -101,6 +153,27 @@ func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) GetLengthInB
func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) GetLengthInBitsConditional(lastItem bool) uint16 {
lengthInBits := uint16(m.GetParentLengthInBits())
+ // Simple field (subscriberProcessIdentifier)
+ lengthInBits += m.SubscriberProcessIdentifier.GetLengthInBits()
+
+ // Optional Field (issueConfirmedNotifications)
+ if m.IssueConfirmedNotifications != nil {
+ lengthInBits += (*m.IssueConfirmedNotifications).GetLengthInBits()
+ }
+
+ // Optional Field (lifetime)
+ if m.Lifetime != nil {
+ lengthInBits += (*m.Lifetime).GetLengthInBits()
+ }
+
+ // Optional Field (maxNotificationDelay)
+ if m.MaxNotificationDelay != nil {
+ lengthInBits += (*m.MaxNotificationDelay).GetLengthInBits()
+ }
+
+ // Simple field (listOfCovSubscriptionSpecifications)
+ lengthInBits += m.ListOfCovSubscriptionSpecifications.GetLengthInBits()
+
return lengthInBits
}
@@ -117,9 +190,93 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(readBuffer u
currentPos := positionAware.GetPos()
_ = currentPos
- // Validation
- if !(bool((1) == (2))) {
- return nil, utils.ParseValidationError{"TODO: implement me"}
+ // Simple Field (subscriberProcessIdentifier)
+ if pullErr := readBuffer.PullContext("subscriberProcessIdentifier"); pullErr != nil {
+ return nil, pullErr
+ }
+ _subscriberProcessIdentifier, _subscriberProcessIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_UNSIGNED_INTEGER))
+ if _subscriberProcessIdentifierErr != nil {
+ return nil, errors.Wrap(_subscriberProcessIdentifierErr, "Error parsing 'subscriberProcessIdentifier' field")
+ }
+ subscriberProcessIdentifier := CastBACnetContextTagUnsignedInteger(_subscriberProcessIdentifier)
+ if closeErr := readBuffer.CloseContext("subscriberProcessIdentifier"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Optional Field (issueConfirmedNotifications) (Can be skipped, if a given expression evaluates to false)
+ var issueConfirmedNotifications *BACnetContextTagBoolean = nil
+ {
+ currentPos = positionAware.GetPos()
+ if pullErr := readBuffer.PullContext("issueConfirmedNotifications"); pullErr != nil {
+ return nil, pullErr
+ }
+ _val, _err := BACnetContextTagParse(readBuffer, uint8(1), BACnetDataType_BOOLEAN)
+ switch {
+ case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
+ readBuffer.Reset(currentPos)
+ case _err != nil:
+ return nil, errors.Wrap(_err, "Error parsing 'issueConfirmedNotifications' field")
+ default:
+ issueConfirmedNotifications = CastBACnetContextTagBoolean(_val)
+ if closeErr := readBuffer.CloseContext("issueConfirmedNotifications"); closeErr != nil {
+ return nil, closeErr
+ }
+ }
+ }
+
+ // Optional Field (lifetime) (Can be skipped, if a given expression evaluates to false)
+ var lifetime *BACnetContextTagUnsignedInteger = nil
+ {
+ currentPos = positionAware.GetPos()
+ if pullErr := readBuffer.PullContext("lifetime"); pullErr != nil {
+ return nil, pullErr
+ }
+ _val, _err := BACnetContextTagParse(readBuffer, uint8(2), BACnetDataType_UNSIGNED_INTEGER)
+ switch {
+ case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
+ readBuffer.Reset(currentPos)
+ case _err != nil:
+ return nil, errors.Wrap(_err, "Error parsing 'lifetime' field")
+ default:
+ lifetime = CastBACnetContextTagUnsignedInteger(_val)
+ if closeErr := readBuffer.CloseContext("lifetime"); closeErr != nil {
+ return nil, closeErr
+ }
+ }
+ }
+
+ // Optional Field (maxNotificationDelay) (Can be skipped, if a given expression evaluates to false)
+ var maxNotificationDelay *BACnetContextTagUnsignedInteger = nil
+ {
+ currentPos = positionAware.GetPos()
+ if pullErr := readBuffer.PullContext("maxNotificationDelay"); pullErr != nil {
+ return nil, pullErr
+ }
+ _val, _err := BACnetContextTagParse(readBuffer, uint8(3), BACnetDataType_UNSIGNED_INTEGER)
+ switch {
+ case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
+ readBuffer.Reset(currentPos)
+ case _err != nil:
+ return nil, errors.Wrap(_err, "Error parsing 'maxNotificationDelay' field")
+ default:
+ maxNotificationDelay = CastBACnetContextTagUnsignedInteger(_val)
+ if closeErr := readBuffer.CloseContext("maxNotificationDelay"); closeErr != nil {
+ return nil, closeErr
+ }
+ }
+ }
+
+ // Simple Field (listOfCovSubscriptionSpecifications)
+ if pullErr := readBuffer.PullContext("listOfCovSubscriptionSpecifications"); pullErr != nil {
+ return nil, pullErr
+ }
+ _listOfCovSubscriptionSpecifications, _listOfCovSubscriptionSpecificationsErr := BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsListParse(readBuffer, uint8(uint8(4)))
+ if _listOfCovSubscriptionSpecificationsErr != nil {
+ return nil, errors.Wrap(_listOfCovSubscriptionSpecificationsErr, "Error parsing 'listOfCovSubscriptionSpecifications' field")
+ }
+ listOfCovSubscriptionSpecifications := CastBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList(_listOfCovSubscriptionSpecifications)
+ if closeErr := readBuffer.CloseContext("listOfCovSubscriptionSpecifications"); closeErr != nil {
+ return nil, closeErr
}
if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple"); closeErr != nil {
@@ -128,7 +285,12 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(readBuffer u
// Create a partially initialized instance
_child := &BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple{
- BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
+ SubscriberProcessIdentifier: CastBACnetContextTagUnsignedInteger(subscriberProcessIdentifier),
+ IssueConfirmedNotifications: CastBACnetContextTagBoolean(issueConfirmedNotifications),
+ Lifetime: CastBACnetContextTagUnsignedInteger(lifetime),
+ MaxNotificationDelay: CastBACnetContextTagUnsignedInteger(maxNotificationDelay),
+ ListOfCovSubscriptionSpecifications: CastBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList(listOfCovSubscriptionSpecifications),
+ BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
}
_child.BACnetConfirmedServiceRequest.Child = _child
return _child, nil
@@ -142,6 +304,78 @@ func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) Serialize(wr
return pushErr
}
+ // Simple Field (subscriberProcessIdentifier)
+ if pushErr := writeBuffer.PushContext("subscriberProcessIdentifier"); pushErr != nil {
+ return pushErr
+ }
+ _subscriberProcessIdentifierErr := m.SubscriberProcessIdentifier.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("subscriberProcessIdentifier"); popErr != nil {
+ return popErr
+ }
+ if _subscriberProcessIdentifierErr != nil {
+ return errors.Wrap(_subscriberProcessIdentifierErr, "Error serializing 'subscriberProcessIdentifier' field")
+ }
+
+ // Optional Field (issueConfirmedNotifications) (Can be skipped, if the value is null)
+ var issueConfirmedNotifications *BACnetContextTagBoolean = nil
+ if m.IssueConfirmedNotifications != nil {
+ if pushErr := writeBuffer.PushContext("issueConfirmedNotifications"); pushErr != nil {
+ return pushErr
+ }
+ issueConfirmedNotifications = m.IssueConfirmedNotifications
+ _issueConfirmedNotificationsErr := issueConfirmedNotifications.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("issueConfirmedNotifications"); popErr != nil {
+ return popErr
+ }
+ if _issueConfirmedNotificationsErr != nil {
+ return errors.Wrap(_issueConfirmedNotificationsErr, "Error serializing 'issueConfirmedNotifications' field")
+ }
+ }
+
+ // Optional Field (lifetime) (Can be skipped, if the value is null)
+ var lifetime *BACnetContextTagUnsignedInteger = nil
+ if m.Lifetime != nil {
+ if pushErr := writeBuffer.PushContext("lifetime"); pushErr != nil {
+ return pushErr
+ }
+ lifetime = m.Lifetime
+ _lifetimeErr := lifetime.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("lifetime"); popErr != nil {
+ return popErr
+ }
+ if _lifetimeErr != nil {
+ return errors.Wrap(_lifetimeErr, "Error serializing 'lifetime' field")
+ }
+ }
+
+ // Optional Field (maxNotificationDelay) (Can be skipped, if the value is null)
+ var maxNotificationDelay *BACnetContextTagUnsignedInteger = nil
+ if m.MaxNotificationDelay != nil {
+ if pushErr := writeBuffer.PushContext("maxNotificationDelay"); pushErr != nil {
+ return pushErr
+ }
+ maxNotificationDelay = m.MaxNotificationDelay
+ _maxNotificationDelayErr := maxNotificationDelay.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("maxNotificationDelay"); popErr != nil {
+ return popErr
+ }
+ if _maxNotificationDelayErr != nil {
+ return errors.Wrap(_maxNotificationDelayErr, "Error serializing 'maxNotificationDelay' field")
+ }
+ }
+
+ // Simple Field (listOfCovSubscriptionSpecifications)
+ if pushErr := writeBuffer.PushContext("listOfCovSubscriptionSpecifications"); pushErr != nil {
+ return pushErr
+ }
+ _listOfCovSubscriptionSpecificationsErr := m.ListOfCovSubscriptionSpecifications.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("listOfCovSubscriptionSpecifications"); popErr != nil {
+ return popErr
+ }
+ if _listOfCovSubscriptionSpecificationsErr != nil {
+ return errors.Wrap(_listOfCovSubscriptionSpecificationsErr, "Error serializing 'listOfCovSubscriptionSpecifications' field")
+ }
+
if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple"); popErr != nil {
return popErr
}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
new file mode 100644
index 0000000000..f9781ee82b
--- /dev/null
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
@@ -0,0 +1,280 @@
+/*
+ * 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
+ *
+ * http://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/plc4go/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications is the data-structure of this message
+type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications struct {
+ MonitoredObjectIdentifier *BACnetContextTagObjectIdentifier
+ OpeningTag *BACnetOpeningTag
+ ListOfCovReferences []*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference
+ ClosingTag *BACnetClosingTag
+}
+
+// IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications is the corresponding interface of BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications
+type IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications interface {
+ // GetMonitoredObjectIdentifier returns MonitoredObjectIdentifier (property field)
+ GetMonitoredObjectIdentifier() *BACnetContextTagObjectIdentifier
+ // GetOpeningTag returns OpeningTag (property field)
+ GetOpeningTag() *BACnetOpeningTag
+ // GetListOfCovReferences returns ListOfCovReferences (property field)
+ GetListOfCovReferences() []*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference
+ // GetClosingTag returns ClosingTag (property field)
+ GetClosingTag() *BACnetClosingTag
+ // GetLengthInBytes returns the length in bytes
+ GetLengthInBytes() uint16
+ // GetLengthInBits returns the length in bits
+ GetLengthInBits() uint16
+ // Serialize serializes this type
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) GetMonitoredObjectIdentifier() *BACnetContextTagObjectIdentifier {
+ return m.MonitoredObjectIdentifier
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) GetOpeningTag() *BACnetOpeningTag {
+ return m.OpeningTag
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) GetListOfCovReferences() []*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference {
+ return m.ListOfCovReferences
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) GetClosingTag() *BACnetClosingTag {
+ return m.ClosingTag
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications factory function for BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications
+func NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications(monitoredObjectIdentifier *BACnetContextTagObjectIdentifier, openingTag *BACnetOpeningTag, listOfCovReferences []*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference, closingTag *BACnetClosingTag) *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications {
+ return &BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications{MonitoredObjectIdentifier: monitoredObjectIdentifier, OpeningTag: openingTag, ListOfCovReferences: listOfCovReferences, ClosingTag: closingTag}
+}
+
+func CastBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications(structType interface{}) *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications {
+ if casted, ok := structType.(BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications); ok {
+ return &casted
+ }
+ if casted, ok := structType.(*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications); ok {
+ return casted
+ }
+ return nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) GetTypeName() string {
+ return "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications"
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(0)
+
+ // Simple field (monitoredObjectIdentifier)
+ lengthInBits += m.MonitoredObjectIdentifier.GetLengthInBits()
+
+ // Simple field (openingTag)
+ lengthInBits += m.OpeningTag.GetLengthInBits()
+
+ // Array field
+ if len(m.ListOfCovReferences) > 0 {
+ for _, element := range m.ListOfCovReferences {
+ lengthInBits += element.GetLengthInBits()
+ }
+ }
+
+ // Simple field (closingTag)
+ lengthInBits += m.ClosingTag.GetLengthInBits()
+
+ return lengthInBits
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsParse(readBuffer utils.ReadBuffer) (*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications"); pullErr != nil {
+ return nil, pullErr
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ // Simple Field (monitoredObjectIdentifier)
+ if pullErr := readBuffer.PullContext("monitoredObjectIdentifier"); pullErr != nil {
+ return nil, pullErr
+ }
+ _monitoredObjectIdentifier, _monitoredObjectIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_BACNET_OBJECT_IDENTIFIER))
+ if _monitoredObjectIdentifierErr != nil {
+ return nil, errors.Wrap(_monitoredObjectIdentifierErr, "Error parsing 'monitoredObjectIdentifier' field")
+ }
+ monitoredObjectIdentifier := CastBACnetContextTagObjectIdentifier(_monitoredObjectIdentifier)
+ if closeErr := readBuffer.CloseContext("monitoredObjectIdentifier"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (openingTag)
+ if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
+ return nil, pullErr
+ }
+ _openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_OPENING_TAG))
+ if _openingTagErr != nil {
+ return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
+ }
+ openingTag := CastBACnetOpeningTag(_openingTag)
+ if closeErr := readBuffer.CloseContext("openingTag"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Array field (listOfCovReferences)
+ if pullErr := readBuffer.PullContext("listOfCovReferences", utils.WithRenderAsList(true)); pullErr != nil {
+ return nil, pullErr
+ }
+ // Terminated array
+ listOfCovReferences := make([]*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference, 0)
+ {
+ for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, 1)) {
+ _item, _err := BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReferenceParse(readBuffer)
+ if _err != nil {
+ return nil, errors.Wrap(_err, "Error parsing 'listOfCovReferences' field")
+ }
+ listOfCovReferences = append(listOfCovReferences, CastBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference(_item))
+
+ }
+ }
+ if closeErr := readBuffer.CloseContext("listOfCovReferences", utils.WithRenderAsList(true)); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (closingTag)
+ if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
+ return nil, pullErr
+ }
+ _closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_CLOSING_TAG))
+ if _closingTagErr != nil {
+ return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
+ }
+ closingTag := CastBACnetClosingTag(_closingTag)
+ if closeErr := readBuffer.CloseContext("closingTag"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications(monitoredObjectIdentifier, openingTag, listOfCovReferences, closingTag), nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications"); pushErr != nil {
+ return pushErr
+ }
+
+ // Simple Field (monitoredObjectIdentifier)
+ if pushErr := writeBuffer.PushContext("monitoredObjectIdentifier"); pushErr != nil {
+ return pushErr
+ }
+ _monitoredObjectIdentifierErr := m.MonitoredObjectIdentifier.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("monitoredObjectIdentifier"); popErr != nil {
+ return popErr
+ }
+ if _monitoredObjectIdentifierErr != nil {
+ return errors.Wrap(_monitoredObjectIdentifierErr, "Error serializing 'monitoredObjectIdentifier' field")
+ }
+
+ // Simple Field (openingTag)
+ if pushErr := writeBuffer.PushContext("openingTag"); pushErr != nil {
+ return pushErr
+ }
+ _openingTagErr := m.OpeningTag.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("openingTag"); popErr != nil {
+ return popErr
+ }
+ if _openingTagErr != nil {
+ return errors.Wrap(_openingTagErr, "Error serializing 'openingTag' field")
+ }
+
+ // Array Field (listOfCovReferences)
+ if m.ListOfCovReferences != nil {
+ if pushErr := writeBuffer.PushContext("listOfCovReferences", utils.WithRenderAsList(true)); pushErr != nil {
+ return pushErr
+ }
+ for _, _element := range m.ListOfCovReferences {
+ _elementErr := _element.Serialize(writeBuffer)
+ if _elementErr != nil {
+ return errors.Wrap(_elementErr, "Error serializing 'listOfCovReferences' field")
+ }
+ }
+ if popErr := writeBuffer.PopContext("listOfCovReferences", utils.WithRenderAsList(true)); popErr != nil {
+ return popErr
+ }
+ }
+
+ // Simple Field (closingTag)
+ if pushErr := writeBuffer.PushContext("closingTag"); pushErr != nil {
+ return pushErr
+ }
+ _closingTagErr := m.ClosingTag.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("closingTag"); popErr != nil {
+ return popErr
+ }
+ if _closingTagErr != nil {
+ return errors.Wrap(_closingTagErr, "Error serializing 'closingTag' field")
+ }
+
+ if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications"); popErr != nil {
+ return popErr
+ }
+ return nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := m.Serialize(buffer); err != nil {
+ return err.Error()
+ }
+ return buffer.GetBox().String()
+}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
new file mode 100644
index 0000000000..087ec5c78b
--- /dev/null
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
@@ -0,0 +1,248 @@
+/*
+ * 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
+ *
+ * http://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/plc4go/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList is the data-structure of this message
+type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList struct {
+ OpeningTag *BACnetOpeningTag
+ Specifications []*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications
+ ClosingTag *BACnetClosingTag
+
+ // Arguments.
+ TagNumber uint8
+}
+
+// IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList is the corresponding interface of BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList
+type IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList interface {
+ // GetOpeningTag returns OpeningTag (property field)
+ GetOpeningTag() *BACnetOpeningTag
+ // GetSpecifications returns Specifications (property field)
+ GetSpecifications() []*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications
+ // GetClosingTag returns ClosingTag (property field)
+ GetClosingTag() *BACnetClosingTag
+ // GetLengthInBytes returns the length in bytes
+ GetLengthInBytes() uint16
+ // GetLengthInBits returns the length in bits
+ GetLengthInBits() uint16
+ // Serialize serializes this type
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) GetOpeningTag() *BACnetOpeningTag {
+ return m.OpeningTag
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) GetSpecifications() []*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications {
+ return m.Specifications
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) GetClosingTag() *BACnetClosingTag {
+ return m.ClosingTag
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList factory function for BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList
+func NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList(openingTag *BACnetOpeningTag, specifications []*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList {
+ return &BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList{OpeningTag: openingTag, Specifications: specifications, ClosingTag: closingTag, TagNumber: tagNumber}
+}
+
+func CastBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList(structType interface{}) *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList {
+ if casted, ok := structType.(BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList); ok {
+ return &casted
+ }
+ if casted, ok := structType.(*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList); ok {
+ return casted
+ }
+ return nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) GetTypeName() string {
+ return "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList"
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(0)
+
+ // Simple field (openingTag)
+ lengthInBits += m.OpeningTag.GetLengthInBits()
+
+ // Array field
+ if len(m.Specifications) > 0 {
+ for _, element := range m.Specifications {
+ lengthInBits += element.GetLengthInBits()
+ }
+ }
+
+ // Simple field (closingTag)
+ lengthInBits += m.ClosingTag.GetLengthInBits()
+
+ return lengthInBits
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsListParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList"); pullErr != nil {
+ return nil, pullErr
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ // Simple Field (openingTag)
+ if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
+ return nil, pullErr
+ }
+ _openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+ if _openingTagErr != nil {
+ return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
+ }
+ openingTag := CastBACnetOpeningTag(_openingTag)
+ if closeErr := readBuffer.CloseContext("openingTag"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Array field (specifications)
+ if pullErr := readBuffer.PullContext("specifications", utils.WithRenderAsList(true)); pullErr != nil {
+ return nil, pullErr
+ }
+ // Terminated array
+ specifications := make([]*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications, 0)
+ {
+ for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
+ _item, _err := BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsParse(readBuffer)
+ if _err != nil {
+ return nil, errors.Wrap(_err, "Error parsing 'specifications' field")
+ }
+ specifications = append(specifications, CastBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications(_item))
+
+ }
+ }
+ if closeErr := readBuffer.CloseContext("specifications", utils.WithRenderAsList(true)); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (closingTag)
+ if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
+ return nil, pullErr
+ }
+ _closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+ if _closingTagErr != nil {
+ return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
+ }
+ closingTag := CastBACnetClosingTag(_closingTag)
+ if closeErr := readBuffer.CloseContext("closingTag"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList(openingTag, specifications, closingTag, tagNumber), nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList"); pushErr != nil {
+ return pushErr
+ }
+
+ // Simple Field (openingTag)
+ if pushErr := writeBuffer.PushContext("openingTag"); pushErr != nil {
+ return pushErr
+ }
+ _openingTagErr := m.OpeningTag.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("openingTag"); popErr != nil {
+ return popErr
+ }
+ if _openingTagErr != nil {
+ return errors.Wrap(_openingTagErr, "Error serializing 'openingTag' field")
+ }
+
+ // Array Field (specifications)
+ if m.Specifications != nil {
+ if pushErr := writeBuffer.PushContext("specifications", utils.WithRenderAsList(true)); pushErr != nil {
+ return pushErr
+ }
+ for _, _element := range m.Specifications {
+ _elementErr := _element.Serialize(writeBuffer)
+ if _elementErr != nil {
+ return errors.Wrap(_elementErr, "Error serializing 'specifications' field")
+ }
+ }
+ if popErr := writeBuffer.PopContext("specifications", utils.WithRenderAsList(true)); popErr != nil {
+ return popErr
+ }
+ }
+
+ // Simple Field (closingTag)
+ if pushErr := writeBuffer.PushContext("closingTag"); pushErr != nil {
+ return pushErr
+ }
+ _closingTagErr := m.ClosingTag.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("closingTag"); popErr != nil {
+ return popErr
+ }
+ if _closingTagErr != nil {
+ return errors.Wrap(_closingTagErr, "Error serializing 'closingTag' field")
+ }
+
+ if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList"); popErr != nil {
+ return popErr
+ }
+ return nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := m.Serialize(buffer); err != nil {
+ return err.Error()
+ }
+ return buffer.GetBox().String()
+}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go
new file mode 100644
index 0000000000..c97abb1dff
--- /dev/null
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go
@@ -0,0 +1,245 @@
+/*
+ * 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
+ *
+ * http://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/plc4go/spi/utils"
+ "github.com/pkg/errors"
+ "io"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference is the data-structure of this message
+type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference struct {
+ MonitoredProperty *BACnetPropertyReferenceEnclosed
+ CovIncrement *BACnetContextTagReal
+ Timestamped *BACnetContextTagBoolean
+}
+
+// IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference is the corresponding interface of BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference
+type IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference interface {
+ // GetMonitoredProperty returns MonitoredProperty (property field)
+ GetMonitoredProperty() *BACnetPropertyReferenceEnclosed
+ // GetCovIncrement returns CovIncrement (property field)
+ GetCovIncrement() *BACnetContextTagReal
+ // GetTimestamped returns Timestamped (property field)
+ GetTimestamped() *BACnetContextTagBoolean
+ // GetLengthInBytes returns the length in bytes
+ GetLengthInBytes() uint16
+ // GetLengthInBits returns the length in bits
+ GetLengthInBits() uint16
+ // Serialize serializes this type
+ Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) GetMonitoredProperty() *BACnetPropertyReferenceEnclosed {
+ return m.MonitoredProperty
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) GetCovIncrement() *BACnetContextTagReal {
+ return m.CovIncrement
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) GetTimestamped() *BACnetContextTagBoolean {
+ return m.Timestamped
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference factory function for BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference
+func NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference(monitoredProperty *BACnetPropertyReferenceEnclosed, covIncrement *BACnetContextTagReal, timestamped *BACnetContextTagBoolean) *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference {
+ return &BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference{MonitoredProperty: monitoredProperty, CovIncrement: covIncrement, Timestamped: timestamped}
+}
+
+func CastBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference(structType interface{}) *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference {
+ if casted, ok := structType.(BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference); ok {
+ return &casted
+ }
+ if casted, ok := structType.(*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference); ok {
+ return casted
+ }
+ return nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) GetTypeName() string {
+ return "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference"
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(0)
+
+ // Simple field (monitoredProperty)
+ lengthInBits += m.MonitoredProperty.GetLengthInBits()
+
+ // Optional Field (covIncrement)
+ if m.CovIncrement != nil {
+ lengthInBits += (*m.CovIncrement).GetLengthInBits()
+ }
+
+ // Simple field (timestamped)
+ lengthInBits += m.Timestamped.GetLengthInBits()
+
+ return lengthInBits
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReferenceParse(readBuffer utils.ReadBuffer) (*BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference"); pullErr != nil {
+ return nil, pullErr
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ // Simple Field (monitoredProperty)
+ if pullErr := readBuffer.PullContext("monitoredProperty"); pullErr != nil {
+ return nil, pullErr
+ }
+ _monitoredProperty, _monitoredPropertyErr := BACnetPropertyReferenceEnclosedParse(readBuffer, uint8(uint8(1)))
+ if _monitoredPropertyErr != nil {
+ return nil, errors.Wrap(_monitoredPropertyErr, "Error parsing 'monitoredProperty' field")
+ }
+ monitoredProperty := CastBACnetPropertyReferenceEnclosed(_monitoredProperty)
+ if closeErr := readBuffer.CloseContext("monitoredProperty"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Optional Field (covIncrement) (Can be skipped, if a given expression evaluates to false)
+ var covIncrement *BACnetContextTagReal = nil
+ {
+ currentPos = positionAware.GetPos()
+ if pullErr := readBuffer.PullContext("covIncrement"); pullErr != nil {
+ return nil, pullErr
+ }
+ _val, _err := BACnetContextTagParse(readBuffer, uint8(1), BACnetDataType_REAL)
+ switch {
+ case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
+ readBuffer.Reset(currentPos)
+ case _err != nil:
+ return nil, errors.Wrap(_err, "Error parsing 'covIncrement' field")
+ default:
+ covIncrement = CastBACnetContextTagReal(_val)
+ if closeErr := readBuffer.CloseContext("covIncrement"); closeErr != nil {
+ return nil, closeErr
+ }
+ }
+ }
+
+ // Simple Field (timestamped)
+ if pullErr := readBuffer.PullContext("timestamped"); pullErr != nil {
+ return nil, pullErr
+ }
+ _timestamped, _timestampedErr := BACnetContextTagParse(readBuffer, uint8(uint8(2)), BACnetDataType(BACnetDataType_BOOLEAN))
+ if _timestampedErr != nil {
+ return nil, errors.Wrap(_timestampedErr, "Error parsing 'timestamped' field")
+ }
+ timestamped := CastBACnetContextTagBoolean(_timestamped)
+ if closeErr := readBuffer.CloseContext("timestamped"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Create the instance
+ return NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference(monitoredProperty, covIncrement, timestamped), nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference"); pushErr != nil {
+ return pushErr
+ }
+
+ // Simple Field (monitoredProperty)
+ if pushErr := writeBuffer.PushContext("monitoredProperty"); pushErr != nil {
+ return pushErr
+ }
+ _monitoredPropertyErr := m.MonitoredProperty.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("monitoredProperty"); popErr != nil {
+ return popErr
+ }
+ if _monitoredPropertyErr != nil {
+ return errors.Wrap(_monitoredPropertyErr, "Error serializing 'monitoredProperty' field")
+ }
+
+ // Optional Field (covIncrement) (Can be skipped, if the value is null)
+ var covIncrement *BACnetContextTagReal = nil
+ if m.CovIncrement != nil {
+ if pushErr := writeBuffer.PushContext("covIncrement"); pushErr != nil {
+ return pushErr
+ }
+ covIncrement = m.CovIncrement
+ _covIncrementErr := covIncrement.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("covIncrement"); popErr != nil {
+ return popErr
+ }
+ if _covIncrementErr != nil {
+ return errors.Wrap(_covIncrementErr, "Error serializing 'covIncrement' field")
+ }
+ }
+
+ // Simple Field (timestamped)
+ if pushErr := writeBuffer.PushContext("timestamped"); pushErr != nil {
+ return pushErr
+ }
+ _timestampedErr := m.Timestamped.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("timestamped"); popErr != nil {
+ return popErr
+ }
+ if _timestampedErr != nil {
+ return errors.Wrap(_timestampedErr, "Error serializing 'timestamped' field")
+ }
+
+ if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference"); popErr != nil {
+ return popErr
+ }
+ return nil
+}
+
+func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference) String() string {
+ if m == nil {
+ return "<nil>"
+ }
+ buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+ if err := m.Serialize(buffer); err != nil {
+ return err.Error()
+ }
+ return buffer.GetBox().String()
+}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummaries.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummariesList.go
similarity index 72%
rename from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummaries.go
rename to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummariesList.go
index ba73f83bd4..f42252e7f5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummaries.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummariesList.go
@@ -26,15 +26,18 @@ import (
// Code generated by code-generation. DO NOT EDIT.
-// BACnetEventSummaries is the data-structure of this message
-type BACnetEventSummaries struct {
+// BACnetEventSummariesList is the data-structure of this message
+type BACnetEventSummariesList struct {
OpeningTag *BACnetOpeningTag
ListOfEventSummaries []*BACnetEventSummary
ClosingTag *BACnetClosingTag
+
+ // Arguments.
+ TagNumber uint8
}
-// IBACnetEventSummaries is the corresponding interface of BACnetEventSummaries
-type IBACnetEventSummaries interface {
+// IBACnetEventSummariesList is the corresponding interface of BACnetEventSummariesList
+type IBACnetEventSummariesList interface {
// GetOpeningTag returns OpeningTag (property field)
GetOpeningTag() *BACnetOpeningTag
// GetListOfEventSummaries returns ListOfEventSummaries (property field)
@@ -54,15 +57,15 @@ type IBACnetEventSummaries interface {
/////////////////////// Accessors for property fields.
///////////////////////
-func (m *BACnetEventSummaries) GetOpeningTag() *BACnetOpeningTag {
+func (m *BACnetEventSummariesList) GetOpeningTag() *BACnetOpeningTag {
return m.OpeningTag
}
-func (m *BACnetEventSummaries) GetListOfEventSummaries() []*BACnetEventSummary {
+func (m *BACnetEventSummariesList) GetListOfEventSummaries() []*BACnetEventSummary {
return m.ListOfEventSummaries
}
-func (m *BACnetEventSummaries) GetClosingTag() *BACnetClosingTag {
+func (m *BACnetEventSummariesList) GetClosingTag() *BACnetClosingTag {
return m.ClosingTag
}
@@ -71,30 +74,30 @@ func (m *BACnetEventSummaries) GetClosingTag() *BACnetClosingTag {
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
-// NewBACnetEventSummaries factory function for BACnetEventSummaries
-func NewBACnetEventSummaries(openingTag *BACnetOpeningTag, listOfEventSummaries []*BACnetEventSummary, closingTag *BACnetClosingTag) *BACnetEventSummaries {
- return &BACnetEventSummaries{OpeningTag: openingTag, ListOfEventSummaries: listOfEventSummaries, ClosingTag: closingTag}
+// NewBACnetEventSummariesList factory function for BACnetEventSummariesList
+func NewBACnetEventSummariesList(openingTag *BACnetOpeningTag, listOfEventSummaries []*BACnetEventSummary, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetEventSummariesList {
+ return &BACnetEventSummariesList{OpeningTag: openingTag, ListOfEventSummaries: listOfEventSummaries, ClosingTag: closingTag, TagNumber: tagNumber}
}
-func CastBACnetEventSummaries(structType interface{}) *BACnetEventSummaries {
- if casted, ok := structType.(BACnetEventSummaries); ok {
+func CastBACnetEventSummariesList(structType interface{}) *BACnetEventSummariesList {
+ if casted, ok := structType.(BACnetEventSummariesList); ok {
return &casted
}
- if casted, ok := structType.(*BACnetEventSummaries); ok {
+ if casted, ok := structType.(*BACnetEventSummariesList); ok {
return casted
}
return nil
}
-func (m *BACnetEventSummaries) GetTypeName() string {
- return "BACnetEventSummaries"
+func (m *BACnetEventSummariesList) GetTypeName() string {
+ return "BACnetEventSummariesList"
}
-func (m *BACnetEventSummaries) GetLengthInBits() uint16 {
+func (m *BACnetEventSummariesList) GetLengthInBits() uint16 {
return m.GetLengthInBitsConditional(false)
}
-func (m *BACnetEventSummaries) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetEventSummariesList) GetLengthInBitsConditional(lastItem bool) uint16 {
lengthInBits := uint16(0)
// Simple field (openingTag)
@@ -113,14 +116,14 @@ func (m *BACnetEventSummaries) GetLengthInBitsConditional(lastItem bool) uint16
return lengthInBits
}
-func (m *BACnetEventSummaries) GetLengthInBytes() uint16 {
+func (m *BACnetEventSummariesList) GetLengthInBytes() uint16 {
return m.GetLengthInBits() / 8
}
-func BACnetEventSummariesParse(readBuffer utils.ReadBuffer) (*BACnetEventSummaries, error) {
+func BACnetEventSummariesListParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*BACnetEventSummariesList, error) {
positionAware := readBuffer
_ = positionAware
- if pullErr := readBuffer.PullContext("BACnetEventSummaries"); pullErr != nil {
+ if pullErr := readBuffer.PullContext("BACnetEventSummariesList"); pullErr != nil {
return nil, pullErr
}
currentPos := positionAware.GetPos()
@@ -130,7 +133,7 @@ func BACnetEventSummariesParse(readBuffer utils.ReadBuffer) (*BACnetEventSummari
if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
return nil, pullErr
}
- _openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_OPENING_TAG))
+ _openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
if _openingTagErr != nil {
return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
}
@@ -163,7 +166,7 @@ func BACnetEventSummariesParse(readBuffer utils.ReadBuffer) (*BACnetEventSummari
if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
return nil, pullErr
}
- _closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_CLOSING_TAG))
+ _closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
if _closingTagErr != nil {
return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
}
@@ -172,18 +175,18 @@ func BACnetEventSummariesParse(readBuffer utils.ReadBuffer) (*BACnetEventSummari
return nil, closeErr
}
- if closeErr := readBuffer.CloseContext("BACnetEventSummaries"); closeErr != nil {
+ if closeErr := readBuffer.CloseContext("BACnetEventSummariesList"); closeErr != nil {
return nil, closeErr
}
// Create the instance
- return NewBACnetEventSummaries(openingTag, listOfEventSummaries, closingTag), nil
+ return NewBACnetEventSummariesList(openingTag, listOfEventSummaries, closingTag, tagNumber), nil
}
-func (m *BACnetEventSummaries) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetEventSummariesList) Serialize(writeBuffer utils.WriteBuffer) error {
positionAware := writeBuffer
_ = positionAware
- if pushErr := writeBuffer.PushContext("BACnetEventSummaries"); pushErr != nil {
+ if pushErr := writeBuffer.PushContext("BACnetEventSummariesList"); pushErr != nil {
return pushErr
}
@@ -227,13 +230,13 @@ func (m *BACnetEventSummaries) Serialize(writeBuffer utils.WriteBuffer) error {
return errors.Wrap(_closingTagErr, "Error serializing 'closingTag' field")
}
- if popErr := writeBuffer.PopContext("BACnetEventSummaries"); popErr != nil {
+ if popErr := writeBuffer.PopContext("BACnetEventSummariesList"); popErr != nil {
return popErr
}
return nil
}
-func (m *BACnetEventSummaries) String() string {
+func (m *BACnetEventSummariesList) String() string {
if m == nil {
return "<nil>"
}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
index 3afd76d921..ed291758e8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
@@ -29,7 +29,7 @@ import (
// BACnetServiceAckGetEventInformation is the data-structure of this message
type BACnetServiceAckGetEventInformation struct {
*BACnetServiceAck
- ListOfEventSummaries *BACnetEventSummaries
+ ListOfEventSummaries *BACnetEventSummariesList
MoreEvents *BACnetContextTagBoolean
// Arguments.
@@ -40,7 +40,7 @@ type BACnetServiceAckGetEventInformation struct {
type IBACnetServiceAckGetEventInformation interface {
IBACnetServiceAck
// GetListOfEventSummaries returns ListOfEventSummaries (property field)
- GetListOfEventSummaries() *BACnetEventSummaries
+ GetListOfEventSummaries() *BACnetEventSummariesList
// GetMoreEvents returns MoreEvents (property field)
GetMoreEvents() *BACnetContextTagBoolean
// GetLengthInBytes returns the length in bytes
@@ -76,7 +76,7 @@ func (m *BACnetServiceAckGetEventInformation) GetParent() *BACnetServiceAck {
/////////////////////// Accessors for property fields.
///////////////////////
-func (m *BACnetServiceAckGetEventInformation) GetListOfEventSummaries() *BACnetEventSummaries {
+func (m *BACnetServiceAckGetEventInformation) GetListOfEventSummaries() *BACnetEventSummariesList {
return m.ListOfEventSummaries
}
@@ -90,7 +90,7 @@ func (m *BACnetServiceAckGetEventInformation) GetMoreEvents() *BACnetContextTagB
///////////////////////////////////////////////////////////
// NewBACnetServiceAckGetEventInformation factory function for BACnetServiceAckGetEventInformation
-func NewBACnetServiceAckGetEventInformation(listOfEventSummaries *BACnetEventSummaries, moreEvents *BACnetContextTagBoolean, serviceRequestLength uint16) *BACnetServiceAckGetEventInformation {
+func NewBACnetServiceAckGetEventInformation(listOfEventSummaries *BACnetEventSummariesList, moreEvents *BACnetContextTagBoolean, serviceRequestLength uint16) *BACnetServiceAckGetEventInformation {
_result := &BACnetServiceAckGetEventInformation{
ListOfEventSummaries: listOfEventSummaries,
MoreEvents: moreEvents,
@@ -153,11 +153,11 @@ func BACnetServiceAckGetEventInformationParse(readBuffer utils.ReadBuffer, servi
if pullErr := readBuffer.PullContext("listOfEventSummaries"); pullErr != nil {
return nil, pullErr
}
- _listOfEventSummaries, _listOfEventSummariesErr := BACnetEventSummariesParse(readBuffer)
+ _listOfEventSummaries, _listOfEventSummariesErr := BACnetEventSummariesListParse(readBuffer, uint8(uint8(0)))
if _listOfEventSummariesErr != nil {
return nil, errors.Wrap(_listOfEventSummariesErr, "Error parsing 'listOfEventSummaries' field")
}
- listOfEventSummaries := CastBACnetEventSummaries(_listOfEventSummaries)
+ listOfEventSummaries := CastBACnetEventSummariesList(_listOfEventSummaries)
if closeErr := readBuffer.CloseContext("listOfEventSummaries"); closeErr != nil {
return nil, closeErr
}
@@ -166,7 +166,7 @@ func BACnetServiceAckGetEventInformationParse(readBuffer utils.ReadBuffer, servi
if pullErr := readBuffer.PullContext("moreEvents"); pullErr != nil {
return nil, pullErr
}
- _moreEvents, _moreEventsErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_BOOLEAN))
+ _moreEvents, _moreEventsErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BOOLEAN))
if _moreEventsErr != nil {
return nil, errors.Wrap(_moreEventsErr, "Error parsing 'moreEvents' field")
}
@@ -181,7 +181,7 @@ func BACnetServiceAckGetEventInformationParse(readBuffer utils.ReadBuffer, servi
// Create a partially initialized instance
_child := &BACnetServiceAckGetEventInformation{
- ListOfEventSummaries: CastBACnetEventSummaries(listOfEventSummaries),
+ ListOfEventSummaries: CastBACnetEventSummariesList(listOfEventSummaries),
MoreEvents: CastBACnetContextTagBoolean(moreEvents),
BACnetServiceAck: &BACnetServiceAck{},
}
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index 41debe3a0c..4431c7e488 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -379,7 +379,7 @@
[simple BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') initiatingDeviceIdentifier ]
[simple BACnetContextTagUnsignedInteger('2', 'BACnetDataType.UNSIGNED_INTEGER') timeRemaining ]
[optional BACnetTimeStampEnclosed('3') timestamp ]
- [simple BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications('4')
+ [simple BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList('4')
listOfCovNotifications ]
]
['CONFIRMED_EVENT_NOTIFICATION' BACnetConfirmedServiceRequestConfirmedEventNotification // Spec complete
@@ -423,8 +423,12 @@
[optional BACnetContextTagReal('5', 'BACnetDataType.REAL') covIncrement ]
]
['SUBSCRIBE_COV_PROPERTY_MULTIPLE' BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
- // TODO: implement me
- [validation '1 == 2' "TODO: implement me"]
+ [simple BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER') subscriberProcessIdentifier ]
+ [optional BACnetContextTagBoolean('1', 'BACnetDataType.BOOLEAN') issueConfirmedNotifications ]
+ [optional BACnetContextTagUnsignedInteger('2', 'BACnetDataType.UNSIGNED_INTEGER') lifetime ]
+ [optional BACnetContextTagUnsignedInteger('3', 'BACnetDataType.UNSIGNED_INTEGER') maxNotificationDelay ]
+ [simple BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList('4')
+ listOfCovSubscriptionSpecifications ]
]
//
////
@@ -641,46 +645,85 @@
////
]
-[type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications(uint 8 tagNumber)
+[type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsList(uint 8 tagNumber)
[simple BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
- openingTag ]
- [simple BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') monitoredObjectIdentifier ]
+ openingTag ]
+ [array BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications
+ specifications
+ terminated
+ 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
+ [simple BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+ closingTag ]
+]
+
+[type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotifications
+ [simple BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
+ monitoredObjectIdentifier ]
[simple BACnetOpeningTag('1', 'BACnetDataType.OPENING_TAG')
- innerOpeningTag ]
- [array BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsValue('monitoredObjectIdentifier.objectType')
+ openingTag ]
+ [array BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsValue('monitoredObjectIdentifier.objectType')
listOfValues
- terminated
- 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'
- ]
+ terminated
+ 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)' ]
[simple BACnetClosingTag('1', 'BACnetDataType.CLOSING_TAG')
- innerClosingTag ]
- [simple BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
- closingTag ]
+ closingTag ]
]
[type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleListOfCovNotificationsValue(BACnetObjectType objectType)
[simple BACnetContextTagPropertyIdentifier('0', 'BACnetDataType.BACNET_PROPERTY_IDENTIFIER')
- propertyIdentifier ]
+ propertyIdentifier ]
[optional BACnetContextTagUnsignedInteger('1', 'BACnetDataType.UNSIGNED_INTEGER')
- arrayIndex ]
+ arrayIndex ]
[simple BACnetConstructedData('2', 'objectType', 'propertyIdentifier')
- propertyValue ]
+ propertyValue ]
[optional BACnetContextTagTime('3', 'BACnetDataType.TIME')
- timeOfChange ]
+ timeOfChange ]
+]
+
+[type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList(uint 8 tagNumber)
+ [simple BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+ openingTag ]
+ [array BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications
+ specifications
+ terminated
+ 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
+ [simple BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+ closingTag ]
+]
+
+[type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications
+ [simple BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
+ monitoredObjectIdentifier ]
+ [simple BACnetOpeningTag('1', 'BACnetDataType.OPENING_TAG')
+ openingTag ]
+ [array BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference
+ listOfCovReferences
+ terminated
+ 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)' ]
+ [simple BACnetClosingTag('1', 'BACnetDataType.CLOSING_TAG')
+ closingTag ]
+]
+
+[type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference
+ [simple BACnetPropertyReferenceEnclosed('1')
+ monitoredProperty ]
+ [optional BACnetContextTagReal('1', 'BACnetDataType.REAL')
+ covIncrement ]
+ [simple BACnetContextTagBoolean('2', 'BACnetDataType.BOOLEAN')
+ timestamped ]
]
[type BACnetReadAccessSpecification
[simple BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
- objectIdentifier ]
+ objectIdentifier ]
[simple BACnetOpeningTag('1', 'BACnetDataType.OPENING_TAG')
- openingTag ]
+ openingTag ]
[array BACnetPropertyReference
listOfPropertyReferences
- terminated
- 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'
- ]
+ terminated
+ 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)' ]
[simple BACnetClosingTag('1', 'BACnetDataType.CLOSING_TAG')
- closingTag ]
+ closingTag ]
]
[type BACnetPropertyReferenceEnclosed(uint 8 tagNumber)
@@ -931,10 +974,10 @@
[validation '1 == 2' "TODO: implement me"]
]
['GET_EVENT_INFORMATION' BACnetServiceAckGetEventInformation
- [simple BACnetEventSummaries
- listOfEventSummaries ]
- [simple BACnetContextTagBoolean('0', 'BACnetDataType.BOOLEAN')
- moreEvents ]
+ [simple BACnetEventSummariesList('0')
+ listOfEventSummaries ]
+ [simple BACnetContextTagBoolean('1', 'BACnetDataType.BOOLEAN')
+ moreEvents ]
]
['LIFE_SAFETY_OPERATION' BACnetServiceAckLifeSafetyOperation
// TODO: implement me
@@ -1086,15 +1129,15 @@
]
// TODO: check if we should embed this type into BACnetServiceAckGetEventInformation as we double map
-[type BACnetEventSummaries
- [simple BACnetOpeningTag('0', 'BACnetDataType.OPENING_TAG')
+[type BACnetEventSummariesList(uint 8 tagNumber)
+ [simple BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
openingTag ]
[array BACnetEventSummary
listOfEventSummaries
terminated
'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'
]
- [simple BACnetClosingTag('0', 'BACnetDataType.CLOSING_TAG')
+ [simple BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
closingTag ]
]