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