Skip to content

Commit

Permalink
refactor(plc4go/cbus): improved debug output
Browse files Browse the repository at this point in the history
  • Loading branch information
sruehl committed Aug 30, 2022
1 parent 324ef77 commit 80ba5d0
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
10 changes: 7 additions & 3 deletions plc4go/internal/cbus/MessageCodec.go
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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")
}
}

Expand All @@ -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)
}

Expand Down Expand Up @@ -257,23 +259,25 @@ 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 {
log.Debug().Err(secondErr).Msg("SAL parse failed too")
}
}
{ // 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
Expand Down
6 changes: 3 additions & 3 deletions plc4go/tests/drivers/tests/manual_cbus_driver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit 80ba5d0

Please sign in to comment.