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 14:47:25 UTC
[plc4x] 04/07: feat(bacnet): implement BACnetConfirmedServiceRequestVTOpen
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 ba8b2dde6b6a2a12100254b6d54f660d9dbe56e3
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue May 24 16:30:49 2022 +0200
feat(bacnet): implement BACnetConfirmedServiceRequestVTOpen
---
.../model/BACnetConfirmedServiceRequestVTOpen.go | 88 +++++++++++++++++++++-
.../resources/protocols/bacnetip/bacnetip.mspec | 8 +-
2 files changed, 88 insertions(+), 8 deletions(-)
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
index c527d2e4bd..fb2addaadf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
@@ -21,6 +21,7 @@ package model
import (
"github.com/apache/plc4x/plc4go/internal/spi/utils"
+ "github.com/pkg/errors"
)
// Code generated by code-generation. DO NOT EDIT.
@@ -28,6 +29,8 @@ import (
// BACnetConfirmedServiceRequestVTOpen is the data-structure of this message
type BACnetConfirmedServiceRequestVTOpen struct {
*BACnetConfirmedServiceRequest
+ VtClass *BACnetVTClassTagged
+ LocatVtSessionIdentifier *BACnetApplicationTagUnsignedInteger
// Arguments.
ServiceRequestLength uint16
@@ -36,6 +39,10 @@ type BACnetConfirmedServiceRequestVTOpen struct {
// IBACnetConfirmedServiceRequestVTOpen is the corresponding interface of BACnetConfirmedServiceRequestVTOpen
type IBACnetConfirmedServiceRequestVTOpen interface {
IBACnetConfirmedServiceRequest
+ // GetVtClass returns VtClass (property field)
+ GetVtClass() *BACnetVTClassTagged
+ // GetLocatVtSessionIdentifier returns LocatVtSessionIdentifier (property field)
+ GetLocatVtSessionIdentifier() *BACnetApplicationTagUnsignedInteger
// GetLengthInBytes returns the length in bytes
GetLengthInBytes() uint16
// GetLengthInBits returns the length in bits
@@ -65,9 +72,29 @@ func (m *BACnetConfirmedServiceRequestVTOpen) GetParent() *BACnetConfirmedServic
return m.BACnetConfirmedServiceRequest
}
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestVTOpen) GetVtClass() *BACnetVTClassTagged {
+ return m.VtClass
+}
+
+func (m *BACnetConfirmedServiceRequestVTOpen) GetLocatVtSessionIdentifier() *BACnetApplicationTagUnsignedInteger {
+ return m.LocatVtSessionIdentifier
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
// NewBACnetConfirmedServiceRequestVTOpen factory function for BACnetConfirmedServiceRequestVTOpen
-func NewBACnetConfirmedServiceRequestVTOpen(serviceRequestLength uint16) *BACnetConfirmedServiceRequestVTOpen {
+func NewBACnetConfirmedServiceRequestVTOpen(vtClass *BACnetVTClassTagged, locatVtSessionIdentifier *BACnetApplicationTagUnsignedInteger, serviceRequestLength uint16) *BACnetConfirmedServiceRequestVTOpen {
_result := &BACnetConfirmedServiceRequestVTOpen{
+ VtClass: vtClass,
+ LocatVtSessionIdentifier: locatVtSessionIdentifier,
BACnetConfirmedServiceRequest: NewBACnetConfirmedServiceRequest(serviceRequestLength),
}
_result.Child = _result
@@ -101,6 +128,12 @@ func (m *BACnetConfirmedServiceRequestVTOpen) GetLengthInBits() uint16 {
func (m *BACnetConfirmedServiceRequestVTOpen) GetLengthInBitsConditional(lastItem bool) uint16 {
lengthInBits := uint16(m.GetParentLengthInBits())
+ // Simple field (vtClass)
+ lengthInBits += m.VtClass.GetLengthInBits()
+
+ // Simple field (locatVtSessionIdentifier)
+ lengthInBits += m.LocatVtSessionIdentifier.GetLengthInBits()
+
return lengthInBits
}
@@ -117,9 +150,30 @@ func BACnetConfirmedServiceRequestVTOpenParse(readBuffer utils.ReadBuffer, servi
currentPos := positionAware.GetPos()
_ = currentPos
- // Validation
- if !(bool((1) == (2))) {
- return nil, utils.ParseValidationError{"TODO: implement me"}
+ // Simple Field (vtClass)
+ if pullErr := readBuffer.PullContext("vtClass"); pullErr != nil {
+ return nil, pullErr
+ }
+ _vtClass, _vtClassErr := BACnetVTClassTaggedParse(readBuffer, uint8(uint8(0)), TagClass(TagClass_APPLICATION_TAGS))
+ if _vtClassErr != nil {
+ return nil, errors.Wrap(_vtClassErr, "Error parsing 'vtClass' field")
+ }
+ vtClass := CastBACnetVTClassTagged(_vtClass)
+ if closeErr := readBuffer.CloseContext("vtClass"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (locatVtSessionIdentifier)
+ if pullErr := readBuffer.PullContext("locatVtSessionIdentifier"); pullErr != nil {
+ return nil, pullErr
+ }
+ _locatVtSessionIdentifier, _locatVtSessionIdentifierErr := BACnetApplicationTagParse(readBuffer)
+ if _locatVtSessionIdentifierErr != nil {
+ return nil, errors.Wrap(_locatVtSessionIdentifierErr, "Error parsing 'locatVtSessionIdentifier' field")
+ }
+ locatVtSessionIdentifier := CastBACnetApplicationTagUnsignedInteger(_locatVtSessionIdentifier)
+ if closeErr := readBuffer.CloseContext("locatVtSessionIdentifier"); closeErr != nil {
+ return nil, closeErr
}
if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestVTOpen"); closeErr != nil {
@@ -128,6 +182,8 @@ func BACnetConfirmedServiceRequestVTOpenParse(readBuffer utils.ReadBuffer, servi
// Create a partially initialized instance
_child := &BACnetConfirmedServiceRequestVTOpen{
+ VtClass: CastBACnetVTClassTagged(vtClass),
+ LocatVtSessionIdentifier: CastBACnetApplicationTagUnsignedInteger(locatVtSessionIdentifier),
BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
}
_child.BACnetConfirmedServiceRequest.Child = _child
@@ -142,6 +198,30 @@ func (m *BACnetConfirmedServiceRequestVTOpen) Serialize(writeBuffer utils.WriteB
return pushErr
}
+ // Simple Field (vtClass)
+ if pushErr := writeBuffer.PushContext("vtClass"); pushErr != nil {
+ return pushErr
+ }
+ _vtClassErr := m.VtClass.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("vtClass"); popErr != nil {
+ return popErr
+ }
+ if _vtClassErr != nil {
+ return errors.Wrap(_vtClassErr, "Error serializing 'vtClass' field")
+ }
+
+ // Simple Field (locatVtSessionIdentifier)
+ if pushErr := writeBuffer.PushContext("locatVtSessionIdentifier"); pushErr != nil {
+ return pushErr
+ }
+ _locatVtSessionIdentifierErr := m.LocatVtSessionIdentifier.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("locatVtSessionIdentifier"); popErr != nil {
+ return popErr
+ }
+ if _locatVtSessionIdentifierErr != nil {
+ return errors.Wrap(_locatVtSessionIdentifierErr, "Error serializing 'locatVtSessionIdentifier' field")
+ }
+
if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestVTOpen"); 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 170fe1c21e..ed8be7707e 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -485,9 +485,9 @@
[simple BACnetContextTagCharacterString('3', 'BACnetDataType.CHARACTER_STRING') message ]
]
['REINITIALIZE_DEVICE' BACnetConfirmedServiceRequestReinitializeDevice
- [simple BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged('0', 'TagClass.CONTEXT_SPECIFIC_TAGS')
+ [simple BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged('0', 'TagClass.CONTEXT_SPECIFIC_TAGS')
reinitializedStateOfDevice ]
- [optional BACnetContextTagCharacterString('1', 'BACnetDataType.CHARACTER_STRING')
+ [optional BACnetContextTagCharacterString('1', 'BACnetDataType.CHARACTER_STRING')
password ]
]
@@ -495,8 +495,8 @@
// Virtual Terminal Services
['VT_OPEN' BACnetConfirmedServiceRequestVTOpen
- // TODO: implement me
- [validation '1 == 2' "TODO: implement me"]
+ [simple BACnetVTClassTagged('0', 'TagClass.APPLICATION_TAGS') vtClass ]
+ [simple BACnetApplicationTagUnsignedInteger locatVtSessionIdentifier ]
]
['VT_CLOSE' BACnetConfirmedServiceRequestVTClose
// TODO: implement me