From 68b38feaea275728287e23dfe80fda9b3e6670e5 Mon Sep 17 00:00:00 2001 From: Nanosonde <2073569+nanosonde@users.noreply.github.com> Date: Thu, 16 Jul 2020 18:58:24 +0200 Subject: [PATCH] save work --- src/knx/network_layer.cpp | 20 ++++++++++++++++++++ src/knx/network_layer.h | 2 ++ 2 files changed, 22 insertions(+) diff --git a/src/knx/network_layer.cpp b/src/knx/network_layer.cpp index f542307..8fa53d2 100644 --- a/src/knx/network_layer.cpp +++ b/src/knx/network_layer.cpp @@ -3,6 +3,7 @@ #include "tpdu.h" #include "cemi_frame.h" #include "bits.h" +#include "apdu.h" NetworkLayer::NetworkLayer(DeviceObject &deviceObj, TransportLayer& layer) : _deviceObj(deviceObj), @@ -28,6 +29,25 @@ uint8_t NetworkLayer::hopCount() const return _hopCount; } +bool NetworkLayer::isApciSystemBroadcast(APDU& apdu) +{ + switch (apdu.type()) + { + // Application Layer Services on System Broadcast communication mode + case SystemNetworkParameterRead: + case SystemNetworkParameterResponse: + case SystemNetworkParameterWrite: + // Open media specific Application Layer Services on System Broadcast communication mode + case DomainAddressSerialNumberRead: + case DomainAddressSerialNumberResponse: + case DomainAddressSerialNumberWrite: + return true; + default: + return false; + } + return false; +} + void NetworkLayer::dataIndication(AckType ack, AddressType addrType, uint16_t destination, FrameFormat format, NPDU& npdu, Priority priority, uint16_t source) { HopCountType hopType = npdu.hopCount() == 7 ? UnlimitedRouting : NetworkLayerParameter; diff --git a/src/knx/network_layer.h b/src/knx/network_layer.h index 4d02342..2e570fd 100644 --- a/src/knx/network_layer.h +++ b/src/knx/network_layer.h @@ -7,6 +7,7 @@ #include "network_layer_entity.h" class DeviceObject; +class APDU; class NetworkLayer { @@ -18,6 +19,7 @@ class NetworkLayer virtual NetworkLayerEntity& getEntity(uint8_t interfaceIndex) = 0; uint8_t hopCount() const; + bool isApciSystemBroadcast(APDU& apdu); // from transport layer virtual void dataIndividualRequest(AckType ack, uint16_t destination, HopCountType hopType, Priority priority, TPDU& tpdu) = 0;