diff --git a/src/knx/secure_application_layer.cpp b/src/knx/secure_application_layer.cpp index 6dde69a..bddf56f 100644 --- a/src/knx/secure_application_layer.cpp +++ b/src/knx/secure_application_layer.cpp @@ -73,6 +73,24 @@ void SecureApplicationLayer::dataBroadcastConfirm(AckType ack, HopCountType hopT ApplicationLayer::dataBroadcastConfirm(ack, hopType, priority, apdu, status); } +void SecureApplicationLayer::dataSystemBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) +{ + if (apdu.type() == SecureService) + { + // Secure APDU is not allowed in SystemBroadcast + println("Secure APDU in SystemBroadcast not allowed!"); + } + else + { + ApplicationLayer::dataSystemBroadcastIndication(hopType, priority, source, apdu); + } +} + +void SecureApplicationLayer::dataSystemBroadcastConfirm(HopCountType hopType, Priority priority, APDU& apdu, bool status) +{ + ApplicationLayer::dataSystemBroadcastConfirm(hopType, priority, apdu, status); +} + void SecureApplicationLayer::dataIndividualIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu) { if (apdu.type() == SecureService) diff --git a/src/knx/secure_application_layer.h b/src/knx/secure_application_layer.h index 94805c4..a99add1 100644 --- a/src/knx/secure_application_layer.h +++ b/src/knx/secure_application_layer.h @@ -30,6 +30,8 @@ class SecureApplicationLayer : public ApplicationLayer APDU& apdu, bool status) override; virtual void dataBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) override; virtual void dataBroadcastConfirm(AckType ack, HopCountType hopType, Priority priority, APDU& apdu, bool status) override; + virtual void dataSystemBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) override; + virtual void dataSystemBroadcastConfirm(HopCountType hopType, Priority priority, APDU& apdu, bool status) override; virtual void dataIndividualIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) override; virtual void dataIndividualConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, bool status) override; virtual void connectIndication(uint16_t tsap) override;