mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01:00 
			
		
		
		
	Move code from header to source file
This commit is contained in:
		
							parent
							
								
									0834618843
								
							
						
					
					
						commit
						3297b53332
					
				@ -8,7 +8,7 @@
 | 
			
		||||
#include "bits.h"
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user