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/13 09:44:40 UTC

[plc4x] branch develop updated: fix(cbus): switch SetParameter from const to reserved till it is clear why the delimiter has strange values sometimes

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 14dcb2586 fix(cbus): switch SetParameter from const to reserved till it is clear why the delimiter has strange values sometimes
14dcb2586 is described below

commit 14dcb25861bbd096317bf095203d2ea9c3e5de9a
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Jul 13 11:44:29 2022 +0200

    fix(cbus): switch SetParameter from const to reserved till it is clear why the delimiter has strange values sometimes
---
 .../model/CALDataOrSetParameterSetParameter.go     | 37 ++++++++++++----------
 .../src/main/resources/protocols/cbus/c-bus.mspec  |  4 ++-
 2 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/plc4go/protocols/cbus/readwrite/model/CALDataOrSetParameterSetParameter.go b/plc4go/protocols/cbus/readwrite/model/CALDataOrSetParameterSetParameter.go
index cb069435f..37e73f0ae 100644
--- a/plc4go/protocols/cbus/readwrite/model/CALDataOrSetParameterSetParameter.go
+++ b/plc4go/protocols/cbus/readwrite/model/CALDataOrSetParameterSetParameter.go
@@ -23,13 +23,13 @@ import (
 	"fmt"
 	"github.com/apache/plc4x/plc4go/internal/spi/utils"
 	"github.com/pkg/errors"
+	"github.com/rs/zerolog/log"
 )
 
 // Code generated by code-generation. DO NOT EDIT.
 
 // Constant values.
 const CALDataOrSetParameterSetParameter_MAGICID uint8 = 0xA3
-const CALDataOrSetParameterSetParameter_DELIMITER byte = 0x0
 
 // CALDataOrSetParameterSetParameter is the corresponding interface of CALDataOrSetParameterSetParameter
 type CALDataOrSetParameterSetParameter interface {
@@ -100,10 +100,6 @@ func (m *_CALDataOrSetParameterSetParameter) GetMagicId() uint8 {
 	return CALDataOrSetParameterSetParameter_MAGICID
 }
 
-func (m *_CALDataOrSetParameterSetParameter) GetDelimiter() byte {
-	return CALDataOrSetParameterSetParameter_DELIMITER
-}
-
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -148,7 +144,7 @@ func (m *_CALDataOrSetParameterSetParameter) GetLengthInBitsConditional(lastItem
 	// Simple field (paramNo)
 	lengthInBits += 8
 
-	// Const Field (delimiter)
+	// Reserved Field (reserved)
 	lengthInBits += 8
 
 	// Simple field (parameterValue)
@@ -192,13 +188,18 @@ func CALDataOrSetParameterSetParameterParse(readBuffer utils.ReadBuffer) (CALDat
 		return nil, errors.Wrap(closeErr, "Error closing for paramNo")
 	}
 
-	// Const Field (delimiter)
-	delimiter, _delimiterErr := readBuffer.ReadByte("delimiter")
-	if _delimiterErr != nil {
-		return nil, errors.Wrap(_delimiterErr, "Error parsing 'delimiter' field of CALDataOrSetParameterSetParameter")
-	}
-	if delimiter != CALDataOrSetParameterSetParameter_DELIMITER {
-		return nil, errors.New("Expected constant value " + fmt.Sprintf("%d", CALDataOrSetParameterSetParameter_DELIMITER) + " but got " + fmt.Sprintf("%d", delimiter))
+	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
+	{
+		reserved, _err := readBuffer.ReadByte("reserved")
+		if _err != nil {
+			return nil, errors.Wrap(_err, "Error parsing 'reserved' field of CALDataOrSetParameterSetParameter")
+		}
+		if reserved != byte(0x0) {
+			log.Info().Fields(map[string]interface{}{
+				"expected value": byte(0x0),
+				"got value":      reserved,
+			}).Msg("Got unexpected response for reserved field.")
+		}
 	}
 
 	// Simple Field (parameterValue)
@@ -248,10 +249,12 @@ func (m *_CALDataOrSetParameterSetParameter) Serialize(writeBuffer utils.WriteBu
 			return errors.Wrap(_paramNoErr, "Error serializing 'paramNo' field")
 		}
 
-		// Const Field (delimiter)
-		_delimiterErr := writeBuffer.WriteByte("delimiter", 0x0)
-		if _delimiterErr != nil {
-			return errors.Wrap(_delimiterErr, "Error serializing 'delimiter' field")
+		// Reserved Field (reserved)
+		{
+			_err := writeBuffer.WriteByte("reserved", byte(0x0))
+			if _err != nil {
+				return errors.Wrap(_err, "Error serializing 'reserved' field")
+			}
 		}
 
 		// Simple Field (parameterValue)
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 f80d959b7..32036b66e 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
@@ -562,7 +562,9 @@
         ['0xA3' *SetParameter
             [const      uint 8    magicId         0xA3                    ]
             [simple     Parameter paramNo                                 ]
-            [const      byte      delimiter       0x0                     ]
+            // TODO: the delimiter should be a const like that but atm there are too many which have a value there so we use reserved for now
+            //[const      byte      delimiter       0x0                     ]
+            [reserved   byte                      '0x0'                   ]
             [simple     byte      parameterValue                          ]
         ]
         [* *Value