From 03f55f5503759061800063814dbb5f357e281b44 Mon Sep 17 00:00:00 2001 From: Marco Scholl Date: Mon, 26 Feb 2024 23:55:38 +0100 Subject: [PATCH] Makes the data link layer accessible from outside --- src/knx/bau07B0.cpp | 3 +++ src/knx/bau07B0.h | 3 ++- src/knx/bau091A.cpp | 7 +++++++ src/knx/bau091A.h | 2 ++ src/knx/bau27B0.cpp | 4 +++- src/knx/bau27B0.h | 1 + src/knx/bau2920.cpp | 7 +++++++ src/knx/bau2920.h | 2 ++ src/knx/bau57B0.cpp | 3 +++ src/knx/bau57B0.h | 3 ++- 10 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/knx/bau07B0.cpp b/src/knx/bau07B0.cpp index c68ecb2..c30906b 100644 --- a/src/knx/bau07B0.cpp +++ b/src/knx/bau07B0.cpp @@ -151,4 +151,7 @@ bool Bau07B0::isAckRequired(uint16_t address, bool isGrpAddr) return false; } +TpUartDataLinkLayer* Bau07B0::getDataLinkLayer() { + return (TpUartDataLinkLayer*)&_dlLayer; +} #endif diff --git a/src/knx/bau07B0.h b/src/knx/bau07B0.h index b9c1e6c..b87ca6d 100644 --- a/src/knx/bau07B0.h +++ b/src/knx/bau07B0.h @@ -15,7 +15,8 @@ class Bau07B0 : public BauSystemBDevice, public ITpUartCallBacks, public DataLin void loop() override; bool enabled() override; void enabled(bool value) override; - + + TpUartDataLinkLayer* getDataLinkLayer(); protected: InterfaceObject* getInterfaceObject(uint8_t idx); InterfaceObject* getInterfaceObject(ObjectType objectType, uint8_t objectInstance); diff --git a/src/knx/bau091A.cpp b/src/knx/bau091A.cpp index 2465bc4..202315f 100644 --- a/src/knx/bau091A.cpp +++ b/src/knx/bau091A.cpp @@ -167,4 +167,11 @@ bool Bau091A::isAckRequired(uint16_t address, bool isGrpAddr) return false; } +IpDataLinkLayer* Bau091A::getPrimaryDataLinkLayer() { + return (IpDataLinkLayer*)&_dlLayerPrimary; +} + +TpUartDataLinkLayer* Bau091A::getSecondaryDataLinkLayer() { + return (TpUartDataLinkLayer*)&_dlLayerSecondary; +} #endif diff --git a/src/knx/bau091A.h b/src/knx/bau091A.h index 606fbda..59b8151 100644 --- a/src/knx/bau091A.h +++ b/src/knx/bau091A.h @@ -18,6 +18,8 @@ class Bau091A : public BauSystemBCoupler, public ITpUartCallBacks, public DataLi bool enabled() override; void enabled(bool value) override; + IpDataLinkLayer* getPrimaryDataLinkLayer(); + TpUartDataLinkLayer* getSecondaryDataLinkLayer(); protected: InterfaceObject* getInterfaceObject(uint8_t idx); InterfaceObject* getInterfaceObject(ObjectType objectType, uint8_t objectInstance); diff --git a/src/knx/bau27B0.cpp b/src/knx/bau27B0.cpp index 6180539..e11cde7 100644 --- a/src/knx/bau27B0.cpp +++ b/src/knx/bau27B0.cpp @@ -181,5 +181,7 @@ void Bau27B0::domainAddressSerialNumberReadLocalConfirm(Priority priority, HopCo { } - +RfDataLinkLayer* Bau27B0::getDataLinkLayer() { + return (RfDataLinkLayer*)&_dlLayer; +} #endif // #ifdef USE_RF diff --git a/src/knx/bau27B0.h b/src/knx/bau27B0.h index 222a848..b5d5e81 100644 --- a/src/knx/bau27B0.h +++ b/src/knx/bau27B0.h @@ -22,6 +22,7 @@ class Bau27B0 : public BauSystemBDevice bool enabled() override; void enabled(bool value) override; + RfDataLinkLayer* getDataLinkLayer(); protected: InterfaceObject* getInterfaceObject(uint8_t idx); InterfaceObject* getInterfaceObject(ObjectType objectType, uint8_t objectInstance); diff --git a/src/knx/bau2920.cpp b/src/knx/bau2920.cpp index f5e5367..3ed7827 100644 --- a/src/knx/bau2920.cpp +++ b/src/knx/bau2920.cpp @@ -154,4 +154,11 @@ void Bau2920::loop() BauSystemBCoupler::loop(); } +TpUartDataLinkLayer* Bau2920::getPrimaryDataLinkLayer() { + return (TpUartDataLinkLayer*)&_dlLayerPrimary; +} + +RfDataLinkLayer* Bau2920::getSecondaryDataLinkLayer() { + return (RfDataLinkLayer*)&_dlLayerSecondary; +} #endif diff --git a/src/knx/bau2920.h b/src/knx/bau2920.h index 43a5bc5..6c0bbcb 100644 --- a/src/knx/bau2920.h +++ b/src/knx/bau2920.h @@ -22,6 +22,8 @@ class Bau2920 : public BauSystemBCoupler bool enabled() override; void enabled(bool value) override; + TpUartDataLinkLayer* getPrimaryDataLinkLayer(); + RfDataLinkLayer* getSecondaryDataLinkLayer(); protected: InterfaceObject* getInterfaceObject(uint8_t idx); InterfaceObject* getInterfaceObject(ObjectType objectType, uint8_t objectInstance); diff --git a/src/knx/bau57B0.cpp b/src/knx/bau57B0.cpp index 75522aa..2e3b7d2 100644 --- a/src/knx/bau57B0.cpp +++ b/src/knx/bau57B0.cpp @@ -145,4 +145,7 @@ void Bau57B0::loop() #endif } +IpDataLinkLayer* Bau57B0::getDataLinkLayer() { + return (IpDataLinkLayer*)&_dlLayer; +} #endif diff --git a/src/knx/bau57B0.h b/src/knx/bau57B0.h index f6309f9..fb437a1 100644 --- a/src/knx/bau57B0.h +++ b/src/knx/bau57B0.h @@ -15,7 +15,8 @@ class Bau57B0 : public BauSystemBDevice, public DataLinkLayerCallbacks void loop() override; bool enabled() override; void enabled(bool value) override; - + + IpDataLinkLayer* getDataLinkLayer(); protected: InterfaceObject* getInterfaceObject(uint8_t idx); InterfaceObject* getInterfaceObject(ObjectType objectType, uint8_t objectInstance);