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/10 14:38:59 UTC
[plc4x] branch develop updated: fix(plc4go/cbus): fixed reader using the wrong options
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 1dcab3d7a fix(plc4go/cbus): fixed reader using the wrong options
1dcab3d7a is described below
commit 1dcab3d7acc92bcb8c988c37f99bd309183b7770
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Aug 10 16:38:52 2022 +0200
fix(plc4go/cbus): fixed reader using the wrong options
---
plc4go/internal/cbus/Reader.go | 43 +++++++++++++++++++++---------------------
1 file changed, 21 insertions(+), 22 deletions(-)
diff --git a/plc4go/internal/cbus/Reader.go b/plc4go/internal/cbus/Reader.go
index 954463e09..d28182dc3 100644
--- a/plc4go/internal/cbus/Reader.go
+++ b/plc4go/internal/cbus/Reader.go
@@ -266,10 +266,9 @@ func (m *Reader) Read(readRequest model.PlcReadRequest) <-chan model.PlcReadRequ
return result
}
-var defaultRequestContext = readWriteModel.NewRequestContext(false)
-var defaultOptions = readWriteModel.NewCBusOptions(false, false, false, false, false, false, false, false, false)
-
func (m *Reader) fieldToCBusMessage(field model.PlcField) (readWriteModel.CBusMessage, error) {
+ cbusOptions := m.messageCodec.(*MessageCodec).cbusOptions
+ requestContext := m.messageCodec.(*MessageCodec).requestContext
switch field := field.(type) {
case *statusField:
var statusRequest readWriteModel.StatusRequest
@@ -279,35 +278,35 @@ func (m *Reader) fieldToCBusMessage(field model.PlcField) (readWriteModel.CBusMe
case StatusRequestTypeLevel:
statusRequest = readWriteModel.NewStatusRequestLevel(field.application, *field.startingGroupAddressLabel, 0x73)
}
- command := readWriteModel.NewCBusPointToMultiPointCommandStatus(statusRequest, byte(field.application), defaultOptions)
+ command := readWriteModel.NewCBusPointToMultiPointCommandStatus(statusRequest, byte(field.application), cbusOptions)
header := readWriteModel.NewCBusHeader(readWriteModel.PriorityClass_Class4, false, 0, readWriteModel.DestinationAddressType_PointToMultiPoint)
- cbusCommand := readWriteModel.NewCBusCommandPointToMultiPoint(command, header, defaultOptions)
- request := readWriteModel.NewRequestCommand(cbusCommand, nil, readWriteModel.NewAlpha(m.alphaGenerator.getAndIncrement()), readWriteModel.RequestType_REQUEST_COMMAND, nil, nil, readWriteModel.RequestType_EMPTY, readWriteModel.NewRequestTermination(), defaultOptions)
- return readWriteModel.NewCBusMessageToServer(request, defaultRequestContext, defaultOptions), nil
+ cbusCommand := readWriteModel.NewCBusCommandPointToMultiPoint(command, header, cbusOptions)
+ request := readWriteModel.NewRequestCommand(cbusCommand, nil, readWriteModel.NewAlpha(m.alphaGenerator.getAndIncrement()), readWriteModel.RequestType_REQUEST_COMMAND, nil, nil, readWriteModel.RequestType_EMPTY, readWriteModel.NewRequestTermination(), cbusOptions)
+ return readWriteModel.NewCBusMessageToServer(request, requestContext, cbusOptions), nil
case *calRecallField:
- calData := readWriteModel.NewCALDataRecall(field.parameter, field.count, readWriteModel.CALCommandTypeContainer_CALCommandRecall, nil, defaultRequestContext)
+ calData := readWriteModel.NewCALDataRecall(field.parameter, field.count, readWriteModel.CALCommandTypeContainer_CALCommandRecall, nil, requestContext)
//TODO: we need support for bridged commands
- command := readWriteModel.NewCBusPointToPointCommandDirect(field.unitAddress, 0x0000, calData, defaultOptions)
+ command := readWriteModel.NewCBusPointToPointCommandDirect(field.unitAddress, 0x0000, calData, cbusOptions)
header := readWriteModel.NewCBusHeader(readWriteModel.PriorityClass_Class4, false, 0, readWriteModel.DestinationAddressType_PointToPoint)
- cbusCommand := readWriteModel.NewCBusCommandPointToPoint(command, header, defaultOptions)
- request := readWriteModel.NewRequestCommand(cbusCommand, nil, readWriteModel.NewAlpha(m.alphaGenerator.getAndIncrement()), readWriteModel.RequestType_REQUEST_COMMAND, nil, nil, readWriteModel.RequestType_EMPTY, readWriteModel.NewRequestTermination(), defaultOptions)
- return readWriteModel.NewCBusMessageToServer(request, defaultRequestContext, defaultOptions), nil
+ cbusCommand := readWriteModel.NewCBusCommandPointToPoint(command, header, cbusOptions)
+ request := readWriteModel.NewRequestCommand(cbusCommand, nil, readWriteModel.NewAlpha(m.alphaGenerator.getAndIncrement()), readWriteModel.RequestType_REQUEST_COMMAND, nil, nil, readWriteModel.RequestType_EMPTY, readWriteModel.NewRequestTermination(), cbusOptions)
+ return readWriteModel.NewCBusMessageToServer(request, requestContext, cbusOptions), nil
case *calIdentifyField:
- calData := readWriteModel.NewCALDataIdentify(field.attribute, readWriteModel.CALCommandTypeContainer_CALCommandIdentify, nil, defaultRequestContext)
+ calData := readWriteModel.NewCALDataIdentify(field.attribute, readWriteModel.CALCommandTypeContainer_CALCommandIdentify, nil, requestContext)
//TODO: we need support for bridged commands
- command := readWriteModel.NewCBusPointToPointCommandDirect(field.unitAddress, 0x0000, calData, defaultOptions)
+ command := readWriteModel.NewCBusPointToPointCommandDirect(field.unitAddress, 0x0000, calData, cbusOptions)
header := readWriteModel.NewCBusHeader(readWriteModel.PriorityClass_Class4, false, 0, readWriteModel.DestinationAddressType_PointToPoint)
- cbusCommand := readWriteModel.NewCBusCommandPointToPoint(command, header, defaultOptions)
- request := readWriteModel.NewRequestCommand(cbusCommand, nil, readWriteModel.NewAlpha(m.alphaGenerator.getAndIncrement()), readWriteModel.RequestType_REQUEST_COMMAND, nil, nil, readWriteModel.RequestType_EMPTY, readWriteModel.NewRequestTermination(), defaultOptions)
- return readWriteModel.NewCBusMessageToServer(request, defaultRequestContext, defaultOptions), nil
+ cbusCommand := readWriteModel.NewCBusCommandPointToPoint(command, header, cbusOptions)
+ request := readWriteModel.NewRequestCommand(cbusCommand, nil, readWriteModel.NewAlpha(m.alphaGenerator.getAndIncrement()), readWriteModel.RequestType_REQUEST_COMMAND, nil, nil, readWriteModel.RequestType_EMPTY, readWriteModel.NewRequestTermination(), cbusOptions)
+ return readWriteModel.NewCBusMessageToServer(request, requestContext, cbusOptions), nil
case *calGetstatusField:
- calData := readWriteModel.NewCALDataGetStatus(field.parameter, field.count, readWriteModel.CALCommandTypeContainer_CALCommandGetStatus, nil, defaultRequestContext)
+ calData := readWriteModel.NewCALDataGetStatus(field.parameter, field.count, readWriteModel.CALCommandTypeContainer_CALCommandGetStatus, nil, requestContext)
//TODO: we need support for bridged commands
- command := readWriteModel.NewCBusPointToPointCommandDirect(field.unitAddress, 0x0000, calData, defaultOptions)
+ command := readWriteModel.NewCBusPointToPointCommandDirect(field.unitAddress, 0x0000, calData, cbusOptions)
header := readWriteModel.NewCBusHeader(readWriteModel.PriorityClass_Class4, false, 0, readWriteModel.DestinationAddressType_PointToPoint)
- cbusCommand := readWriteModel.NewCBusCommandPointToPoint(command, header, defaultOptions)
- request := readWriteModel.NewRequestCommand(cbusCommand, nil, readWriteModel.NewAlpha(m.alphaGenerator.getAndIncrement()), readWriteModel.RequestType_REQUEST_COMMAND, nil, nil, readWriteModel.RequestType_EMPTY, readWriteModel.NewRequestTermination(), defaultOptions)
- return readWriteModel.NewCBusMessageToServer(request, defaultRequestContext, defaultOptions), nil
+ cbusCommand := readWriteModel.NewCBusCommandPointToPoint(command, header, cbusOptions)
+ request := readWriteModel.NewRequestCommand(cbusCommand, nil, readWriteModel.NewAlpha(m.alphaGenerator.getAndIncrement()), readWriteModel.RequestType_REQUEST_COMMAND, nil, nil, readWriteModel.RequestType_EMPTY, readWriteModel.NewRequestTermination(), cbusOptions)
+ return readWriteModel.NewCBusMessageToServer(request, requestContext, cbusOptions), nil
default:
return nil, errors.Errorf("Unmapped type %T", field)
}