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 };