knx
ETS configurable knx-stack
network_layer_entity.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 
7 class DataLinkLayer;
8 class NetworkLayer;
9 
11 {
12  friend class NetworkLayerCoupler;
13  friend class NetworkLayerDevice;
14 
15  public:
16  NetworkLayerEntity(NetworkLayer& netLayer, uint8_t entityIndex);
17 
18  void dataLinkLayer(DataLinkLayer& layer);
21 
22  DptMedium mediumType() const;
23  uint8_t getEntityIndex();
24 
25  // from data link layer
26  void dataIndication(AckType ack, AddressType addType, uint16_t destination, FrameFormat format, NPDU& npdu,
27  Priority priority, uint16_t source);
28  void dataConfirm(AckType ack, AddressType addressType, uint16_t destination, FrameFormat format, Priority priority,
29  uint16_t source, NPDU& npdu, bool status);
30  void broadcastIndication(AckType ack, FrameFormat format, NPDU& npdu,
31  Priority priority, uint16_t source);
32  void broadcastConfirm(AckType ack, FrameFormat format, Priority priority, uint16_t source, NPDU& npdu, bool status);
33  void systemBroadcastIndication(AckType ack, FrameFormat format, NPDU& npdu,
34  Priority priority, uint16_t source);
35  void systemBroadcastConfirm(AckType ack, FrameFormat format, Priority priority, uint16_t source, NPDU& npdu, bool status);
36 
37  private:
38  // From network layer
39  void sendDataRequest(NPDU& npdu, AckType ack, uint16_t destination, uint16_t source, Priority priority, AddressType addrType, SystemBroadcast systemBroadcast, bool doNotRepeat = false);
40 
41  DataLinkLayer* _dataLinkLayer = 0;
42  NetworkLayer& _netLayer;
43  uint8_t _entityIndex;
44 };
Definition: npdu.h:9
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)
DataLinkLayer & dataLinkLayer()
NetworkLayerEntity(NetworkLayer &netLayer, uint8_t entityIndex)
NetworkLayer & networkLayer()
DptMedium mediumType() const
void broadcastIndication(AckType ack, FrameFormat format, NPDU &npdu, Priority priority, uint16_t source)
Priority
Definition: knx_types.h:10
FrameFormat
Definition: knx_types.h:4
AckType
Definition: knx_types.h:18
DptMedium
Definition: knx_types.h:254
AddressType
Definition: knx_types.h:33
SystemBroadcast
Definition: knx_types.h:112