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:09:59 UTC
[plc4x] 06/14: feat(bacnet): implemented BACnetNotificationParametersChangeOfCharacterString
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 c2d50175496164bfcbc354f938668b3264ccb292
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue May 24 12:42:26 2022 +0200
feat(bacnet): implemented BACnetNotificationParametersChangeOfCharacterString
---
.../model/BACnetNotificationParameters.go | 2 +
...otificationParametersChangeOfCharacterString.go | 353 +++++++++++++++++++++
.../resources/protocols/bacnetip/bacnetip.mspec | 12 +
3 files changed, 367 insertions(+)
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParameters.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParameters.go
index 700b2c4485..c8e7024a74 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParameters.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParameters.go
@@ -226,6 +226,8 @@ func BACnetNotificationParametersParse(readBuffer utils.ReadBuffer, tagNumber ui
_child, typeSwitchError = BACnetNotificationParametersSignedOutOfRangeParse(readBuffer, tagNumber, objectType, peekedTagNumber)
case peekedTagNumber == uint8(16): // BACnetNotificationParametersUnsignedOutOfRange
_child, typeSwitchError = BACnetNotificationParametersUnsignedOutOfRangeParse(readBuffer, tagNumber, objectType, peekedTagNumber)
+ case peekedTagNumber == uint8(17): // BACnetNotificationParametersChangeOfCharacterString
+ _child, typeSwitchError = BACnetNotificationParametersChangeOfCharacterStringParse(readBuffer, tagNumber, objectType, peekedTagNumber)
case true: // BACnetNotificationParametersUnmapped
_child, typeSwitchError = BACnetNotificationParametersUnmappedParse(readBuffer, tagNumber, objectType)
default:
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfCharacterString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfCharacterString.go
new file mode 100644
index 0000000000..77f84049bf
--- /dev/null
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfCharacterString.go
@@ -0,0 +1,353 @@
+/*
+ * 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/spi/utils"
+ "github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// BACnetNotificationParametersChangeOfCharacterString is the data-structure of this message
+type BACnetNotificationParametersChangeOfCharacterString struct {
+ *BACnetNotificationParameters
+ InnerOpeningTag *BACnetOpeningTag
+ ChangedValue *BACnetContextTagCharacterString
+ StatusFlags *BACnetStatusFlags
+ AlarmValue *BACnetContextTagCharacterString
+ InnerClosingTag *BACnetClosingTag
+
+ // Arguments.
+ TagNumber uint8
+ ObjectType BACnetObjectType
+}
+
+// IBACnetNotificationParametersChangeOfCharacterString is the corresponding interface of BACnetNotificationParametersChangeOfCharacterString
+type IBACnetNotificationParametersChangeOfCharacterString interface {
+ IBACnetNotificationParameters
+ // GetInnerOpeningTag returns InnerOpeningTag (property field)
+ GetInnerOpeningTag() *BACnetOpeningTag
+ // GetChangedValue returns ChangedValue (property field)
+ GetChangedValue() *BACnetContextTagCharacterString
+ // GetStatusFlags returns StatusFlags (property field)
+ GetStatusFlags() *BACnetStatusFlags
+ // GetAlarmValue returns AlarmValue (property field)
+ GetAlarmValue() *BACnetContextTagCharacterString
+ // GetInnerClosingTag returns InnerClosingTag (property field)
+ GetInnerClosingTag() *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 discriminator values.
+///////////////////////
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) InitializeParent(parent *BACnetNotificationParameters, openingTag *BACnetOpeningTag, peekedTagHeader *BACnetTagHeader, closingTag *BACnetClosingTag) {
+ m.BACnetNotificationParameters.OpeningTag = openingTag
+ m.BACnetNotificationParameters.PeekedTagHeader = peekedTagHeader
+ m.BACnetNotificationParameters.ClosingTag = closingTag
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetParent() *BACnetNotificationParameters {
+ return m.BACnetNotificationParameters
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetInnerOpeningTag() *BACnetOpeningTag {
+ return m.InnerOpeningTag
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetChangedValue() *BACnetContextTagCharacterString {
+ return m.ChangedValue
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetStatusFlags() *BACnetStatusFlags {
+ return m.StatusFlags
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetAlarmValue() *BACnetContextTagCharacterString {
+ return m.AlarmValue
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetInnerClosingTag() *BACnetClosingTag {
+ return m.InnerClosingTag
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewBACnetNotificationParametersChangeOfCharacterString factory function for BACnetNotificationParametersChangeOfCharacterString
+func NewBACnetNotificationParametersChangeOfCharacterString(innerOpeningTag *BACnetOpeningTag, changedValue *BACnetContextTagCharacterString, statusFlags *BACnetStatusFlags, alarmValue *BACnetContextTagCharacterString, innerClosingTag *BACnetClosingTag, openingTag *BACnetOpeningTag, peekedTagHeader *BACnetTagHeader, closingTag *BACnetClosingTag, tagNumber uint8, objectType BACnetObjectType) *BACnetNotificationParametersChangeOfCharacterString {
+ _result := &BACnetNotificationParametersChangeOfCharacterString{
+ InnerOpeningTag: innerOpeningTag,
+ ChangedValue: changedValue,
+ StatusFlags: statusFlags,
+ AlarmValue: alarmValue,
+ InnerClosingTag: innerClosingTag,
+ BACnetNotificationParameters: NewBACnetNotificationParameters(openingTag, peekedTagHeader, closingTag, tagNumber, objectType),
+ }
+ _result.Child = _result
+ return _result
+}
+
+func CastBACnetNotificationParametersChangeOfCharacterString(structType interface{}) *BACnetNotificationParametersChangeOfCharacterString {
+ if casted, ok := structType.(BACnetNotificationParametersChangeOfCharacterString); ok {
+ return &casted
+ }
+ if casted, ok := structType.(*BACnetNotificationParametersChangeOfCharacterString); ok {
+ return casted
+ }
+ if casted, ok := structType.(BACnetNotificationParameters); ok {
+ return CastBACnetNotificationParametersChangeOfCharacterString(casted.Child)
+ }
+ if casted, ok := structType.(*BACnetNotificationParameters); ok {
+ return CastBACnetNotificationParametersChangeOfCharacterString(casted.Child)
+ }
+ return nil
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetTypeName() string {
+ return "BACnetNotificationParametersChangeOfCharacterString"
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetLengthInBits() uint16 {
+ return m.GetLengthInBitsConditional(false)
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetLengthInBitsConditional(lastItem bool) uint16 {
+ lengthInBits := uint16(m.GetParentLengthInBits())
+
+ // Simple field (innerOpeningTag)
+ lengthInBits += m.InnerOpeningTag.GetLengthInBits()
+
+ // Simple field (changedValue)
+ lengthInBits += m.ChangedValue.GetLengthInBits()
+
+ // Simple field (statusFlags)
+ lengthInBits += m.StatusFlags.GetLengthInBits()
+
+ // Simple field (alarmValue)
+ lengthInBits += m.AlarmValue.GetLengthInBits()
+
+ // Simple field (innerClosingTag)
+ lengthInBits += m.InnerClosingTag.GetLengthInBits()
+
+ return lengthInBits
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) GetLengthInBytes() uint16 {
+ return m.GetLengthInBits() / 8
+}
+
+func BACnetNotificationParametersChangeOfCharacterStringParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, peekedTagNumber uint8) (*BACnetNotificationParametersChangeOfCharacterString, error) {
+ positionAware := readBuffer
+ _ = positionAware
+ if pullErr := readBuffer.PullContext("BACnetNotificationParametersChangeOfCharacterString"); pullErr != nil {
+ return nil, pullErr
+ }
+ currentPos := positionAware.GetPos()
+ _ = currentPos
+
+ // Simple Field (innerOpeningTag)
+ if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
+ return nil, pullErr
+ }
+ _innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
+ if _innerOpeningTagErr != nil {
+ return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
+ }
+ innerOpeningTag := CastBACnetOpeningTag(_innerOpeningTag)
+ if closeErr := readBuffer.CloseContext("innerOpeningTag"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (changedValue)
+ if pullErr := readBuffer.PullContext("changedValue"); pullErr != nil {
+ return nil, pullErr
+ }
+ _changedValue, _changedValueErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_CHARACTER_STRING))
+ if _changedValueErr != nil {
+ return nil, errors.Wrap(_changedValueErr, "Error parsing 'changedValue' field")
+ }
+ changedValue := CastBACnetContextTagCharacterString(_changedValue)
+ if closeErr := readBuffer.CloseContext("changedValue"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (statusFlags)
+ if pullErr := readBuffer.PullContext("statusFlags"); pullErr != nil {
+ return nil, pullErr
+ }
+ _statusFlags, _statusFlagsErr := BACnetStatusFlagsParse(readBuffer, uint8(uint8(1)))
+ if _statusFlagsErr != nil {
+ return nil, errors.Wrap(_statusFlagsErr, "Error parsing 'statusFlags' field")
+ }
+ statusFlags := CastBACnetStatusFlags(_statusFlags)
+ if closeErr := readBuffer.CloseContext("statusFlags"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (alarmValue)
+ if pullErr := readBuffer.PullContext("alarmValue"); pullErr != nil {
+ return nil, pullErr
+ }
+ _alarmValue, _alarmValueErr := BACnetContextTagParse(readBuffer, uint8(uint8(2)), BACnetDataType(BACnetDataType_CHARACTER_STRING))
+ if _alarmValueErr != nil {
+ return nil, errors.Wrap(_alarmValueErr, "Error parsing 'alarmValue' field")
+ }
+ alarmValue := CastBACnetContextTagCharacterString(_alarmValue)
+ if closeErr := readBuffer.CloseContext("alarmValue"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Simple Field (innerClosingTag)
+ if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
+ return nil, pullErr
+ }
+ _innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
+ 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
+ }
+
+ if closeErr := readBuffer.CloseContext("BACnetNotificationParametersChangeOfCharacterString"); closeErr != nil {
+ return nil, closeErr
+ }
+
+ // Create a partially initialized instance
+ _child := &BACnetNotificationParametersChangeOfCharacterString{
+ InnerOpeningTag: CastBACnetOpeningTag(innerOpeningTag),
+ ChangedValue: CastBACnetContextTagCharacterString(changedValue),
+ StatusFlags: CastBACnetStatusFlags(statusFlags),
+ AlarmValue: CastBACnetContextTagCharacterString(alarmValue),
+ InnerClosingTag: CastBACnetClosingTag(innerClosingTag),
+ BACnetNotificationParameters: &BACnetNotificationParameters{},
+ }
+ _child.BACnetNotificationParameters.Child = _child
+ return _child, nil
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) Serialize(writeBuffer utils.WriteBuffer) error {
+ positionAware := writeBuffer
+ _ = positionAware
+ ser := func() error {
+ if pushErr := writeBuffer.PushContext("BACnetNotificationParametersChangeOfCharacterString"); pushErr != nil {
+ return pushErr
+ }
+
+ // Simple Field (innerOpeningTag)
+ if pushErr := writeBuffer.PushContext("innerOpeningTag"); pushErr != nil {
+ return pushErr
+ }
+ _innerOpeningTagErr := m.InnerOpeningTag.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("innerOpeningTag"); popErr != nil {
+ return popErr
+ }
+ if _innerOpeningTagErr != nil {
+ return errors.Wrap(_innerOpeningTagErr, "Error serializing 'innerOpeningTag' field")
+ }
+
+ // Simple Field (changedValue)
+ if pushErr := writeBuffer.PushContext("changedValue"); pushErr != nil {
+ return pushErr
+ }
+ _changedValueErr := m.ChangedValue.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("changedValue"); popErr != nil {
+ return popErr
+ }
+ if _changedValueErr != nil {
+ return errors.Wrap(_changedValueErr, "Error serializing 'changedValue' field")
+ }
+
+ // Simple Field (statusFlags)
+ if pushErr := writeBuffer.PushContext("statusFlags"); pushErr != nil {
+ return pushErr
+ }
+ _statusFlagsErr := m.StatusFlags.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("statusFlags"); popErr != nil {
+ return popErr
+ }
+ if _statusFlagsErr != nil {
+ return errors.Wrap(_statusFlagsErr, "Error serializing 'statusFlags' field")
+ }
+
+ // Simple Field (alarmValue)
+ if pushErr := writeBuffer.PushContext("alarmValue"); pushErr != nil {
+ return pushErr
+ }
+ _alarmValueErr := m.AlarmValue.Serialize(writeBuffer)
+ if popErr := writeBuffer.PopContext("alarmValue"); popErr != nil {
+ return popErr
+ }
+ if _alarmValueErr != nil {
+ return errors.Wrap(_alarmValueErr, "Error serializing 'alarmValue' field")
+ }
+
+ // 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")
+ }
+
+ if popErr := writeBuffer.PopContext("BACnetNotificationParametersChangeOfCharacterString"); popErr != nil {
+ return popErr
+ }
+ return nil
+ }
+ return m.SerializeParent(writeBuffer, m, ser)
+}
+
+func (m *BACnetNotificationParametersChangeOfCharacterString) 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/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index bddfa82ae8..8f771cc66c 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -1431,6 +1431,18 @@
[simple BACnetClosingTag('peekedTagNumber')
innerClosingTag ]
]
+ ['17' BACnetNotificationParametersChangeOfCharacterString(uint 8 peekedTagNumber)
+ [simple BACnetOpeningTag('peekedTagNumber')
+ innerOpeningTag ]
+ [simple BACnetContextTagCharacterString('0', 'BACnetDataType.CHARACTER_STRING')
+ changedValue ]
+ [simple BACnetStatusFlags('1')
+ statusFlags ]
+ [simple BACnetContextTagCharacterString('2', 'BACnetDataType.CHARACTER_STRING')
+ alarmValue ]
+ [simple BACnetClosingTag('peekedTagNumber')
+ innerClosingTag ]
+ ]
// TODO: implement other cases
[BACnetNotificationParametersUnmapped
// TODO: implement me