From 3297b533329e7d494d05b52f094cdad6815de0f2 Mon Sep 17 00:00:00 2001 From: Nanosonde <2073569+nanosonde@users.noreply.github.com> Date: Thu, 2 Jul 2020 12:17:06 +0200 Subject: [PATCH] Move code from header to source file --- src/knx/application_layer.cpp | 52 +++++++++++++++++++++++++++++++++-- src/knx/application_layer.h | 24 ++++++++-------- 2 files changed, 62 insertions(+), 14 deletions(-) diff --git a/src/knx/application_layer.cpp b/src/knx/application_layer.cpp index f63317c..f2bcbe2 100644 --- a/src/knx/application_layer.cpp +++ b/src/knx/application_layer.cpp @@ -8,7 +8,7 @@ #include "bits.h" #include -const SecurityControl ApplicationLayer::noSecurity {.toolAccess=true, .dataSecurity=DataSecurity::none}; +const SecurityControl ApplicationLayer::noSecurity {.toolAccess=false, .dataSecurity=DataSecurity::none}; ApplicationLayer::ApplicationLayer(AssociationTableObject& assocTable, BusAccessUnit& bau): _assocTable(assocTable), _bau(bau) @@ -19,10 +19,14 @@ void ApplicationLayer::transportLayer(TransportLayer& layer) { _transportLayer = &layer; } -static constexpr SecurityControl noSecurity {.toolAccess=true, .dataSecurity=DataSecurity::none}; #pragma region TL Callbacks +void ApplicationLayer::dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu) +{ + dataGroupIndication(hopType, priority, tsap, apdu, noSecurity); +} + void ApplicationLayer::dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, const SecurityControl& secCtrl) { uint8_t len = apdu.length(); @@ -61,6 +65,11 @@ void ApplicationLayer::dataGroupIndication(HopCountType hopType, Priority priori } } +void ApplicationLayer::dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, bool status) +{ + dataGroupConfirm(ack, hopType, priority, tsap, apdu, noSecurity, status); +} + void ApplicationLayer::dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, const SecurityControl &secCtrl, bool status) { switch (apdu.type()) @@ -80,6 +89,11 @@ void ApplicationLayer::dataGroupConfirm(AckType ack, HopCountType hopType, Prior } } +void ApplicationLayer::dataBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) +{ + dataBroadcastIndication(hopType, priority, source, apdu, noSecurity); +} + void ApplicationLayer::dataBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu, const SecurityControl& secCtrl) { uint8_t* data = apdu.data(); @@ -133,6 +147,11 @@ void ApplicationLayer::dataBroadcastIndication(HopCountType hopType, Priority pr } } +void ApplicationLayer::dataBroadcastConfirm(AckType ack, HopCountType hopType, Priority priority, APDU& apdu, bool status) +{ + dataBroadcastConfirm(ack, hopType, priority, apdu, noSecurity, status); +} + void ApplicationLayer::dataBroadcastConfirm(AckType ack, HopCountType hopType, Priority priority, APDU& apdu, const SecurityControl& secCtrl, bool status) { uint8_t* data = apdu.data(); @@ -181,6 +200,11 @@ void ApplicationLayer::dataBroadcastConfirm(AckType ack, HopCountType hopType, P } } +void ApplicationLayer::dataSystemBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) +{ + dataSystemBroadcastIndication(hopType, priority, source, apdu, noSecurity); +} + void ApplicationLayer::dataSystemBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu, const SecurityControl &secCtrl) { const uint8_t* data = apdu.data(); @@ -225,6 +249,10 @@ void ApplicationLayer::dataSystemBroadcastIndication(HopCountType hopType, Prior } } +void ApplicationLayer::dataSystemBroadcastConfirm(HopCountType hopType, Priority priority, APDU& apdu, bool status) { + dataSystemBroadcastConfirm(hopType, priority, apdu, noSecurity, status); +} + void ApplicationLayer::dataSystemBroadcastConfirm(HopCountType hopType, Priority priority, APDU& apdu, const SecurityControl& secCtrl, bool status) { const uint8_t* data = apdu.data(); @@ -269,11 +297,21 @@ void ApplicationLayer::dataSystemBroadcastConfirm(HopCountType hopType, Priority } } +void ApplicationLayer::dataIndividualIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) +{ + dataIndividualIndication(hopType, priority, source, apdu, noSecurity); +} + void ApplicationLayer::dataIndividualIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, const SecurityControl& secCtrl) { individualIndication(hopType, priority, tsap, apdu, secCtrl); } +void ApplicationLayer::dataIndividualConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, bool status) +{ + dataIndividualConfirm(ack, hopType, priority, tsap, apdu, noSecurity, status); +} + void ApplicationLayer::dataIndividualConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, const SecurityControl &secCtrl, bool status) { individualConfirm(ack, hopType, priority, tsap, apdu, secCtrl, status); @@ -305,11 +343,21 @@ void ApplicationLayer::disconnectConfirm(Priority priority, uint16_t tsap, bool _connectedTsap = -1; } +void ApplicationLayer::dataConnectedIndication(Priority priority, uint16_t tsap, APDU& apdu) +{ + dataConnectedIndication(priority, tsap, apdu, noSecurity); +} + void ApplicationLayer::dataConnectedIndication(Priority priority, uint16_t tsap, APDU& apdu, const SecurityControl& secCtrl) { individualIndication(NetworkLayerParameter, priority, tsap, apdu, secCtrl); } +void ApplicationLayer::dataConnectedConfirm(uint16_t tsap) +{ + dataConnectedConfirm(tsap, noSecurity); +} + void ApplicationLayer::dataConnectedConfirm(uint16_t tsap, const SecurityControl& secCtrl) { diff --git a/src/knx/application_layer.h b/src/knx/application_layer.h index d0a7474..ec57467 100644 --- a/src/knx/application_layer.h +++ b/src/knx/application_layer.h @@ -30,6 +30,8 @@ class ApplicationLayer // from transport layer // Note: without data secure feature, the application layer is just used with SecurtyControl.dataSecurity = none + // hooks that can be implemented by derived class (e.g. SecureApplicationLayer) + #pragma region Transport - Layer - Callbacks /** * Somebody send us an APDU via multicast communiation. See 3.2 of @cite knx:3/3/4. @@ -45,7 +47,7 @@ class ApplicationLayer * * @param hopType Should routing be endless or should the NetworkLayer::hopCount be used? See also ::HopCountType. */ - virtual void dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu) {dataGroupIndication(hopType, priority, tsap, apdu, noSecurity);} + virtual void dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu); /** * Report the status of an APDU that we sent via multicast communiation back to us. See 3.2 of @cite knx:3/3/4. * See also ApplicationLayer::dataGroupConfirm and TransportLayer::dataGroupRequest. This method is called by @@ -64,16 +66,15 @@ class ApplicationLayer * * @param ack Did we want a DataLinkLayer acknowledgement? See ::AckType. */ - virtual void dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, - APDU& apdu, bool status) {dataGroupConfirm(ack, hopType, priority, tsap, apdu, noSecurity, status);} - virtual void dataBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) {dataBroadcastIndication(hopType, priority, source, apdu, noSecurity);} - virtual void dataBroadcastConfirm(AckType ack, HopCountType hopType, Priority priority, APDU& apdu, bool status) {dataBroadcastConfirm(ack, hopType, priority, apdu, noSecurity, status);} - virtual void dataSystemBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) {dataSystemBroadcastIndication(hopType, priority, source, apdu, noSecurity);} - virtual void dataSystemBroadcastConfirm(HopCountType hopType, Priority priority, APDU& apdu, bool status) {dataSystemBroadcastConfirm(hopType, priority, apdu, noSecurity, status);} - virtual void dataIndividualIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu) {dataIndividualIndication(hopType, priority, source, apdu, noSecurity);} - virtual void dataIndividualConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, bool status) {dataIndividualConfirm(ack, hopType, priority, tsap, apdu, noSecurity, status);} - virtual void dataConnectedIndication(Priority priority, uint16_t tsap, APDU& apdu) {dataConnectedIndication(priority, tsap, apdu, noSecurity);} - virtual void dataConnectedConfirm(uint16_t tsap) {dataConnectedConfirm(tsap, noSecurity);} + virtual void dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, bool status); + virtual void dataBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu); + virtual void dataBroadcastConfirm(AckType ack, HopCountType hopType, Priority priority, APDU& apdu, bool status); + virtual void dataSystemBroadcastIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu); + virtual void dataSystemBroadcastConfirm(HopCountType hopType, Priority priority, APDU& apdu, bool status); + virtual void dataIndividualIndication(HopCountType hopType, Priority priority, uint16_t source, APDU& apdu); + virtual void dataIndividualConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, bool status); + virtual void dataConnectedIndication(Priority priority, uint16_t tsap, APDU& apdu); + virtual void dataConnectedConfirm(uint16_t tsap); void connectIndication(uint16_t tsap); void connectConfirm(uint16_t destination, uint16_t tsap, bool status); void disconnectIndication(uint16_t tsap); @@ -151,7 +152,6 @@ class ApplicationLayer protected: - // hooks that can be implemented by derived class (e.g. SecureApplicationLayer) #pragma region hooks void dataGroupIndication(HopCountType hopType, Priority priority, uint16_t tsap, APDU& apdu, const SecurityControl &secCtrl); void dataGroupConfirm(AckType ack, HopCountType hopType, Priority priority, uint16_t tsap,