diff --git a/src/knx/application_layer.cpp b/src/knx/application_layer.cpp index 99f06b6..247cb56 100644 --- a/src/knx/application_layer.cpp +++ b/src/knx/application_layer.cpp @@ -829,6 +829,12 @@ void ApplicationLayer::individualIndication(HopCountType hopType, Priority prior startIndex, data + 5, apdu.length() - 5); break; } + case FunctionPropertyCommand: + _bau.functionPropertyCommandIndication(priority, hopType, tsap, data[1], data[2], &data[3], apdu.length() - 4); //TODO: check length + break; + case FunctionPropertyState: + _bau.functionPropertyStateIndication(priority, hopType, tsap, data[1], data[2], &data[3], apdu.length() - 4); //TODO: check length + break; case PropertyDescriptionRead: _bau.propertyDescriptionReadIndication(priority, hopType, tsap, data[1], data[2], data[3]); break; diff --git a/src/knx/bau.cpp b/src/knx/bau.cpp index e2b1a9d..f28c94f 100644 --- a/src/knx/bau.cpp +++ b/src/knx/bau.cpp @@ -106,6 +106,14 @@ void BusAccessUnit::propertyValueReadIndication(Priority priority, HopCountType { } +void BusAccessUnit::functionPropertyCommandIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t* data, uint8_t length) +{ +} + +void BusAccessUnit::functionPropertyStateIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t* data, uint8_t length) +{ +} + void BusAccessUnit::propertyValueReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length, bool status) { } diff --git a/src/knx/bau.h b/src/knx/bau.h index a0e567c..444c61f 100644 --- a/src/knx/bau.h +++ b/src/knx/bau.h @@ -48,6 +48,10 @@ class BusAccessUnit uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, bool status); virtual void propertyValueReadIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex); + virtual void functionPropertyCommandIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, + uint8_t propertyId, uint8_t* data, uint8_t length); + virtual void functionPropertyStateIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, + uint8_t propertyId, uint8_t* data, uint8_t length); virtual void propertyValueReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length, bool status); virtual void propertyValueReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex,