knx
ETS configurable knx-stack
network_layer_device.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdint.h>
4 #include "knx_types.h"
5 #include "npdu.h"
6 #include "transport_layer.h"
7 #include "network_layer_entity.h"
8 #include "network_layer.h"
9 
10 class DeviceObject;
11 
13 {
14  friend class NetworkLayerEntity;
15 
16  public:
18 
20 
21  // from transport layer
22  void dataIndividualRequest(AckType ack, uint16_t destination, HopCountType hopType, Priority priority, TPDU& tpdu) override;
23  void dataGroupRequest(AckType ack, uint16_t destination, HopCountType hopType, Priority priority, TPDU& tpdu) override;
24  void dataBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, TPDU& tpdu) override;
25  void dataSystemBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, TPDU& tpdu) override;
26 
27  private:
28  // from entities
29  void dataIndication(AckType ack, AddressType addType, uint16_t destination, FrameFormat format, NPDU& npdu,
30  Priority priority, uint16_t source, uint8_t srcIfIdx) override;
31  void dataConfirm(AckType ack, AddressType addrType, uint16_t destination, FrameFormat format, Priority priority,
32  uint16_t source, NPDU& npdu, bool status, uint8_t srcIfIdx) override;
33  void broadcastIndication(AckType ack, FrameFormat format, NPDU& npdu,
34  Priority priority, uint16_t source, uint8_t srcIfIdx) override;
35  void broadcastConfirm(AckType ack, FrameFormat format, Priority priority, uint16_t source, NPDU& npdu, bool status, uint8_t srcIfIdx) override;
36  void systemBroadcastIndication(AckType ack, FrameFormat format, NPDU& npdu,
37  Priority priority, uint16_t source, uint8_t srcIfIdx) override;
38  void systemBroadcastConfirm(AckType ack, FrameFormat format, Priority priority, uint16_t source, NPDU& npdu, bool status, uint8_t srcIfIdx) override;
39 
40  // Support only a single physical interface for normal devices
41  NetworkLayerEntity _netLayerEntities[1];
42 
43  static constexpr uint8_t kInterfaceIndex = 0;
44 };
Definition: npdu.h:9
void dataIndividualRequest(AckType ack, uint16_t destination, HopCountType hopType, Priority priority, TPDU &tpdu) override
NetworkLayerEntity & getInterface()
void dataGroupRequest(AckType ack, uint16_t destination, HopCountType hopType, Priority priority, TPDU &tpdu) override
void dataSystemBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, TPDU &tpdu) override
void dataBroadcastRequest(AckType ack, HopCountType hopType, Priority priority, TPDU &tpdu) override
NetworkLayerDevice(DeviceObject &deviceObj, TransportLayer &layer)
void systemBroadcastIndication(AckType ack, FrameFormat format, NPDU &npdu, Priority priority, uint16_t source)
void dataConfirm(AckType ack, AddressType addressType, uint16_t destination, FrameFormat format, Priority priority, uint16_t source, NPDU &npdu, bool status)
void systemBroadcastConfirm(AckType ack, FrameFormat format, Priority priority, uint16_t source, NPDU &npdu, bool status)
void dataIndication(AckType ack, AddressType addType, uint16_t destination, FrameFormat format, NPDU &npdu, Priority priority, uint16_t source)
void broadcastConfirm(AckType ack, FrameFormat format, Priority priority, uint16_t source, NPDU &npdu, bool status)
void broadcastIndication(AckType ack, FrameFormat format, NPDU &npdu, Priority priority, uint16_t source)
Definition: tpdu.h:9
HopCountType
Definition: knx_types.h:124
Priority
Definition: knx_types.h:10
FrameFormat
Definition: knx_types.h:4
AckType
Definition: knx_types.h:18
AddressType
Definition: knx_types.h:33