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/18 13:31:25 UTC

[plc4x] branch develop updated: feat(bacnet): implemented support for BACnetConstructedDataLifeSafetyStateEntry

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 675fb09ab2 feat(bacnet): implemented support for BACnetConstructedDataLifeSafetyStateEntry
675fb09ab2 is described below

commit 675fb09ab2f3ba90554b59cbf087f0635b6ff8a2
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed May 18 15:31:17 2022 +0200

    feat(bacnet): implemented support for BACnetConstructedDataLifeSafetyStateEntry
---
 .../plc4go/bacnetip/readwrite/ParserHelper.go      |   4 +-
 .../plc4go/bacnetip/readwrite/XmlParserHelper.go   |   4 +-
 .../readwrite/model/BACnetConstructedData.go       |   4 +
 .../BACnetConstructedDataLifeSafetyAlarmValues.go  |  14 +--
 ...etConstructedDataLifeSafetyPointAlarmValues.go} |  70 +++++++-------
 ...etConstructedDataLifeSafetyPointFaultValues.go} | 102 ++++++++++-----------
 ...> BACnetConstructedDataLifeSafetyStateEntry.go} |  54 +++++------
 .../resources/protocols/bacnetip/bacnetip.mspec    |  15 ++-
 8 files changed, 141 insertions(+), 126 deletions(-)

diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
index 7024fdccec..9a0d4e868e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
@@ -243,8 +243,6 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetTimeStampsEnclosedParse(io, tagNumber)
-	case "BACnetConstructedDataLifeSafetyAlarmValuesEntry":
-		return model.BACnetConstructedDataLifeSafetyAlarmValuesEntryParse(io)
 	case "BACnetConfirmedServiceRequest":
 		serviceRequestLength, err := utils.StrToUint16(arguments[0])
 		if err != nil {
@@ -339,6 +337,8 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsParse(io)
 	case "BACnetConstructedDataAcceptedModesEntry":
 		return model.BACnetConstructedDataAcceptedModesEntryParse(io)
+	case "BACnetConstructedDataLifeSafetyStateEntry":
+		return model.BACnetConstructedDataLifeSafetyStateEntryParse(io)
 	case "BACnetWriteAccessSpecification":
 		return model.BACnetWriteAccessSpecificationParse(io)
 	case "BACnetServiceAck":
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
index 50a64c7901..f12d9e0e24 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
@@ -280,8 +280,6 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetTimeStampsEnclosedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
-	case "BACnetConstructedDataLifeSafetyAlarmValuesEntry":
-		return model.BACnetConstructedDataLifeSafetyAlarmValuesEntryParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetConfirmedServiceRequest":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 16)
 		if err != nil {
@@ -388,6 +386,8 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetConstructedDataAcceptedModesEntry":
 		return model.BACnetConstructedDataAcceptedModesEntryParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+	case "BACnetConstructedDataLifeSafetyStateEntry":
+		return model.BACnetConstructedDataLifeSafetyStateEntryParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetWriteAccessSpecification":
 		return model.BACnetWriteAccessSpecificationParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetServiceAck":
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
index 2a0f39e985..2bf333c4ec 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
@@ -189,8 +189,12 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataLoopActionParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
 	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_ACTION: // BACnetConstructedDataAction
 		_child, typeSwitchError = BACnetConstructedDataActionParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
+	case objectType == BACnetObjectType_LIFE_SAFETY_POINT && propertyIdentifierEnum == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataLifeSafetyPointAlarmValues
+		_child, typeSwitchError = BACnetConstructedDataLifeSafetyPointAlarmValuesParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
 	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_EVENT_TIME_STAMPS: // BACnetConstructedDataEventTimestamps
 		_child, typeSwitchError = BACnetConstructedDataEventTimestampsParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
+	case objectType == BACnetObjectType_LIFE_SAFETY_POINT && propertyIdentifierEnum == BACnetPropertyIdentifier_FAULT_VALUES: // BACnetConstructedDataLifeSafetyPointFaultValues
+		_child, typeSwitchError = BACnetConstructedDataLifeSafetyPointFaultValuesParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
 	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_LIFE_SAFETY_ALARM_VALUES: // BACnetConstructedDataLifeSafetyAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
 	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_LIST_OF_OBJECT_PROPERTY_REFERENCES: // BACnetConstructedDataListOfObjectPropertyReferences
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
index a49375c861..9f7258070d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
@@ -29,7 +29,7 @@ import (
 // BACnetConstructedDataLifeSafetyAlarmValues is the data-structure of this message
 type BACnetConstructedDataLifeSafetyAlarmValues struct {
 	*BACnetConstructedData
-	AlarmValues []*BACnetConstructedDataLifeSafetyAlarmValuesEntry
+	AlarmValues []*BACnetConstructedDataLifeSafetyStateEntry
 
 	// Arguments.
 	TagNumber                  uint8
@@ -40,7 +40,7 @@ type BACnetConstructedDataLifeSafetyAlarmValues struct {
 type IBACnetConstructedDataLifeSafetyAlarmValues interface {
 	IBACnetConstructedData
 	// GetAlarmValues returns AlarmValues (property field)
-	GetAlarmValues() []*BACnetConstructedDataLifeSafetyAlarmValuesEntry
+	GetAlarmValues() []*BACnetConstructedDataLifeSafetyStateEntry
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -77,7 +77,7 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetParent() *BACnetConstruc
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetConstructedDataLifeSafetyAlarmValuesEntry {
+func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetConstructedDataLifeSafetyStateEntry {
 	return m.AlarmValues
 }
 
@@ -87,7 +87,7 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetC
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataLifeSafetyAlarmValues factory function for BACnetConstructedDataLifeSafetyAlarmValues
-func NewBACnetConstructedDataLifeSafetyAlarmValues(alarmValues []*BACnetConstructedDataLifeSafetyAlarmValuesEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyAlarmValues {
+func NewBACnetConstructedDataLifeSafetyAlarmValues(alarmValues []*BACnetConstructedDataLifeSafetyStateEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyAlarmValues {
 	_result := &BACnetConstructedDataLifeSafetyAlarmValues{
 		AlarmValues:           alarmValues,
 		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
@@ -151,14 +151,14 @@ func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer
 		return nil, pullErr
 	}
 	// Terminated array
-	alarmValues := make([]*BACnetConstructedDataLifeSafetyAlarmValuesEntry, 0)
+	alarmValues := make([]*BACnetConstructedDataLifeSafetyStateEntry, 0)
 	{
 		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetConstructedDataLifeSafetyAlarmValuesEntryParse(readBuffer)
+			_item, _err := BACnetConstructedDataLifeSafetyStateEntryParse(readBuffer)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'alarmValues' field")
 			}
-			alarmValues = append(alarmValues, CastBACnetConstructedDataLifeSafetyAlarmValuesEntry(_item))
+			alarmValues = append(alarmValues, CastBACnetConstructedDataLifeSafetyStateEntry(_item))
 
 		}
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointAlarmValues.go
similarity index 61%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointAlarmValues.go
index a49375c861..81f3b9578b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointAlarmValues.go
@@ -26,21 +26,21 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetConstructedDataLifeSafetyAlarmValues is the data-structure of this message
-type BACnetConstructedDataLifeSafetyAlarmValues struct {
+// BACnetConstructedDataLifeSafetyPointAlarmValues is the data-structure of this message
+type BACnetConstructedDataLifeSafetyPointAlarmValues struct {
 	*BACnetConstructedData
-	AlarmValues []*BACnetConstructedDataLifeSafetyAlarmValuesEntry
+	AlarmValues []*BACnetConstructedDataLifeSafetyStateEntry
 
 	// Arguments.
 	TagNumber                  uint8
 	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
 }
 
-// IBACnetConstructedDataLifeSafetyAlarmValues is the corresponding interface of BACnetConstructedDataLifeSafetyAlarmValues
-type IBACnetConstructedDataLifeSafetyAlarmValues interface {
+// IBACnetConstructedDataLifeSafetyPointAlarmValues is the corresponding interface of BACnetConstructedDataLifeSafetyPointAlarmValues
+type IBACnetConstructedDataLifeSafetyPointAlarmValues interface {
 	IBACnetConstructedData
 	// GetAlarmValues returns AlarmValues (property field)
-	GetAlarmValues() []*BACnetConstructedDataLifeSafetyAlarmValuesEntry
+	GetAlarmValues() []*BACnetConstructedDataLifeSafetyStateEntry
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -54,8 +54,8 @@ type IBACnetConstructedDataLifeSafetyAlarmValues interface {
 /////////////////////// Accessors for discriminator values.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetObjectType() BACnetObjectType {
-	return 0
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetObjectType() BACnetObjectType {
+	return BACnetObjectType_LIFE_SAFETY_POINT
 }
 
 ///////////////////////
@@ -63,12 +63,12 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetObjectType() BACnetObjec
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag) {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag) {
 	m.BACnetConstructedData.OpeningTag = openingTag
 	m.BACnetConstructedData.ClosingTag = closingTag
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetParent() *BACnetConstructedData {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetParent() *BACnetConstructedData {
 	return m.BACnetConstructedData
 }
 
@@ -77,7 +77,7 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetParent() *BACnetConstruc
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetConstructedDataLifeSafetyAlarmValuesEntry {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetAlarmValues() []*BACnetConstructedDataLifeSafetyStateEntry {
 	return m.AlarmValues
 }
 
@@ -86,9 +86,9 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetC
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetConstructedDataLifeSafetyAlarmValues factory function for BACnetConstructedDataLifeSafetyAlarmValues
-func NewBACnetConstructedDataLifeSafetyAlarmValues(alarmValues []*BACnetConstructedDataLifeSafetyAlarmValuesEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyAlarmValues {
-	_result := &BACnetConstructedDataLifeSafetyAlarmValues{
+// NewBACnetConstructedDataLifeSafetyPointAlarmValues factory function for BACnetConstructedDataLifeSafetyPointAlarmValues
+func NewBACnetConstructedDataLifeSafetyPointAlarmValues(alarmValues []*BACnetConstructedDataLifeSafetyStateEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyPointAlarmValues {
+	_result := &BACnetConstructedDataLifeSafetyPointAlarmValues{
 		AlarmValues:           alarmValues,
 		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
 	}
@@ -96,31 +96,31 @@ func NewBACnetConstructedDataLifeSafetyAlarmValues(alarmValues []*BACnetConstruc
 	return _result
 }
 
-func CastBACnetConstructedDataLifeSafetyAlarmValues(structType interface{}) *BACnetConstructedDataLifeSafetyAlarmValues {
-	if casted, ok := structType.(BACnetConstructedDataLifeSafetyAlarmValues); ok {
+func CastBACnetConstructedDataLifeSafetyPointAlarmValues(structType interface{}) *BACnetConstructedDataLifeSafetyPointAlarmValues {
+	if casted, ok := structType.(BACnetConstructedDataLifeSafetyPointAlarmValues); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyAlarmValues); ok {
+	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyPointAlarmValues); ok {
 		return casted
 	}
 	if casted, ok := structType.(BACnetConstructedData); ok {
-		return CastBACnetConstructedDataLifeSafetyAlarmValues(casted.Child)
+		return CastBACnetConstructedDataLifeSafetyPointAlarmValues(casted.Child)
 	}
 	if casted, ok := structType.(*BACnetConstructedData); ok {
-		return CastBACnetConstructedDataLifeSafetyAlarmValues(casted.Child)
+		return CastBACnetConstructedDataLifeSafetyPointAlarmValues(casted.Child)
 	}
 	return nil
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetTypeName() string {
-	return "BACnetConstructedDataLifeSafetyAlarmValues"
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetTypeName() string {
+	return "BACnetConstructedDataLifeSafetyPointAlarmValues"
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBits() uint16 {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.GetParentLengthInBits())
 
 	// Array field
@@ -133,14 +133,14 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBitsConditional(
 	return lengthInBits
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBytes() uint16 {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyAlarmValues, error) {
+func BACnetConstructedDataLifeSafetyPointAlarmValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyPointAlarmValues, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyAlarmValues"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyPointAlarmValues"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -151,14 +151,14 @@ func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer
 		return nil, pullErr
 	}
 	// Terminated array
-	alarmValues := make([]*BACnetConstructedDataLifeSafetyAlarmValuesEntry, 0)
+	alarmValues := make([]*BACnetConstructedDataLifeSafetyStateEntry, 0)
 	{
 		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetConstructedDataLifeSafetyAlarmValuesEntryParse(readBuffer)
+			_item, _err := BACnetConstructedDataLifeSafetyStateEntryParse(readBuffer)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'alarmValues' field")
 			}
-			alarmValues = append(alarmValues, CastBACnetConstructedDataLifeSafetyAlarmValuesEntry(_item))
+			alarmValues = append(alarmValues, CastBACnetConstructedDataLifeSafetyStateEntry(_item))
 
 		}
 	}
@@ -166,12 +166,12 @@ func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer
 		return nil, closeErr
 	}
 
-	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyAlarmValues"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyPointAlarmValues"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create a partially initialized instance
-	_child := &BACnetConstructedDataLifeSafetyAlarmValues{
+	_child := &BACnetConstructedDataLifeSafetyPointAlarmValues{
 		AlarmValues:           alarmValues,
 		BACnetConstructedData: &BACnetConstructedData{},
 	}
@@ -179,11 +179,11 @@ func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer
 	return _child, nil
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyAlarmValues"); pushErr != nil {
+		if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyPointAlarmValues"); pushErr != nil {
 			return pushErr
 		}
 
@@ -203,7 +203,7 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) Serialize(writeBuffer utils
 			}
 		}
 
-		if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyAlarmValues"); popErr != nil {
+		if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyPointAlarmValues"); popErr != nil {
 			return popErr
 		}
 		return nil
@@ -211,7 +211,7 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) Serialize(writeBuffer utils
 	return m.SerializeParent(writeBuffer, m, ser)
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) String() string {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointFaultValues.go
similarity index 51%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointFaultValues.go
index a49375c861..909cecd5e9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointFaultValues.go
@@ -26,21 +26,21 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetConstructedDataLifeSafetyAlarmValues is the data-structure of this message
-type BACnetConstructedDataLifeSafetyAlarmValues struct {
+// BACnetConstructedDataLifeSafetyPointFaultValues is the data-structure of this message
+type BACnetConstructedDataLifeSafetyPointFaultValues struct {
 	*BACnetConstructedData
-	AlarmValues []*BACnetConstructedDataLifeSafetyAlarmValuesEntry
+	FaultValues []*BACnetConstructedDataLifeSafetyStateEntry
 
 	// Arguments.
 	TagNumber                  uint8
 	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
 }
 
-// IBACnetConstructedDataLifeSafetyAlarmValues is the corresponding interface of BACnetConstructedDataLifeSafetyAlarmValues
-type IBACnetConstructedDataLifeSafetyAlarmValues interface {
+// IBACnetConstructedDataLifeSafetyPointFaultValues is the corresponding interface of BACnetConstructedDataLifeSafetyPointFaultValues
+type IBACnetConstructedDataLifeSafetyPointFaultValues interface {
 	IBACnetConstructedData
-	// GetAlarmValues returns AlarmValues (property field)
-	GetAlarmValues() []*BACnetConstructedDataLifeSafetyAlarmValuesEntry
+	// GetFaultValues returns FaultValues (property field)
+	GetFaultValues() []*BACnetConstructedDataLifeSafetyStateEntry
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -54,8 +54,8 @@ type IBACnetConstructedDataLifeSafetyAlarmValues interface {
 /////////////////////// Accessors for discriminator values.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetObjectType() BACnetObjectType {
-	return 0
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetObjectType() BACnetObjectType {
+	return BACnetObjectType_LIFE_SAFETY_POINT
 }
 
 ///////////////////////
@@ -63,12 +63,12 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetObjectType() BACnetObjec
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag) {
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag) {
 	m.BACnetConstructedData.OpeningTag = openingTag
 	m.BACnetConstructedData.ClosingTag = closingTag
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetParent() *BACnetConstructedData {
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetParent() *BACnetConstructedData {
 	return m.BACnetConstructedData
 }
 
@@ -77,8 +77,8 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetParent() *BACnetConstruc
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetConstructedDataLifeSafetyAlarmValuesEntry {
-	return m.AlarmValues
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetFaultValues() []*BACnetConstructedDataLifeSafetyStateEntry {
+	return m.FaultValues
 }
 
 ///////////////////////
@@ -86,46 +86,46 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetC
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetConstructedDataLifeSafetyAlarmValues factory function for BACnetConstructedDataLifeSafetyAlarmValues
-func NewBACnetConstructedDataLifeSafetyAlarmValues(alarmValues []*BACnetConstructedDataLifeSafetyAlarmValuesEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyAlarmValues {
-	_result := &BACnetConstructedDataLifeSafetyAlarmValues{
-		AlarmValues:           alarmValues,
+// NewBACnetConstructedDataLifeSafetyPointFaultValues factory function for BACnetConstructedDataLifeSafetyPointFaultValues
+func NewBACnetConstructedDataLifeSafetyPointFaultValues(faultValues []*BACnetConstructedDataLifeSafetyStateEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyPointFaultValues {
+	_result := &BACnetConstructedDataLifeSafetyPointFaultValues{
+		FaultValues:           faultValues,
 		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
 	}
 	_result.Child = _result
 	return _result
 }
 
-func CastBACnetConstructedDataLifeSafetyAlarmValues(structType interface{}) *BACnetConstructedDataLifeSafetyAlarmValues {
-	if casted, ok := structType.(BACnetConstructedDataLifeSafetyAlarmValues); ok {
+func CastBACnetConstructedDataLifeSafetyPointFaultValues(structType interface{}) *BACnetConstructedDataLifeSafetyPointFaultValues {
+	if casted, ok := structType.(BACnetConstructedDataLifeSafetyPointFaultValues); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyAlarmValues); ok {
+	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyPointFaultValues); ok {
 		return casted
 	}
 	if casted, ok := structType.(BACnetConstructedData); ok {
-		return CastBACnetConstructedDataLifeSafetyAlarmValues(casted.Child)
+		return CastBACnetConstructedDataLifeSafetyPointFaultValues(casted.Child)
 	}
 	if casted, ok := structType.(*BACnetConstructedData); ok {
-		return CastBACnetConstructedDataLifeSafetyAlarmValues(casted.Child)
+		return CastBACnetConstructedDataLifeSafetyPointFaultValues(casted.Child)
 	}
 	return nil
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetTypeName() string {
-	return "BACnetConstructedDataLifeSafetyAlarmValues"
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetTypeName() string {
+	return "BACnetConstructedDataLifeSafetyPointFaultValues"
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBits() uint16 {
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.GetParentLengthInBits())
 
 	// Array field
-	if len(m.AlarmValues) > 0 {
-		for _, element := range m.AlarmValues {
+	if len(m.FaultValues) > 0 {
+		for _, element := range m.FaultValues {
 			lengthInBits += element.GetLengthInBits()
 		}
 	}
@@ -133,77 +133,77 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBitsConditional(
 	return lengthInBits
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBytes() uint16 {
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyAlarmValues, error) {
+func BACnetConstructedDataLifeSafetyPointFaultValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyPointFaultValues, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyAlarmValues"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyPointFaultValues"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Array field (alarmValues)
-	if pullErr := readBuffer.PullContext("alarmValues", utils.WithRenderAsList(true)); pullErr != nil {
+	// Array field (faultValues)
+	if pullErr := readBuffer.PullContext("faultValues", utils.WithRenderAsList(true)); pullErr != nil {
 		return nil, pullErr
 	}
 	// Terminated array
-	alarmValues := make([]*BACnetConstructedDataLifeSafetyAlarmValuesEntry, 0)
+	faultValues := make([]*BACnetConstructedDataLifeSafetyStateEntry, 0)
 	{
 		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetConstructedDataLifeSafetyAlarmValuesEntryParse(readBuffer)
+			_item, _err := BACnetConstructedDataLifeSafetyStateEntryParse(readBuffer)
 			if _err != nil {
-				return nil, errors.Wrap(_err, "Error parsing 'alarmValues' field")
+				return nil, errors.Wrap(_err, "Error parsing 'faultValues' field")
 			}
-			alarmValues = append(alarmValues, CastBACnetConstructedDataLifeSafetyAlarmValuesEntry(_item))
+			faultValues = append(faultValues, CastBACnetConstructedDataLifeSafetyStateEntry(_item))
 
 		}
 	}
-	if closeErr := readBuffer.CloseContext("alarmValues", utils.WithRenderAsList(true)); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("faultValues", utils.WithRenderAsList(true)); closeErr != nil {
 		return nil, closeErr
 	}
 
-	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyAlarmValues"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyPointFaultValues"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create a partially initialized instance
-	_child := &BACnetConstructedDataLifeSafetyAlarmValues{
-		AlarmValues:           alarmValues,
+	_child := &BACnetConstructedDataLifeSafetyPointFaultValues{
+		FaultValues:           faultValues,
 		BACnetConstructedData: &BACnetConstructedData{},
 	}
 	_child.BACnetConstructedData.Child = _child
 	return _child, nil
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
 	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyAlarmValues"); pushErr != nil {
+		if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyPointFaultValues"); pushErr != nil {
 			return pushErr
 		}
 
-		// Array Field (alarmValues)
-		if m.AlarmValues != nil {
-			if pushErr := writeBuffer.PushContext("alarmValues", utils.WithRenderAsList(true)); pushErr != nil {
+		// Array Field (faultValues)
+		if m.FaultValues != nil {
+			if pushErr := writeBuffer.PushContext("faultValues", utils.WithRenderAsList(true)); pushErr != nil {
 				return pushErr
 			}
-			for _, _element := range m.AlarmValues {
+			for _, _element := range m.FaultValues {
 				_elementErr := _element.Serialize(writeBuffer)
 				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'alarmValues' field")
+					return errors.Wrap(_elementErr, "Error serializing 'faultValues' field")
 				}
 			}
-			if popErr := writeBuffer.PopContext("alarmValues", utils.WithRenderAsList(true)); popErr != nil {
+			if popErr := writeBuffer.PopContext("faultValues", utils.WithRenderAsList(true)); popErr != nil {
 				return popErr
 			}
 		}
 
-		if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyAlarmValues"); popErr != nil {
+		if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyPointFaultValues"); popErr != nil {
 			return popErr
 		}
 		return nil
@@ -211,7 +211,7 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) Serialize(writeBuffer utils
 	return m.SerializeParent(writeBuffer, m, ser)
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) String() string {
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValuesEntry.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyStateEntry.go
similarity index 72%
rename from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValuesEntry.go
rename to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyStateEntry.go
index 900bb30a70..420bddb732 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValuesEntry.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyStateEntry.go
@@ -26,13 +26,13 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetConstructedDataLifeSafetyAlarmValuesEntry is the data-structure of this message
-type BACnetConstructedDataLifeSafetyAlarmValuesEntry struct {
+// BACnetConstructedDataLifeSafetyStateEntry is the data-structure of this message
+type BACnetConstructedDataLifeSafetyStateEntry struct {
 	RawData *BACnetApplicationTagEnumerated
 }
 
-// IBACnetConstructedDataLifeSafetyAlarmValuesEntry is the corresponding interface of BACnetConstructedDataLifeSafetyAlarmValuesEntry
-type IBACnetConstructedDataLifeSafetyAlarmValuesEntry interface {
+// IBACnetConstructedDataLifeSafetyStateEntry is the corresponding interface of BACnetConstructedDataLifeSafetyStateEntry
+type IBACnetConstructedDataLifeSafetyStateEntry interface {
 	// GetRawData returns RawData (property field)
 	GetRawData() *BACnetApplicationTagEnumerated
 	// GetIsLifeSafetyStateProprietary returns IsLifeSafetyStateProprietary (virtual field)
@@ -54,7 +54,7 @@ type IBACnetConstructedDataLifeSafetyAlarmValuesEntry interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetRawData() *BACnetApplicationTagEnumerated {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) GetRawData() *BACnetApplicationTagEnumerated {
 	return m.RawData
 }
 
@@ -67,15 +67,15 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetRawData() *BACnetAp
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetIsLifeSafetyStateProprietary() bool {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) GetIsLifeSafetyStateProprietary() bool {
 	return bool(bool((m.GetRawData().GetActualValue()) > (255)))
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetLifeSafetyState() BACnetLifeSafetyState {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLifeSafetyState() BACnetLifeSafetyState {
 	return BACnetLifeSafetyState(MapBACnetLifeSafetyState(m.GetRawData(), m.GetIsLifeSafetyStateProprietary()))
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetLifeSafetyStateProprietary() uint16 {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLifeSafetyStateProprietary() uint16 {
 	return uint16(utils.InlineIf(m.GetIsLifeSafetyStateProprietary(), func() interface{} { return uint16(m.GetRawData().GetActualValue()) }, func() interface{} { return uint16(uint16(0)) }).(uint16))
 }
 
@@ -84,30 +84,30 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetLifeSafetyStateProp
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetConstructedDataLifeSafetyAlarmValuesEntry factory function for BACnetConstructedDataLifeSafetyAlarmValuesEntry
-func NewBACnetConstructedDataLifeSafetyAlarmValuesEntry(rawData *BACnetApplicationTagEnumerated) *BACnetConstructedDataLifeSafetyAlarmValuesEntry {
-	return &BACnetConstructedDataLifeSafetyAlarmValuesEntry{RawData: rawData}
+// NewBACnetConstructedDataLifeSafetyStateEntry factory function for BACnetConstructedDataLifeSafetyStateEntry
+func NewBACnetConstructedDataLifeSafetyStateEntry(rawData *BACnetApplicationTagEnumerated) *BACnetConstructedDataLifeSafetyStateEntry {
+	return &BACnetConstructedDataLifeSafetyStateEntry{RawData: rawData}
 }
 
-func CastBACnetConstructedDataLifeSafetyAlarmValuesEntry(structType interface{}) *BACnetConstructedDataLifeSafetyAlarmValuesEntry {
-	if casted, ok := structType.(BACnetConstructedDataLifeSafetyAlarmValuesEntry); ok {
+func CastBACnetConstructedDataLifeSafetyStateEntry(structType interface{}) *BACnetConstructedDataLifeSafetyStateEntry {
+	if casted, ok := structType.(BACnetConstructedDataLifeSafetyStateEntry); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyAlarmValuesEntry); ok {
+	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyStateEntry); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetTypeName() string {
-	return "BACnetConstructedDataLifeSafetyAlarmValuesEntry"
+func (m *BACnetConstructedDataLifeSafetyStateEntry) GetTypeName() string {
+	return "BACnetConstructedDataLifeSafetyStateEntry"
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetLengthInBits() uint16 {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (rawData)
@@ -122,14 +122,14 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetLengthInBitsConditi
 	return lengthInBits
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) GetLengthInBytes() uint16 {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataLifeSafetyAlarmValuesEntryParse(readBuffer utils.ReadBuffer) (*BACnetConstructedDataLifeSafetyAlarmValuesEntry, error) {
+func BACnetConstructedDataLifeSafetyStateEntryParse(readBuffer utils.ReadBuffer) (*BACnetConstructedDataLifeSafetyStateEntry, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyAlarmValuesEntry"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyStateEntry"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -163,18 +163,18 @@ func BACnetConstructedDataLifeSafetyAlarmValuesEntryParse(readBuffer utils.ReadB
 	lifeSafetyStateProprietary := uint16(_lifeSafetyStateProprietary)
 	_ = lifeSafetyStateProprietary
 
-	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyAlarmValuesEntry"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyStateEntry"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetConstructedDataLifeSafetyAlarmValuesEntry(rawData), nil
+	return NewBACnetConstructedDataLifeSafetyStateEntry(rawData), nil
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyAlarmValuesEntry"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyStateEntry"); pushErr != nil {
 		return pushErr
 	}
 
@@ -202,13 +202,13 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) Serialize(writeBuffer
 		return errors.Wrap(_lifeSafetyStateProprietaryErr, "Error serializing 'lifeSafetyStateProprietary' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyAlarmValuesEntry"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyStateEntry"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValuesEntry) String() string {
+func (m *BACnetConstructedDataLifeSafetyStateEntry) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index d1b1b681b9..475b3986c1 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -1872,7 +1872,7 @@
 ]
 
 // TODO: try with manual fields
-[type BACnetConstructedDataLifeSafetyAlarmValuesEntry
+[type BACnetConstructedDataLifeSafetyStateEntry
     [simple   BACnetApplicationTagEnumerated
                         rawData                                                                                 ]
     [virtual  bit       isLifeSafetyStateProprietary 'rawData.actualValue > 255'                                ]
@@ -2505,6 +2505,11 @@
         //[*, 'ACTUAL_SHED_LEVEL'                       BACnetConstructedDataActualShedLevel [validation    '1 == 2'    "TODO: implement me ACTUAL_SHED_LEVEL BACnetConstructedDataActualShedLevel"]]
         //[*, 'ADJUST_VALUE'                            BACnetConstructedDataAdjustValue [validation    '1 == 2'    "TODO: implement me ADJUST_VALUE BACnetConstructedDataAdjustValue"]]
         //[*, 'ALARM_VALUE'                             BACnetConstructedDataAlarmValue [validation    '1 == 2'    "TODO: implement me ALARM_VALUE BACnetConstructedDataAlarmValue"]]
+        ['LIFE_SAFETY_POINT', 'ALARM_VALUES'                            BACnetConstructedDataLifeSafetyPointAlarmValues
+            [array    BACnetConstructedDataLifeSafetyStateEntry
+                            alarmValues              terminated
+                                'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
+        ]
         //[*, 'ALARM_VALUES'                            BACnetConstructedDataAlarmValues [validation    '1 == 2'    "TODO: implement me ALARM_VALUES BACnetConstructedDataAlarmValues"]]
         //[*, 'ALIGN_INTERVALS'                         BACnetConstructedDataAlignIntervals [validation    '1 == 2'    "TODO: implement me ALIGN_INTERVALS BACnetConstructedDataAlignIntervals"]]
         //[*, 'ALL'                                     BACnetConstructedDataAll [validation    '1 == 2'    "TODO: implement me ALL BACnetConstructedDataAll"]]
@@ -2651,6 +2656,12 @@
         //[*, 'FAULT_PARAMETERS'                        BACnetConstructedDataFaultParameters [validation    '1 == 2'    "TODO: implement me FAULT_PARAMETERS BACnetConstructedDataFaultParameters"]]
         //[*, 'FAULT_SIGNALS'                           BACnetConstructedDataFaultSignals [validation    '1 == 2'    "TODO: implement me FAULT_SIGNALS BACnetConstructedDataFaultSignals"]]
         //[*, 'FAULT_TYPE'                              BACnetConstructedDataFaultType [validation    '1 == 2'    "TODO: implement me FAULT_TYPE BACnetConstructedDataFaultType"]]
+        ['LIFE_SAFETY_POINT', 'FAULT_VALUES'                            BACnetConstructedDataLifeSafetyPointFaultValues
+            [array    BACnetConstructedDataLifeSafetyStateEntry
+                            faultValues
+                                terminated
+                                'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
+        ]
         //[*, 'FAULT_VALUES'                            BACnetConstructedDataFaultValues [validation    '1 == 2'    "TODO: implement me FAULT_VALUES BACnetConstructedDataFaultValues"]]
         //[*, 'FD_BBMD_ADDRESS'                         BACnetConstructedDataFdBbmdAddress [validation    '1 == 2'    "TODO: implement me FD_BBMD_ADDRESS BACnetConstructedDataFdBbmdAddress"]]
         //[*, 'FD_SUBSCRIPTION_LIFETIME'                BACnetConstructedDataFdSubscriptionLifetime [validation    '1 == 2'    "TODO: implement me FD_SUBSCRIPTION_LIFETIME BACnetConstructedDataFdSubscriptionLifetime"]]
@@ -2717,7 +2728,7 @@
         //[*, 'LAST_STATE_CHANGE'                       BACnetConstructedDataLastStateChange [validation    '1 == 2'    "TODO: implement me LAST_STATE_CHANGE BACnetConstructedDataLastStateChange"]]
         //[*, 'LAST_USE_TIME'                           BACnetConstructedDataLastUseTime [validation    '1 == 2'    "TODO: implement me LAST_USE_TIME BACnetConstructedDataLastUseTime"]]
         [*, 'LIFE_SAFETY_ALARM_VALUES'                BACnetConstructedDataLifeSafetyAlarmValues
-            [array    BACnetConstructedDataLifeSafetyAlarmValuesEntry
+            [array    BACnetConstructedDataLifeSafetyStateEntry
                             alarmValues              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]