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/10 15:24:14 UTC

[plc4x] branch develop updated: feat(bacnet): implemented BACnetConfirmedServiceRequestAcknowledgeAlarm

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 6a899a1347 feat(bacnet): implemented BACnetConfirmedServiceRequestAcknowledgeAlarm
6a899a1347 is described below

commit 6a899a134795eb8f117fac0d0d78be9c4ef322d6
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue May 10 17:24:06 2022 +0200

    feat(bacnet): implemented BACnetConfirmedServiceRequestAcknowledgeAlarm
---
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go | 239 ++++++++++++++++++++-
 .../resources/protocols/bacnetip/bacnetip.mspec    |   9 +-
 2 files changed, 243 insertions(+), 5 deletions(-)

diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
index 08e211c725..d2aa18e1e7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
@@ -21,6 +21,7 @@ package model
 
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"github.com/pkg/errors"
 )
 
 // Code generated by code-generation. DO NOT EDIT.
@@ -28,6 +29,12 @@ import (
 // BACnetConfirmedServiceRequestAcknowledgeAlarm is the data-structure of this message
 type BACnetConfirmedServiceRequestAcknowledgeAlarm struct {
 	*BACnetConfirmedServiceRequest
+	AcknowledgingProcessIdentifier *BACnetContextTagUnsignedInteger
+	EventObjectIdentifier          *BACnetContextTagObjectIdentifier
+	EventStateAcknowledged         *BACnetContextTagEventState
+	Timestamp                      *BACnetTimeStamp
+	AcknowledgmentSource           *BACnetContextTagCharacterString
+	TimeOfAcknowledgment           *BACnetTimeStamp
 
 	// Arguments.
 	ServiceRequestLength uint16
@@ -36,6 +43,18 @@ type BACnetConfirmedServiceRequestAcknowledgeAlarm struct {
 // IBACnetConfirmedServiceRequestAcknowledgeAlarm is the corresponding interface of BACnetConfirmedServiceRequestAcknowledgeAlarm
 type IBACnetConfirmedServiceRequestAcknowledgeAlarm interface {
 	IBACnetConfirmedServiceRequest
+	// GetAcknowledgingProcessIdentifier returns AcknowledgingProcessIdentifier (property field)
+	GetAcknowledgingProcessIdentifier() *BACnetContextTagUnsignedInteger
+	// GetEventObjectIdentifier returns EventObjectIdentifier (property field)
+	GetEventObjectIdentifier() *BACnetContextTagObjectIdentifier
+	// GetEventStateAcknowledged returns EventStateAcknowledged (property field)
+	GetEventStateAcknowledged() *BACnetContextTagEventState
+	// GetTimestamp returns Timestamp (property field)
+	GetTimestamp() *BACnetTimeStamp
+	// GetAcknowledgmentSource returns AcknowledgmentSource (property field)
+	GetAcknowledgmentSource() *BACnetContextTagCharacterString
+	// GetTimeOfAcknowledgment returns TimeOfAcknowledgment (property field)
+	GetTimeOfAcknowledgment() *BACnetTimeStamp
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -65,10 +84,50 @@ func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetParent() *BACnetConfi
 	return m.BACnetConfirmedServiceRequest
 }
 
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetAcknowledgingProcessIdentifier() *BACnetContextTagUnsignedInteger {
+	return m.AcknowledgingProcessIdentifier
+}
+
+func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetEventObjectIdentifier() *BACnetContextTagObjectIdentifier {
+	return m.EventObjectIdentifier
+}
+
+func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetEventStateAcknowledged() *BACnetContextTagEventState {
+	return m.EventStateAcknowledged
+}
+
+func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetTimestamp() *BACnetTimeStamp {
+	return m.Timestamp
+}
+
+func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetAcknowledgmentSource() *BACnetContextTagCharacterString {
+	return m.AcknowledgmentSource
+}
+
+func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetTimeOfAcknowledgment() *BACnetTimeStamp {
+	return m.TimeOfAcknowledgment
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
 // NewBACnetConfirmedServiceRequestAcknowledgeAlarm factory function for BACnetConfirmedServiceRequestAcknowledgeAlarm
-func NewBACnetConfirmedServiceRequestAcknowledgeAlarm(serviceRequestLength uint16) *BACnetConfirmedServiceRequestAcknowledgeAlarm {
+func NewBACnetConfirmedServiceRequestAcknowledgeAlarm(acknowledgingProcessIdentifier *BACnetContextTagUnsignedInteger, eventObjectIdentifier *BACnetContextTagObjectIdentifier, eventStateAcknowledged *BACnetContextTagEventState, timestamp *BACnetTimeStamp, acknowledgmentSource *BACnetContextTagCharacterString, timeOfAcknowledgment *BACnetTimeStamp, serviceRequestLength uint16) *BACnetConfirmedServiceRequestAcknowledgeAlarm {
 	_result := &BACnetConfirmedServiceRequestAcknowledgeAlarm{
-		BACnetConfirmedServiceRequest: NewBACnetConfirmedServiceRequest(serviceRequestLength),
+		AcknowledgingProcessIdentifier: acknowledgingProcessIdentifier,
+		EventObjectIdentifier:          eventObjectIdentifier,
+		EventStateAcknowledged:         eventStateAcknowledged,
+		Timestamp:                      timestamp,
+		AcknowledgmentSource:           acknowledgmentSource,
+		TimeOfAcknowledgment:           timeOfAcknowledgment,
+		BACnetConfirmedServiceRequest:  NewBACnetConfirmedServiceRequest(serviceRequestLength),
 	}
 	_result.Child = _result
 	return _result
@@ -101,6 +160,24 @@ func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetLengthInBits() uint16
 func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.GetParentLengthInBits())
 
+	// Simple field (acknowledgingProcessIdentifier)
+	lengthInBits += m.AcknowledgingProcessIdentifier.GetLengthInBits()
+
+	// Simple field (eventObjectIdentifier)
+	lengthInBits += m.EventObjectIdentifier.GetLengthInBits()
+
+	// Simple field (eventStateAcknowledged)
+	lengthInBits += m.EventStateAcknowledged.GetLengthInBits()
+
+	// Simple field (timestamp)
+	lengthInBits += m.Timestamp.GetLengthInBits()
+
+	// Simple field (acknowledgmentSource)
+	lengthInBits += m.AcknowledgmentSource.GetLengthInBits()
+
+	// Simple field (timeOfAcknowledgment)
+	lengthInBits += m.TimeOfAcknowledgment.GetLengthInBits()
+
 	return lengthInBits
 }
 
@@ -115,13 +192,97 @@ func BACnetConfirmedServiceRequestAcknowledgeAlarmParse(readBuffer utils.ReadBuf
 	currentPos := readBuffer.GetPos()
 	_ = currentPos
 
+	// Simple Field (acknowledgingProcessIdentifier)
+	if pullErr := readBuffer.PullContext("acknowledgingProcessIdentifier"); pullErr != nil {
+		return nil, pullErr
+	}
+	_acknowledgingProcessIdentifier, _acknowledgingProcessIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_UNSIGNED_INTEGER))
+	if _acknowledgingProcessIdentifierErr != nil {
+		return nil, errors.Wrap(_acknowledgingProcessIdentifierErr, "Error parsing 'acknowledgingProcessIdentifier' field")
+	}
+	acknowledgingProcessIdentifier := CastBACnetContextTagUnsignedInteger(_acknowledgingProcessIdentifier)
+	if closeErr := readBuffer.CloseContext("acknowledgingProcessIdentifier"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Simple Field (eventObjectIdentifier)
+	if pullErr := readBuffer.PullContext("eventObjectIdentifier"); pullErr != nil {
+		return nil, pullErr
+	}
+	_eventObjectIdentifier, _eventObjectIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BACNET_OBJECT_IDENTIFIER))
+	if _eventObjectIdentifierErr != nil {
+		return nil, errors.Wrap(_eventObjectIdentifierErr, "Error parsing 'eventObjectIdentifier' field")
+	}
+	eventObjectIdentifier := CastBACnetContextTagObjectIdentifier(_eventObjectIdentifier)
+	if closeErr := readBuffer.CloseContext("eventObjectIdentifier"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Simple Field (eventStateAcknowledged)
+	if pullErr := readBuffer.PullContext("eventStateAcknowledged"); pullErr != nil {
+		return nil, pullErr
+	}
+	_eventStateAcknowledged, _eventStateAcknowledgedErr := BACnetContextTagParse(readBuffer, uint8(uint8(2)), BACnetDataType(BACnetDataType_EVENT_STATE))
+	if _eventStateAcknowledgedErr != nil {
+		return nil, errors.Wrap(_eventStateAcknowledgedErr, "Error parsing 'eventStateAcknowledged' field")
+	}
+	eventStateAcknowledged := CastBACnetContextTagEventState(_eventStateAcknowledged)
+	if closeErr := readBuffer.CloseContext("eventStateAcknowledged"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Simple Field (timestamp)
+	if pullErr := readBuffer.PullContext("timestamp"); pullErr != nil {
+		return nil, pullErr
+	}
+	_timestamp, _timestampErr := BACnetTimeStampParse(readBuffer, uint8(uint8(3)))
+	if _timestampErr != nil {
+		return nil, errors.Wrap(_timestampErr, "Error parsing 'timestamp' field")
+	}
+	timestamp := CastBACnetTimeStamp(_timestamp)
+	if closeErr := readBuffer.CloseContext("timestamp"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Simple Field (acknowledgmentSource)
+	if pullErr := readBuffer.PullContext("acknowledgmentSource"); pullErr != nil {
+		return nil, pullErr
+	}
+	_acknowledgmentSource, _acknowledgmentSourceErr := BACnetContextTagParse(readBuffer, uint8(uint8(4)), BACnetDataType(BACnetDataType_CHARACTER_STRING))
+	if _acknowledgmentSourceErr != nil {
+		return nil, errors.Wrap(_acknowledgmentSourceErr, "Error parsing 'acknowledgmentSource' field")
+	}
+	acknowledgmentSource := CastBACnetContextTagCharacterString(_acknowledgmentSource)
+	if closeErr := readBuffer.CloseContext("acknowledgmentSource"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Simple Field (timeOfAcknowledgment)
+	if pullErr := readBuffer.PullContext("timeOfAcknowledgment"); pullErr != nil {
+		return nil, pullErr
+	}
+	_timeOfAcknowledgment, _timeOfAcknowledgmentErr := BACnetTimeStampParse(readBuffer, uint8(uint8(5)))
+	if _timeOfAcknowledgmentErr != nil {
+		return nil, errors.Wrap(_timeOfAcknowledgmentErr, "Error parsing 'timeOfAcknowledgment' field")
+	}
+	timeOfAcknowledgment := CastBACnetTimeStamp(_timeOfAcknowledgment)
+	if closeErr := readBuffer.CloseContext("timeOfAcknowledgment"); closeErr != nil {
+		return nil, closeErr
+	}
+
 	if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestAcknowledgeAlarm"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create a partially initialized instance
 	_child := &BACnetConfirmedServiceRequestAcknowledgeAlarm{
-		BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
+		AcknowledgingProcessIdentifier: CastBACnetContextTagUnsignedInteger(acknowledgingProcessIdentifier),
+		EventObjectIdentifier:          CastBACnetContextTagObjectIdentifier(eventObjectIdentifier),
+		EventStateAcknowledged:         CastBACnetContextTagEventState(eventStateAcknowledged),
+		Timestamp:                      CastBACnetTimeStamp(timestamp),
+		AcknowledgmentSource:           CastBACnetContextTagCharacterString(acknowledgmentSource),
+		TimeOfAcknowledgment:           CastBACnetTimeStamp(timeOfAcknowledgment),
+		BACnetConfirmedServiceRequest:  &BACnetConfirmedServiceRequest{},
 	}
 	_child.BACnetConfirmedServiceRequest.Child = _child
 	return _child, nil
@@ -133,6 +294,78 @@ func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) Serialize(writeBuffer ut
 			return pushErr
 		}
 
+		// Simple Field (acknowledgingProcessIdentifier)
+		if pushErr := writeBuffer.PushContext("acknowledgingProcessIdentifier"); pushErr != nil {
+			return pushErr
+		}
+		_acknowledgingProcessIdentifierErr := m.AcknowledgingProcessIdentifier.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("acknowledgingProcessIdentifier"); popErr != nil {
+			return popErr
+		}
+		if _acknowledgingProcessIdentifierErr != nil {
+			return errors.Wrap(_acknowledgingProcessIdentifierErr, "Error serializing 'acknowledgingProcessIdentifier' field")
+		}
+
+		// Simple Field (eventObjectIdentifier)
+		if pushErr := writeBuffer.PushContext("eventObjectIdentifier"); pushErr != nil {
+			return pushErr
+		}
+		_eventObjectIdentifierErr := m.EventObjectIdentifier.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("eventObjectIdentifier"); popErr != nil {
+			return popErr
+		}
+		if _eventObjectIdentifierErr != nil {
+			return errors.Wrap(_eventObjectIdentifierErr, "Error serializing 'eventObjectIdentifier' field")
+		}
+
+		// Simple Field (eventStateAcknowledged)
+		if pushErr := writeBuffer.PushContext("eventStateAcknowledged"); pushErr != nil {
+			return pushErr
+		}
+		_eventStateAcknowledgedErr := m.EventStateAcknowledged.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("eventStateAcknowledged"); popErr != nil {
+			return popErr
+		}
+		if _eventStateAcknowledgedErr != nil {
+			return errors.Wrap(_eventStateAcknowledgedErr, "Error serializing 'eventStateAcknowledged' field")
+		}
+
+		// Simple Field (timestamp)
+		if pushErr := writeBuffer.PushContext("timestamp"); pushErr != nil {
+			return pushErr
+		}
+		_timestampErr := m.Timestamp.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("timestamp"); popErr != nil {
+			return popErr
+		}
+		if _timestampErr != nil {
+			return errors.Wrap(_timestampErr, "Error serializing 'timestamp' field")
+		}
+
+		// Simple Field (acknowledgmentSource)
+		if pushErr := writeBuffer.PushContext("acknowledgmentSource"); pushErr != nil {
+			return pushErr
+		}
+		_acknowledgmentSourceErr := m.AcknowledgmentSource.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("acknowledgmentSource"); popErr != nil {
+			return popErr
+		}
+		if _acknowledgmentSourceErr != nil {
+			return errors.Wrap(_acknowledgmentSourceErr, "Error serializing 'acknowledgmentSource' field")
+		}
+
+		// Simple Field (timeOfAcknowledgment)
+		if pushErr := writeBuffer.PushContext("timeOfAcknowledgment"); pushErr != nil {
+			return pushErr
+		}
+		_timeOfAcknowledgmentErr := m.TimeOfAcknowledgment.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("timeOfAcknowledgment"); popErr != nil {
+			return popErr
+		}
+		if _timeOfAcknowledgmentErr != nil {
+			return errors.Wrap(_timeOfAcknowledgmentErr, "Error serializing 'timeOfAcknowledgment' field")
+		}
+
 		if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestAcknowledgeAlarm"); 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 11f0456ed6..81aad98d99 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -307,11 +307,16 @@
         // Alarm and Event Services
 
         ['ACKNOWLEDGE_ALARM' BACnetConfirmedServiceRequestAcknowledgeAlarm
-            // TODO: implement me
+            [simple   BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER')          acknowledgingProcessIdentifier ]
+            [simple   BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') eventObjectIdentifier          ]
+            [simple   BACnetContextTagEventState('2', 'BACnetDataType.EVENT_STATE')                    eventStateAcknowledged         ]
+            [simple   BACnetTimeStamp('3')                                                             timestamp                      ]
+            [simple   BACnetContextTagCharacterString('4', 'BACnetDataType.CHARACTER_STRING')          acknowledgmentSource           ]
+            [simple   BACnetTimeStamp('5')                                                             timeOfAcknowledgment           ]
         ]
         ['CONFIRMED_COV_NOTIFICATION' BACnetConfirmedServiceRequestConfirmedCOVNotification
             [simple   BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER')          subscriberProcessIdentifier ]
-            [simple   BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') initiatingDeviceIdentifier   ]
+            [simple   BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') initiatingDeviceIdentifier  ]
             [simple   BACnetContextTagObjectIdentifier('2', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') monitoredObjectIdentifier   ]
             [simple   BACnetContextTagUnsignedInteger('3', 'BACnetDataType.UNSIGNED_INTEGER')          lifetimeInSeconds           ]
             [simple   BACnetPropertyValues('4', 'monitoredObjectIdentifier.objectType')                listOfValues                ]