diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go index fb00bb0abe4..c9e8a2c33d5 100644 --- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go +++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.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,7 @@ import ( // BACnetConfirmedServiceRequestVTClose is the data-structure of this message type BACnetConfirmedServiceRequestVTClose struct { *BACnetConfirmedServiceRequest + ListOfRemoteVtSessionIdentifiers []*BACnetApplicationTagUnsignedInteger // Arguments. ServiceRequestLength uint16 @@ -36,6 +38,8 @@ type BACnetConfirmedServiceRequestVTClose struct { // IBACnetConfirmedServiceRequestVTClose is the corresponding interface of BACnetConfirmedServiceRequestVTClose type IBACnetConfirmedServiceRequestVTClose interface { IBACnetConfirmedServiceRequest + // GetListOfRemoteVtSessionIdentifiers returns ListOfRemoteVtSessionIdentifiers (property field) + GetListOfRemoteVtSessionIdentifiers() []*BACnetApplicationTagUnsignedInteger // GetLengthInBytes returns the length in bytes GetLengthInBytes() uint16 // GetLengthInBits returns the length in bits @@ -65,10 +69,25 @@ func (m *BACnetConfirmedServiceRequestVTClose) GetParent() *BACnetConfirmedServi return m.BACnetConfirmedServiceRequest } +/////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////// +/////////////////////// Accessors for property fields. +/////////////////////// + +func (m *BACnetConfirmedServiceRequestVTClose) GetListOfRemoteVtSessionIdentifiers() []*BACnetApplicationTagUnsignedInteger { + return m.ListOfRemoteVtSessionIdentifiers +} + +/////////////////////// +/////////////////////// +/////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////// + // NewBACnetConfirmedServiceRequestVTClose factory function for BACnetConfirmedServiceRequestVTClose -func NewBACnetConfirmedServiceRequestVTClose(serviceRequestLength uint16) *BACnetConfirmedServiceRequestVTClose { +func NewBACnetConfirmedServiceRequestVTClose(listOfRemoteVtSessionIdentifiers []*BACnetApplicationTagUnsignedInteger, serviceRequestLength uint16) *BACnetConfirmedServiceRequestVTClose { _result := &BACnetConfirmedServiceRequestVTClose{ - BACnetConfirmedServiceRequest: NewBACnetConfirmedServiceRequest(serviceRequestLength), + ListOfRemoteVtSessionIdentifiers: listOfRemoteVtSessionIdentifiers, + BACnetConfirmedServiceRequest: NewBACnetConfirmedServiceRequest(serviceRequestLength), } _result.Child = _result return _result @@ -101,6 +120,13 @@ func (m *BACnetConfirmedServiceRequestVTClose) GetLengthInBits() uint16 { func (m *BACnetConfirmedServiceRequestVTClose) GetLengthInBitsConditional(lastItem bool) uint16 { lengthInBits := uint16(m.GetParentLengthInBits()) + // Array field + if len(m.ListOfRemoteVtSessionIdentifiers) > 0 { + for _, element := range m.ListOfRemoteVtSessionIdentifiers { + lengthInBits += element.GetLengthInBits() + } + } + return lengthInBits } @@ -117,9 +143,25 @@ func BACnetConfirmedServiceRequestVTCloseParse(readBuffer utils.ReadBuffer, serv currentPos := positionAware.GetPos() _ = currentPos - // Validation - if !(bool((1) == (2))) { - return nil, utils.ParseValidationError{"TODO: implement me"} + // Array field (listOfRemoteVtSessionIdentifiers) + if pullErr := readBuffer.PullContext("listOfRemoteVtSessionIdentifiers", utils.WithRenderAsList(true)); pullErr != nil { + return nil, pullErr + } + // Length array + listOfRemoteVtSessionIdentifiers := make([]*BACnetApplicationTagUnsignedInteger, 0) + { + _listOfRemoteVtSessionIdentifiersLength := utils.InlineIf(bool(bool((serviceRequestLength) > (0))), func() interface{} { return uint16(uint16(uint16(serviceRequestLength) - uint16(uint16(1)))) }, func() interface{} { return uint16(uint16(0)) }).(uint16) + _listOfRemoteVtSessionIdentifiersEndPos := positionAware.GetPos() + uint16(_listOfRemoteVtSessionIdentifiersLength) + for positionAware.GetPos() < _listOfRemoteVtSessionIdentifiersEndPos { + _item, _err := BACnetApplicationTagUnsignedIntegerParse(readBuffer) + if _err != nil { + return nil, errors.Wrap(_err, "Error parsing 'listOfRemoteVtSessionIdentifiers' field") + } + listOfRemoteVtSessionIdentifiers = append(listOfRemoteVtSessionIdentifiers, _item) + } + } + if closeErr := readBuffer.CloseContext("listOfRemoteVtSessionIdentifiers", utils.WithRenderAsList(true)); closeErr != nil { + return nil, closeErr } if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestVTClose"); closeErr != nil { @@ -128,7 +170,8 @@ func BACnetConfirmedServiceRequestVTCloseParse(readBuffer utils.ReadBuffer, serv // Create a partially initialized instance _child := &BACnetConfirmedServiceRequestVTClose{ - BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{}, + ListOfRemoteVtSessionIdentifiers: listOfRemoteVtSessionIdentifiers, + BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{}, } _child.BACnetConfirmedServiceRequest.Child = _child return _child, nil @@ -142,6 +185,22 @@ func (m *BACnetConfirmedServiceRequestVTClose) Serialize(writeBuffer utils.Write return pushErr } + // Array Field (listOfRemoteVtSessionIdentifiers) + if m.ListOfRemoteVtSessionIdentifiers != nil { + if pushErr := writeBuffer.PushContext("listOfRemoteVtSessionIdentifiers", utils.WithRenderAsList(true)); pushErr != nil { + return pushErr + } + for _, _element := range m.ListOfRemoteVtSessionIdentifiers { + _elementErr := _element.Serialize(writeBuffer) + if _elementErr != nil { + return errors.Wrap(_elementErr, "Error serializing 'listOfRemoteVtSessionIdentifiers' field") + } + } + if popErr := writeBuffer.PopContext("listOfRemoteVtSessionIdentifiers", utils.WithRenderAsList(true)); popErr != nil { + return popErr + } + } + if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestVTClose"); popErr != nil { return popErr } diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go index fb2addaadf4..b9a18f3fa0d 100644 --- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go +++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go @@ -30,7 +30,7 @@ import ( type BACnetConfirmedServiceRequestVTOpen struct { *BACnetConfirmedServiceRequest VtClass *BACnetVTClassTagged - LocatVtSessionIdentifier *BACnetApplicationTagUnsignedInteger + LocalVtSessionIdentifier *BACnetApplicationTagUnsignedInteger // Arguments. ServiceRequestLength uint16 @@ -41,8 +41,8 @@ type IBACnetConfirmedServiceRequestVTOpen interface { IBACnetConfirmedServiceRequest // GetVtClass returns VtClass (property field) GetVtClass() *BACnetVTClassTagged - // GetLocatVtSessionIdentifier returns LocatVtSessionIdentifier (property field) - GetLocatVtSessionIdentifier() *BACnetApplicationTagUnsignedInteger + // GetLocalVtSessionIdentifier returns LocalVtSessionIdentifier (property field) + GetLocalVtSessionIdentifier() *BACnetApplicationTagUnsignedInteger // GetLengthInBytes returns the length in bytes GetLengthInBytes() uint16 // GetLengthInBits returns the length in bits @@ -81,8 +81,8 @@ func (m *BACnetConfirmedServiceRequestVTOpen) GetVtClass() *BACnetVTClassTagged return m.VtClass } -func (m *BACnetConfirmedServiceRequestVTOpen) GetLocatVtSessionIdentifier() *BACnetApplicationTagUnsignedInteger { - return m.LocatVtSessionIdentifier +func (m *BACnetConfirmedServiceRequestVTOpen) GetLocalVtSessionIdentifier() *BACnetApplicationTagUnsignedInteger { + return m.LocalVtSessionIdentifier } /////////////////////// @@ -91,10 +91,10 @@ func (m *BACnetConfirmedServiceRequestVTOpen) GetLocatVtSessionIdentifier() *BAC /////////////////////////////////////////////////////////// // NewBACnetConfirmedServiceRequestVTOpen factory function for BACnetConfirmedServiceRequestVTOpen -func NewBACnetConfirmedServiceRequestVTOpen(vtClass *BACnetVTClassTagged, locatVtSessionIdentifier *BACnetApplicationTagUnsignedInteger, serviceRequestLength uint16) *BACnetConfirmedServiceRequestVTOpen { +func NewBACnetConfirmedServiceRequestVTOpen(vtClass *BACnetVTClassTagged, localVtSessionIdentifier *BACnetApplicationTagUnsignedInteger, serviceRequestLength uint16) *BACnetConfirmedServiceRequestVTOpen { _result := &BACnetConfirmedServiceRequestVTOpen{ VtClass: vtClass, - LocatVtSessionIdentifier: locatVtSessionIdentifier, + LocalVtSessionIdentifier: localVtSessionIdentifier, BACnetConfirmedServiceRequest: NewBACnetConfirmedServiceRequest(serviceRequestLength), } _result.Child = _result @@ -131,8 +131,8 @@ func (m *BACnetConfirmedServiceRequestVTOpen) GetLengthInBitsConditional(lastIte // Simple field (vtClass) lengthInBits += m.VtClass.GetLengthInBits() - // Simple field (locatVtSessionIdentifier) - lengthInBits += m.LocatVtSessionIdentifier.GetLengthInBits() + // Simple field (localVtSessionIdentifier) + lengthInBits += m.LocalVtSessionIdentifier.GetLengthInBits() return lengthInBits } @@ -163,16 +163,16 @@ func BACnetConfirmedServiceRequestVTOpenParse(readBuffer utils.ReadBuffer, servi return nil, closeErr } - // Simple Field (locatVtSessionIdentifier) - if pullErr := readBuffer.PullContext("locatVtSessionIdentifier"); pullErr != nil { + // Simple Field (localVtSessionIdentifier) + if pullErr := readBuffer.PullContext("localVtSessionIdentifier"); pullErr != nil { return nil, pullErr } - _locatVtSessionIdentifier, _locatVtSessionIdentifierErr := BACnetApplicationTagParse(readBuffer) - if _locatVtSessionIdentifierErr != nil { - return nil, errors.Wrap(_locatVtSessionIdentifierErr, "Error parsing 'locatVtSessionIdentifier' field") + _localVtSessionIdentifier, _localVtSessionIdentifierErr := BACnetApplicationTagParse(readBuffer) + if _localVtSessionIdentifierErr != nil { + return nil, errors.Wrap(_localVtSessionIdentifierErr, "Error parsing 'localVtSessionIdentifier' field") } - locatVtSessionIdentifier := CastBACnetApplicationTagUnsignedInteger(_locatVtSessionIdentifier) - if closeErr := readBuffer.CloseContext("locatVtSessionIdentifier"); closeErr != nil { + localVtSessionIdentifier := CastBACnetApplicationTagUnsignedInteger(_localVtSessionIdentifier) + if closeErr := readBuffer.CloseContext("localVtSessionIdentifier"); closeErr != nil { return nil, closeErr } @@ -183,7 +183,7 @@ func BACnetConfirmedServiceRequestVTOpenParse(readBuffer utils.ReadBuffer, servi // Create a partially initialized instance _child := &BACnetConfirmedServiceRequestVTOpen{ VtClass: CastBACnetVTClassTagged(vtClass), - LocatVtSessionIdentifier: CastBACnetApplicationTagUnsignedInteger(locatVtSessionIdentifier), + LocalVtSessionIdentifier: CastBACnetApplicationTagUnsignedInteger(localVtSessionIdentifier), BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{}, } _child.BACnetConfirmedServiceRequest.Child = _child @@ -210,16 +210,16 @@ func (m *BACnetConfirmedServiceRequestVTOpen) Serialize(writeBuffer utils.WriteB return errors.Wrap(_vtClassErr, "Error serializing 'vtClass' field") } - // Simple Field (locatVtSessionIdentifier) - if pushErr := writeBuffer.PushContext("locatVtSessionIdentifier"); pushErr != nil { + // Simple Field (localVtSessionIdentifier) + if pushErr := writeBuffer.PushContext("localVtSessionIdentifier"); pushErr != nil { return pushErr } - _locatVtSessionIdentifierErr := m.LocatVtSessionIdentifier.Serialize(writeBuffer) - if popErr := writeBuffer.PopContext("locatVtSessionIdentifier"); popErr != nil { + _localVtSessionIdentifierErr := m.LocalVtSessionIdentifier.Serialize(writeBuffer) + if popErr := writeBuffer.PopContext("localVtSessionIdentifier"); popErr != nil { return popErr } - if _locatVtSessionIdentifierErr != nil { - return errors.Wrap(_locatVtSessionIdentifierErr, "Error serializing 'locatVtSessionIdentifier' field") + if _localVtSessionIdentifierErr != nil { + return errors.Wrap(_localVtSessionIdentifierErr, "Error serializing 'localVtSessionIdentifier' field") } if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestVTOpen"); popErr != nil { diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec index ed8be7707ec..08565249df6 100644 --- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec +++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec @@ -496,11 +496,11 @@ ['VT_OPEN' BACnetConfirmedServiceRequestVTOpen [simple BACnetVTClassTagged('0', 'TagClass.APPLICATION_TAGS') vtClass ] - [simple BACnetApplicationTagUnsignedInteger locatVtSessionIdentifier ] + [simple BACnetApplicationTagUnsignedInteger localVtSessionIdentifier ] ] ['VT_CLOSE' BACnetConfirmedServiceRequestVTClose - // TODO: implement me - [validation '1 == 2' "TODO: implement me"] + [array BACnetApplicationTagUnsignedInteger listOfRemoteVtSessionIdentifiers + length '(serviceRequestLength>0)?(serviceRequestLength - 1):0' ] ] ['VT_DATA' BACnetConfirmedServiceRequestVTData // TODO: implement me