From cf73ec36a64c5f2d4d3b4392865c36b5ed86d390 Mon Sep 17 00:00:00 2001 From: Mike <45664417+thewhobox@users.noreply.github.com> Date: Wed, 15 Mar 2023 13:50:38 +0100 Subject: [PATCH] added function property state --- src/knx/bau.h | 2 ++ src/knx/bau_systemB.cpp | 16 ++++++++++++++++ src/knx/bau_systemB.h | 3 +++ 3 files changed, 21 insertions(+) diff --git a/src/knx/bau.h b/src/knx/bau.h index 47ad5d6..836bb2f 100644 --- a/src/knx/bau.h +++ b/src/knx/bau.h @@ -171,5 +171,7 @@ class BusAccessUnit #ifdef USE_FUNCTIONPROPERTYCALLBACK virtual void functionPropertyCallback(FunctionPropertyCallback func); virtual FunctionPropertyCallback functionPropertyCallback(); + virtual void functionPropertyStateCallback(FunctionPropertyCallback func); + virtual FunctionPropertyCallback functionPropertyStateCallback(); #endif }; diff --git a/src/knx/bau_systemB.cpp b/src/knx/bau_systemB.cpp index 9d8589a..9619824 100644 --- a/src/knx/bau_systemB.cpp +++ b/src/knx/bau_systemB.cpp @@ -341,7 +341,14 @@ void BauSystemB::functionPropertyStateIndication(Priority priority, HopCountType } else { +#ifdef USE_FUNCTIONPROPERTYCALLBACK + if(_functionPropertyState != 0) + _functionPropertyState(objectIndex, propertyId, length, data, resultData, resultLength); + else + resultLength = 0; +#else resultLength = 0; // We must not send a return code or any data fields +#endif } } @@ -656,4 +663,13 @@ FunctionPropertyCallback BauSystemB::functionPropertyCallback() { return _functionProperty; } +void BauSystemB::functionPropertyStateCallback(FunctionPropertyCallback func) +{ + _functionPropertyState = func; +} + +FunctionPropertyCallback BauSystemB::functionPropertyStateCallback() +{ + return _functionPropertyState; +} #endif \ No newline at end of file diff --git a/src/knx/bau_systemB.h b/src/knx/bau_systemB.h index 56f7c78..9fb10c1 100644 --- a/src/knx/bau_systemB.h +++ b/src/knx/bau_systemB.h @@ -46,6 +46,8 @@ class BauSystemB : protected BusAccessUnit #ifdef USE_FUNCTIONPROPERTYCALLBACK void functionPropertyCallback(FunctionPropertyCallback func); FunctionPropertyCallback functionPropertyCallback(); + void functionPropertyStateCallback(FunctionPropertyCallback func); + FunctionPropertyCallback functionPropertyStateCallback(); #endif protected: @@ -119,5 +121,6 @@ class BauSystemB : protected BusAccessUnit BeforeRestartCallback _beforeRestart = 0; #ifdef USE_FUNCTIONPROPERTYCALLBACK FunctionPropertyCallback _functionProperty = 0; + FunctionPropertyCallback _functionPropertyState = 0; #endif };