summaryrefslogtreecommitdiffstats
path: root/src/serialbus/qmodbuspdu.h
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@theqtcompany.com>2016-03-17 14:27:05 +0100
committerKarsten Heimrich <karsten.heimrich@theqtcompany.com>2016-03-17 16:22:19 +0000
commit8a5a904441a9a60ab711721a0a6acd8089e74a79 (patch)
tree06679bd59e75a787ff7485fc3e7c6ae6e984ac1e /src/serialbus/qmodbuspdu.h
parent71e78c687c5351298fa099121da8a85f07c518b4 (diff)
Have a means to register a custom data size calculator.
Adds possibility to: * Override our data size calculation for a function code. * Implement data size calculation for a custom function code. Change-Id: I5611990a7bc10c2e90aef0f52aa1eb7ddf440717 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'src/serialbus/qmodbuspdu.h')
-rw-r--r--src/serialbus/qmodbuspdu.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/serialbus/qmodbuspdu.h b/src/serialbus/qmodbuspdu.h
index 12fd33f..ac85b76 100644
--- a/src/serialbus/qmodbuspdu.h
+++ b/src/serialbus/qmodbuspdu.h
@@ -198,6 +198,9 @@ public:
Q_SERIALBUS_EXPORT static int minimumDataSize(const QModbusRequest &pdu);
Q_SERIALBUS_EXPORT static int calculateDataSize(const QModbusRequest &pdu);
+ using CalcFuncPtr = decltype(&calculateDataSize);
+ Q_SERIALBUS_EXPORT static void registerDataSizeCalculator(FunctionCode fc, CalcFuncPtr func);
+
template <typename ... Args>
QModbusRequest(FunctionCode code, Args ... newData)
: QModbusPdu(code, newData...)
@@ -220,6 +223,9 @@ public:
Q_SERIALBUS_EXPORT static int minimumDataSize(const QModbusResponse &pdu);
Q_SERIALBUS_EXPORT static int calculateDataSize(const QModbusResponse &pdu);
+ using CalcFuncPtr = decltype(&calculateDataSize);
+ Q_SERIALBUS_EXPORT static void registerDataSizeCalculator(FunctionCode fc, CalcFuncPtr func);
+
template <typename ... Args>
QModbusResponse(FunctionCode code, Args ... newData)
: QModbusPdu(code, newData...)