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 13:31:50 UTC
[plc4x] branch develop updated: feat(cbus): implemented air conditioning 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 f9a1dfcc7 feat(cbus): implemented air conditioning application
f9a1dfcc7 is described below
commit f9a1dfcc7731d43ea89d82713480e61ec41a05be
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Jul 19 15:31:43 2022 +0200
feat(cbus): implemented air conditioning application
---
.../cbus/readwrite/model/SALDataAirConditioning.go | 54 +++++++++++++++++++---
.../src/main/resources/protocols/cbus/c-bus.mspec | 2 +-
2 files changed, 49 insertions(+), 7 deletions(-)
diff --git a/plc4go/protocols/cbus/readwrite/model/SALDataAirConditioning.go b/plc4go/protocols/cbus/readwrite/model/SALDataAirConditioning.go
index f55e860df..98f2d51b0 100644
--- a/plc4go/protocols/cbus/readwrite/model/SALDataAirConditioning.go
+++ b/plc4go/protocols/cbus/readwrite/model/SALDataAirConditioning.go
@@ -31,6 +31,8 @@ type SALDataAirConditioning interface {
utils.LengthAware
utils.Serializable
SALData
+ // GetAirConditioningData returns AirConditioningData (property field)
+ GetAirConditioningData() AirConditioningData
}
// SALDataAirConditioningExactly can be used when we want exactly this type and not a type which fulfills SALDataAirConditioning.
@@ -43,6 +45,7 @@ type SALDataAirConditioningExactly interface {
// _SALDataAirConditioning is the data-structure of this message
type _SALDataAirConditioning struct {
*_SALData
+ AirConditioningData AirConditioningData
}
///////////////////////////////////////////////////////////
@@ -67,10 +70,25 @@ func (m *_SALDataAirConditioning) GetParent() SALData {
return m._SALData
}
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *_SALDataAirConditioning) GetAirConditioningData() AirConditioningData {
+ return m.AirConditioningData
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
// NewSALDataAirConditioning factory function for _SALDataAirConditioning
-func NewSALDataAirConditioning(salData SALData) *_SALDataAirConditioning {
+func NewSALDataAirConditioning(airConditioningData AirConditioningData, salData SALData) *_SALDataAirConditioning {
_result := &_SALDataAirConditioning{
- _SALData: NewSALData(salData),
+ AirConditioningData: airConditioningData,
+ _SALData: NewSALData(salData),
}
_result._SALData._SALDataChildRequirements = _result
return _result
@@ -98,6 +116,9 @@ func (m *_SALDataAirConditioning) GetLengthInBits() uint16 {
func (m *_SALDataAirConditioning) GetLengthInBitsConditional(lastItem bool) uint16 {
lengthInBits := uint16(m.GetParentLengthInBits())
+ // Simple field (airConditioningData)
+ lengthInBits += m.AirConditioningData.GetLengthInBits()
+
return lengthInBits
}
@@ -114,9 +135,17 @@ func SALDataAirConditioningParse(readBuffer utils.ReadBuffer, applicationId Appl
currentPos := positionAware.GetPos()
_ = currentPos
- // Validation
- if !(bool((1) == (2))) {
- return nil, errors.WithStack(utils.ParseValidationError{"AIR_CONDITIONING Not yet implemented"})
+ // Simple Field (airConditioningData)
+ if pullErr := readBuffer.PullContext("airConditioningData"); pullErr != nil {
+ return nil, errors.Wrap(pullErr, "Error pulling for airConditioningData")
+ }
+ _airConditioningData, _airConditioningDataErr := AirConditioningDataParse(readBuffer)
+ if _airConditioningDataErr != nil {
+ return nil, errors.Wrap(_airConditioningDataErr, "Error parsing 'airConditioningData' field of SALDataAirConditioning")
+ }
+ airConditioningData := _airConditioningData.(AirConditioningData)
+ if closeErr := readBuffer.CloseContext("airConditioningData"); closeErr != nil {
+ return nil, errors.Wrap(closeErr, "Error closing for airConditioningData")
}
if closeErr := readBuffer.CloseContext("SALDataAirConditioning"); closeErr != nil {
@@ -125,7 +154,8 @@ func SALDataAirConditioningParse(readBuffer utils.ReadBuffer, applicationId Appl
// Create a partially initialized instance
_child := &_SALDataAirConditioning{
- _SALData: &_SALData{},
+ AirConditioningData: airConditioningData,
+ _SALData: &_SALData{},
}
_child._SALData._SALDataChildRequirements = _child
return _child, nil
@@ -139,6 +169,18 @@ func (m *_SALDataAirConditioning) Serialize(writeBuffer utils.WriteBuffer) error
return errors.Wrap(pushErr, "Error pushing for SALDataAirConditioning")
}
+ // Simple Field (airConditioningData)
+ if pushErr := writeBuffer.PushContext("airConditioningData"); pushErr != nil {
+ return errors.Wrap(pushErr, "Error pushing for airConditioningData")
+ }
+ _airConditioningDataErr := writeBuffer.WriteSerializable(m.GetAirConditioningData())
+ if popErr := writeBuffer.PopContext("airConditioningData"); popErr != nil {
+ return errors.Wrap(popErr, "Error popping for airConditioningData")
+ }
+ if _airConditioningDataErr != nil {
+ return errors.Wrap(_airConditioningDataErr, "Error serializing 'airConditioningData' field")
+ }
+
if popErr := writeBuffer.PopContext("SALDataAirConditioning"); popErr != nil {
return errors.Wrap(popErr, "Error popping for SALDataAirConditioning")
}
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 0e03f53e4..ece525360 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
@@ -1328,7 +1328,7 @@
[validation '1==2' "HEATING Not yet implemented"] // TODO: implement me
]
['AIR_CONDITIONING' *AirConditioning
- [validation '1==2' "AIR_CONDITIONING Not yet implemented"] // TODO: implement me
+ [simple AirConditioningData airConditioningData]
]
['TRIGGER_CONTROL' *TriggerControl
[simple TriggerControlData triggerControlData]