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/08/30 10:33:05 UTC

[plc4x] 03/03: refactor(plc4go/cbus): improved debug output

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

commit 80ba5d0cc156b98b92c5855245ab750d2edfa87e
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Aug 30 12:32:54 2022 +0200

    refactor(plc4go/cbus): improved debug output
---
 plc4go/internal/cbus/MessageCodec.go                  | 10 +++++++---
 plc4go/tests/drivers/tests/manual_cbus_driver_test.go |  6 +++---
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/plc4go/internal/cbus/MessageCodec.go b/plc4go/internal/cbus/MessageCodec.go
index ee5ed3a36..5d68716e9 100644
--- a/plc4go/internal/cbus/MessageCodec.go
+++ b/plc4go/internal/cbus/MessageCodec.go
@@ -67,6 +67,7 @@ func (m *MessageCodec) Send(message spi.Message) error {
 
 	// Set the right request context
 	m.requestContext = CreateRequestContext(cbusMessage)
+	log.Debug().Msgf("Created request context\n%s", m.requestContext)
 
 	// Serialize the request
 	wb := utils.NewWriteBufferByteBased()
@@ -107,7 +108,7 @@ func (m *MessageCodec) Receive() (spi.Message, error) {
 				return true
 			}
 		}); err != nil {
-			return nil, err
+			return nil, errors.Wrap(err, "error filling buffer")
 		}
 	}
 
@@ -129,6 +130,7 @@ func (m *MessageCodec) Receive() (spi.Message, error) {
 	// Check for an isolated error
 	if bytes, err := ti.PeekReadableBytes(1); err == nil && (bytes[0] == byte(readWriteModel.ConfirmationType_CHECKSUM_FAILURE)) {
 		_, _ = ti.Read(1)
+		// Report one Error at a time
 		return readWriteModel.CBusMessageParse(utils.NewReadBufferByteBased(bytes), true, m.requestContext, m.cbusOptions)
 	}
 
@@ -257,13 +259,15 @@ lookingForTheEnd:
 			}
 		}
 	}
+	log.Debug().Msgf("Parsing %q", sanitizedInput)
 	rb := utils.NewReadBufferByteBased(sanitizedInput)
 	cBusMessage, err := readWriteModel.CBusMessageParse(rb, pciResponse, m.requestContext, m.cbusOptions)
 	if err != nil {
 		log.Debug().Err(err).Msg("First Parse Failed")
 		{ // Try SAL
 			rb := utils.NewReadBufferByteBased(sanitizedInput)
-			cBusMessage, secondErr := readWriteModel.CBusMessageParse(rb, pciResponse, readWriteModel.NewRequestContext(false), m.cbusOptions)
+			requestContext := readWriteModel.NewRequestContext(false)
+			cBusMessage, secondErr := readWriteModel.CBusMessageParse(rb, pciResponse, requestContext, m.cbusOptions)
 			if secondErr == nil {
 				return cBusMessage, nil
 			} else {
@@ -271,9 +275,9 @@ lookingForTheEnd:
 			}
 		}
 		{ // Try MMI
+			rb := utils.NewReadBufferByteBased(sanitizedInput)
 			requestContext := readWriteModel.NewRequestContext(false)
 			cbusOptions := readWriteModel.NewCBusOptions(false, false, false, false, false, false, false, false, false)
-			rb := utils.NewReadBufferByteBased(sanitizedInput)
 			cBusMessage, secondErr := readWriteModel.CBusMessageParse(rb, true, requestContext, cbusOptions)
 			if secondErr == nil {
 				return cBusMessage, nil
diff --git a/plc4go/tests/drivers/tests/manual_cbus_driver_test.go b/plc4go/tests/drivers/tests/manual_cbus_driver_test.go
index b385a4e09..541690fdf 100644
--- a/plc4go/tests/drivers/tests/manual_cbus_driver_test.go
+++ b/plc4go/tests/drivers/tests/manual_cbus_driver_test.go
@@ -118,16 +118,16 @@ func TestManualCBusBrowse(t *testing.T) {
 	connection := connectionResult.GetConnection()
 	defer connection.Close()
 	browseRequest, err := connection.BrowseRequestBuilder().
-		AddQuery("asd", "info/*/*").
+		AddQuery("infoQuery", "info/*/*").
 		Build()
 	if err != nil {
 		panic(err)
 	}
 	browseRequestResult := <-browseRequest.ExecuteWithInterceptor(func(result model.PlcBrowseEvent) bool {
-		fmt.Printf("%s", result)
+		fmt.Printf("%s\n", result)
 		return true
 	})
-	fmt.Printf("%s", browseRequestResult.GetResponse())
+	fmt.Printf("%v\n", browseRequestResult.GetResponse())
 }
 
 func TestManualCBusRead(t *testing.T) {