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/24 12:10:06 UTC
[plc4x] 13/14: feat(bacnet): implemented BACnetConfirmedServiceRequestLifeSafetyOperation
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 9709a9cb6f195d6d3e05af485237113774eb8777
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue May 24 13:51:52 2022 +0200
feat(bacnet): implemented BACnetConfirmedServiceRequestLifeSafetyOperation
---
...etConfirmedServiceRequestLifeSafetyOperation.go | 177 ++++++++++++++++++++-
.../resources/protocols/bacnetip/bacnetip.mspec | 30 ++--
2 files changed, 189 insertions(+), 18 deletions(-)
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
index 474a4d600a..59ca68b33c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
@@ -21,6 +21,8 @@ package model
import (
"github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
+ "io"
)
// Code generated by code-generation. DO NOT EDIT.
@@ -28,6 +30,10 @@ import (
// BACnetConfirmedServiceRequestLifeSafetyOperation is the data-structure of this message
type BACnetConfirmedServiceRequestLifeSafetyOperation struct {
*BACnetConfirmedServiceRequest
+ RequestingProcessIdentifier *BACnetContextTagUnsignedInteger
+ RequestingSource *BACnetContextTagCharacterString
+ Request *BACnetLifeSafetyOperationTagged
+ ObjectIdentifier *BACnetContextTagObjectIdentifier
// Arguments.
ServiceRequestLength uint16
@@ -36,6 +42,14 @@ type BACnetConfirmedServiceRequestLifeSafetyOperation struct {
// IBACnetConfirmedServiceRequestLifeSafetyOperation is the corresponding interface of BACnetConfirmedServiceRequestLifeSafetyOperation
type IBACnetConfirmedServiceRequestLifeSafetyOperation interface {
IBACnetConfirmedServiceRequest
+ // GetRequestingProcessIdentifier returns RequestingProcessIdentifier (property field)
+ GetRequestingProcessIdentifier() *BACnetContextTagUnsignedInteger
+ // GetRequestingSource returns RequestingSource (property field)
+ GetRequestingSource() *BACnetContextTagCharacterString
+ // GetRequest returns Request (property field)
+ GetRequest() *BACnetLifeSafetyOperationTagged
+ // GetObjectIdentifier returns ObjectIdentifier (property field)
+ GetObjectIdentifier() *BACnetContextTagObjectIdentifier
// GetLengthInBytes returns the length in bytes
GetLengthInBytes() uint16
// GetLengthInBits returns the length in bits
@@ -65,9 +79,39 @@ func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) GetParent() *BACnetCo
return m.BACnetConfirmedServiceRequest
}
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) GetRequestingProcessIdentifier() *BACnetContextTagUnsignedInteger {
+ return m.RequestingProcessIdentifier
+}
+
+func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) GetRequestingSource() *BACnetContextTagCharacterString {
+ return m.RequestingSource
+}
+
+func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) GetRequest() *BACnetLifeSafetyOperationTagged {
+ return m.Request
+}
+
+func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) GetObjectIdentifier() *BACnetContextTagObjectIdentifier {
+ return m.ObjectIdentifier
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
// NewBACnetConfirmedServiceRequestLifeSafetyOperation factory function for BACnetConfirmedServiceRequestLifeSafetyOperation
-func NewBACnetConfirmedServiceRequestLifeSafetyOperation(serviceRequestLength uint16) *BACnetConfirmedServiceRequestLifeSafetyOperation {
+func NewBACnetConfirmedServiceRequestLifeSafetyOperation(requestingProcessIdentifier *BACnetContextTagUnsignedInteger, requestingSource *BACnetContextTagCharacterString, request *BACnetLifeSafetyOperationTagged, objectIdentifier *BACnetContextTagObjectIdentifier, serviceRequestLength uint16) *BACnetConfirmedServiceRequestLifeSafetyOperation {
_result := &BACnetConfirmedServiceRequestLifeSafetyOperation{
+ RequestingProcessIdentifier: requestingProcessIdentifier,
+ RequestingSource: requestingSource,
+ Request: request,
+ ObjectIdentifier: objectIdentifier,
BACnetConfirmedServiceRequest: NewBACnetConfirmedServiceRequest(serviceRequestLength),
}
_result.Child = _result
@@ -101,6 +145,20 @@ func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) GetLengthInBits() uin
func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) GetLengthInBitsConditional(lastItem bool) uint16 {
lengthInBits := uint16(m.GetParentLengthInBits())
+ // Simple field (requestingProcessIdentifier)
+ lengthInBits += m.RequestingProcessIdentifier.GetLengthInBits()
+
+ // Simple field (requestingSource)
+ lengthInBits += m.RequestingSource.GetLengthInBits()
+
+ // Simple field (request)
+ lengthInBits += m.Request.GetLengthInBits()
+
+ // Optional Field (objectIdentifier)
+ if m.ObjectIdentifier != nil {
+ lengthInBits += (*m.ObjectIdentifier).GetLengthInBits()
+ }
+
return lengthInBits
}
@@ -117,9 +175,64 @@ func BACnetConfirmedServiceRequestLifeSafetyOperationParse(readBuffer utils.Read
currentPos := positionAware.GetPos()
_ = currentPos
- // Validation
- if !(bool((1) == (2))) {
- return nil, utils.ParseValidationError{"TODO: implement me"}
+ // Simple Field (requestingProcessIdentifier)
+ if pullErr := readBuffer.PullContext("requestingProcessIdentifier"); pullErr != nil {
+ return nil, pullErr
+ }
+ _requestingProcessIdentifier, _requestingProcessIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_UNSIGNED_INTEGER))
+ if _requestingProcessIdentifierErr != nil {
+ return nil, errors.Wrap(_requestingProcessIdentifierErr, "Error parsing 'requestingProcessIdentifier' field")
+ }
+ requestingProcessIdentifier := CastBACnetContextTagUnsignedInteger(_requestingProcessIdentifier)
+ if closeErr := readBuffer.CloseContext("requestingProcessIdentifier"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (requestingSource)
+ if pullErr := readBuffer.PullContext("requestingSource"); pullErr != nil {
+ return nil, pullErr
+ }
+ _requestingSource, _requestingSourceErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_CHARACTER_STRING))
+ if _requestingSourceErr != nil {
+ return nil, errors.Wrap(_requestingSourceErr, "Error parsing 'requestingSource' field")
+ }
+ requestingSource := CastBACnetContextTagCharacterString(_requestingSource)
+ if closeErr := readBuffer.CloseContext("requestingSource"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (request)
+ if pullErr := readBuffer.PullContext("request"); pullErr != nil {
+ return nil, pullErr
+ }
+ _request, _requestErr := BACnetLifeSafetyOperationTaggedParse(readBuffer, uint8(uint8(2)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
+ if _requestErr != nil {
+ return nil, errors.Wrap(_requestErr, "Error parsing 'request' field")
+ }
+ request := CastBACnetLifeSafetyOperationTagged(_request)
+ if closeErr := readBuffer.CloseContext("request"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Optional Field (objectIdentifier) (Can be skipped, if a given expression evaluates to false)
+ var objectIdentifier *BACnetContextTagObjectIdentifier = nil
+ {
+ currentPos = positionAware.GetPos()
+ if pullErr := readBuffer.PullContext("objectIdentifier"); pullErr != nil {
+ return nil, pullErr
+ }
+ _val, _err := BACnetContextTagParse(readBuffer, uint8(3), BACnetDataType_BACNET_OBJECT_IDENTIFIER)
+ 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 'objectIdentifier' field")
+ default:
+ objectIdentifier = CastBACnetContextTagObjectIdentifier(_val)
+ if closeErr := readBuffer.CloseContext("objectIdentifier"); closeErr != nil {
+ return nil, closeErr
+ }
+ }
}
if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestLifeSafetyOperation"); closeErr != nil {
@@ -128,6 +241,10 @@ func BACnetConfirmedServiceRequestLifeSafetyOperationParse(readBuffer utils.Read
// Create a partially initialized instance
_child := &BACnetConfirmedServiceRequestLifeSafetyOperation{
+ RequestingProcessIdentifier: CastBACnetContextTagUnsignedInteger(requestingProcessIdentifier),
+ RequestingSource: CastBACnetContextTagCharacterString(requestingSource),
+ Request: CastBACnetLifeSafetyOperationTagged(request),
+ ObjectIdentifier: CastBACnetContextTagObjectIdentifier(objectIdentifier),
BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
}
_child.BACnetConfirmedServiceRequest.Child = _child
@@ -142,6 +259,58 @@ func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) Serialize(writeBuffer
return pushErr
}
+ // Simple Field (requestingProcessIdentifier)
+ if pushErr := writeBuffer.PushContext("requestingProcessIdentifier"); pushErr != nil {
+ return pushErr
+ }
+ _requestingProcessIdentifierErr := m.RequestingProcessIdentifier.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("requestingProcessIdentifier"); popErr != nil {
+ return popErr
+ }
+ if _requestingProcessIdentifierErr != nil {
+ return errors.Wrap(_requestingProcessIdentifierErr, "Error serializing 'requestingProcessIdentifier' field")
+ }
+
+ // Simple Field (requestingSource)
+ if pushErr := writeBuffer.PushContext("requestingSource"); pushErr != nil {
+ return pushErr
+ }
+ _requestingSourceErr := m.RequestingSource.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("requestingSource"); popErr != nil {
+ return popErr
+ }
+ if _requestingSourceErr != nil {
+ return errors.Wrap(_requestingSourceErr, "Error serializing 'requestingSource' field")
+ }
+
+ // Simple Field (request)
+ if pushErr := writeBuffer.PushContext("request"); pushErr != nil {
+ return pushErr
+ }
+ _requestErr := m.Request.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("request"); popErr != nil {
+ return popErr
+ }
+ if _requestErr != nil {
+ return errors.Wrap(_requestErr, "Error serializing 'request' field")
+ }
+
+ // Optional Field (objectIdentifier) (Can be skipped, if the value is null)
+ var objectIdentifier *BACnetContextTagObjectIdentifier = nil
+ if m.ObjectIdentifier != nil {
+ if pushErr := writeBuffer.PushContext("objectIdentifier"); pushErr != nil {
+ return pushErr
+ }
+ objectIdentifier = m.ObjectIdentifier
+ _objectIdentifierErr := objectIdentifier.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("objectIdentifier"); popErr != nil {
+ return popErr
+ }
+ if _objectIdentifierErr != nil {
+ return errors.Wrap(_objectIdentifierErr, "Error serializing 'objectIdentifier' field")
+ }
+ }
+
if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestLifeSafetyOperation"); popErr != nil {
return popErr
}
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index 477975eb71..6b05bdd585 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -350,11 +350,13 @@
[optional BACnetContextTagUnsignedInteger('5', 'BACnetDataType.UNSIGNED_INTEGER') notificationClassFilter ]
]
['GET_EVENT_INFORMATION' BACnetConfirmedServiceRequestGetEventInformation
- [optional BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') lastReceivedObjectIdentifier ]
+ [optional BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') lastReceivedObjectIdentifier ]
]
['LIFE_SAFETY_OPERATION' BACnetConfirmedServiceRequestLifeSafetyOperation
- // TODO: implement me
- [validation '1 == 2' "TODO: implement me"]
+ [simple BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER') requestingProcessIdentifier ]
+ [simple BACnetContextTagCharacterString('1', 'BACnetDataType.CHARACTER_STRING') requestingSource ]
+ [simple BACnetLifeSafetyOperationTagged('2', 'TagClass.CONTEXT_SPECIFIC_TAGS') request ]
+ [optional BACnetContextTagObjectIdentifier('3', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') objectIdentifier ]
]
['SUBSCRIBE_COV' BACnetConfirmedServiceRequestSubscribeCOV
[simple BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER') subscriberProcessIdentifier ]
@@ -363,20 +365,20 @@
[optional BACnetContextTagUnsignedInteger('3', 'BACnetDataType.UNSIGNED_INTEGER') lifetimeInSeconds ]
]
['SUBSCRIBE_COV_PROPERTY' BACnetConfirmedServiceRequestSubscribeCOVProperty
- [simple BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER') subscriberProcessIdentifier ]
- [simple BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') monitoredObjectIdentifier ]
- [optional BACnetContextTagBoolean('2', 'BACnetDataType.BOOLEAN') issueConfirmedNotifications ]
- [optional BACnetContextTagUnsignedInteger('3', 'BACnetDataType.UNSIGNED_INTEGER') lifetime ]
- [simple BACnetPropertyReferenceEnclosed('4') monitoredPropertyIdentifier ]
- [optional BACnetContextTagReal('5', 'BACnetDataType.REAL') covIncrement ]
+ [simple BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER') subscriberProcessIdentifier ]
+ [simple BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') monitoredObjectIdentifier ]
+ [optional BACnetContextTagBoolean('2', 'BACnetDataType.BOOLEAN') issueConfirmedNotifications ]
+ [optional BACnetContextTagUnsignedInteger('3', 'BACnetDataType.UNSIGNED_INTEGER') lifetime ]
+ [simple BACnetPropertyReferenceEnclosed('4') monitoredPropertyIdentifier ]
+ [optional BACnetContextTagReal('5', 'BACnetDataType.REAL') covIncrement ]
]
['SUBSCRIBE_COV_PROPERTY_MULTIPLE' BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
- [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 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 ]
+ listOfCovSubscriptionSpecifications ]
]
//
////