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/07/19 14:05:39 UTC

[plc4x] branch develop updated: feat(cbus): implemented pools spa ponds fountains control application

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 61edca454 feat(cbus): implemented pools spa ponds fountains control application
61edca454 is described below

commit 61edca454de1ac051698100b862294a40112582a
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Jul 19 16:05:32 2022 +0200

    feat(cbus): implemented pools spa ponds fountains control application
---
 .../model/SALDataPoolsSpasPondsFountainsControl.go | 54 +++++++++++++++++++---
 .../src/main/resources/protocols/cbus/c-bus.mspec  |  3 +-
 2 files changed, 50 insertions(+), 7 deletions(-)

diff --git a/plc4go/protocols/cbus/readwrite/model/SALDataPoolsSpasPondsFountainsControl.go b/plc4go/protocols/cbus/readwrite/model/SALDataPoolsSpasPondsFountainsControl.go
index 4ae740f11..e7f8ad09b 100644
--- a/plc4go/protocols/cbus/readwrite/model/SALDataPoolsSpasPondsFountainsControl.go
+++ b/plc4go/protocols/cbus/readwrite/model/SALDataPoolsSpasPondsFountainsControl.go
@@ -31,6 +31,8 @@ type SALDataPoolsSpasPondsFountainsControl interface {
 	utils.LengthAware
 	utils.Serializable
 	SALData
+	// GetVentilationData returns VentilationData (property field)
+	GetVentilationData() LightingData
 }
 
 // SALDataPoolsSpasPondsFountainsControlExactly can be used when we want exactly this type and not a type which fulfills SALDataPoolsSpasPondsFountainsControl.
@@ -43,6 +45,7 @@ type SALDataPoolsSpasPondsFountainsControlExactly interface {
 // _SALDataPoolsSpasPondsFountainsControl is the data-structure of this message
 type _SALDataPoolsSpasPondsFountainsControl struct {
 	*_SALData
+	VentilationData LightingData
 }
 
 ///////////////////////////////////////////////////////////
@@ -67,10 +70,25 @@ func (m *_SALDataPoolsSpasPondsFountainsControl) GetParent() SALData {
 	return m._SALData
 }
 
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *_SALDataPoolsSpasPondsFountainsControl) GetVentilationData() LightingData {
+	return m.VentilationData
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
 // NewSALDataPoolsSpasPondsFountainsControl factory function for _SALDataPoolsSpasPondsFountainsControl
-func NewSALDataPoolsSpasPondsFountainsControl(salData SALData) *_SALDataPoolsSpasPondsFountainsControl {
+func NewSALDataPoolsSpasPondsFountainsControl(ventilationData LightingData, salData SALData) *_SALDataPoolsSpasPondsFountainsControl {
 	_result := &_SALDataPoolsSpasPondsFountainsControl{
-		_SALData: NewSALData(salData),
+		VentilationData: ventilationData,
+		_SALData:        NewSALData(salData),
 	}
 	_result._SALData._SALDataChildRequirements = _result
 	return _result
@@ -98,6 +116,9 @@ func (m *_SALDataPoolsSpasPondsFountainsControl) GetLengthInBits() uint16 {
 func (m *_SALDataPoolsSpasPondsFountainsControl) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.GetParentLengthInBits())
 
+	// Simple field (ventilationData)
+	lengthInBits += m.VentilationData.GetLengthInBits()
+
 	return lengthInBits
 }
 
@@ -114,9 +135,17 @@ func SALDataPoolsSpasPondsFountainsControlParse(readBuffer utils.ReadBuffer, app
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(bool((1) == (2))) {
-		return nil, errors.WithStack(utils.ParseValidationError{"POOLS_SPAS_PONDS_FOUNTAINS_CONTROL Not yet implemented"})
+	// Simple Field (ventilationData)
+	if pullErr := readBuffer.PullContext("ventilationData"); pullErr != nil {
+		return nil, errors.Wrap(pullErr, "Error pulling for ventilationData")
+	}
+	_ventilationData, _ventilationDataErr := LightingDataParse(readBuffer)
+	if _ventilationDataErr != nil {
+		return nil, errors.Wrap(_ventilationDataErr, "Error parsing 'ventilationData' field of SALDataPoolsSpasPondsFountainsControl")
+	}
+	ventilationData := _ventilationData.(LightingData)
+	if closeErr := readBuffer.CloseContext("ventilationData"); closeErr != nil {
+		return nil, errors.Wrap(closeErr, "Error closing for ventilationData")
 	}
 
 	if closeErr := readBuffer.CloseContext("SALDataPoolsSpasPondsFountainsControl"); closeErr != nil {
@@ -125,7 +154,8 @@ func SALDataPoolsSpasPondsFountainsControlParse(readBuffer utils.ReadBuffer, app
 
 	// Create a partially initialized instance
 	_child := &_SALDataPoolsSpasPondsFountainsControl{
-		_SALData: &_SALData{},
+		VentilationData: ventilationData,
+		_SALData:        &_SALData{},
 	}
 	_child._SALData._SALDataChildRequirements = _child
 	return _child, nil
@@ -139,6 +169,18 @@ func (m *_SALDataPoolsSpasPondsFountainsControl) Serialize(writeBuffer utils.Wri
 			return errors.Wrap(pushErr, "Error pushing for SALDataPoolsSpasPondsFountainsControl")
 		}
 
+		// Simple Field (ventilationData)
+		if pushErr := writeBuffer.PushContext("ventilationData"); pushErr != nil {
+			return errors.Wrap(pushErr, "Error pushing for ventilationData")
+		}
+		_ventilationDataErr := writeBuffer.WriteSerializable(m.GetVentilationData())
+		if popErr := writeBuffer.PopContext("ventilationData"); popErr != nil {
+			return errors.Wrap(popErr, "Error popping for ventilationData")
+		}
+		if _ventilationDataErr != nil {
+			return errors.Wrap(_ventilationDataErr, "Error serializing 'ventilationData' field")
+		}
+
 		if popErr := writeBuffer.PopContext("SALDataPoolsSpasPondsFountainsControl"); popErr != nil {
 			return errors.Wrap(popErr, "Error popping for SALDataPoolsSpasPondsFountainsControl")
 		}
diff --git a/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec b/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec
index 44fc5d57a..74cb2cf49 100644
--- a/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec
+++ b/protocols/c-bus/src/main/resources/protocols/cbus/c-bus.mspec
@@ -1323,7 +1323,8 @@
             [simple LightingData ventilationData]
         ]
         ['POOLS_SPAS_PONDS_FOUNTAINS_CONTROL'   *PoolsSpasPondsFountainsControl
-            [validation '1==2' "POOLS_SPAS_PONDS_FOUNTAINS_CONTROL Not yet implemented"] // TODO: implement me
+             // Note: the documentation states that the data for ventilation uses LightingData
+            [simple LightingData ventilationData]
         ]
         ['HEATING'                              *Heating
             [validation '1==2' "HEATING Not yet implemented"] // TODO: implement me