mirror of
https://github.com/thelsing/knx.git
synced 2025-04-09 01:16:57 +02:00
56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "cemi_frame.h"
|
|
#include "config.h"
|
|
#ifdef USE_IP
|
|
|
|
#define LEN_KNXIP_HEADER 0x6
|
|
|
|
enum KnxIpVersion
|
|
{
|
|
KnxIp1_0 = 0x10
|
|
};
|
|
|
|
enum KnxIpServiceType
|
|
{
|
|
SearchRequest = 0x201,
|
|
SearchResponse = 0x202,
|
|
DescriptionRequest = 0x203,
|
|
DescriptionResponse = 0x204,
|
|
ConnectRequest = 0x205,
|
|
ConnectResponse = 0x206,
|
|
ConnectionStateRequest = 0x207,
|
|
ConnectionStateResponse = 0x208,
|
|
DisconnectRequest = 0x209,
|
|
DisconnectResponse = 0x20A,
|
|
DeviceConfigurationRequest = 0x310,
|
|
DeviceConfigurationAck = 0x311,
|
|
TunnelingRequest = 0x420,
|
|
TunnelingAck = 0x421,
|
|
RoutingIndication = 0x530,
|
|
RoutingLostMessage = 0x531,
|
|
};
|
|
|
|
class KnxIpFrame
|
|
{
|
|
public:
|
|
KnxIpFrame(uint8_t* data, uint16_t length);
|
|
KnxIpFrame(uint16_t totalLength);
|
|
virtual ~KnxIpFrame();
|
|
uint8_t headerLength() const;
|
|
void headerLength(uint8_t length);
|
|
KnxIpVersion protocolVersion() const;
|
|
void protocolVersion(KnxIpVersion version);
|
|
uint16_t serviceTypeIdentifier() const;
|
|
void serviceTypeIdentifier(uint16_t identifier);
|
|
uint16_t totalLength() const;
|
|
void totalLength(uint16_t length);
|
|
uint8_t* data();
|
|
|
|
protected:
|
|
bool _freeData = false;
|
|
uint8_t* _data = 0;
|
|
uint16_t _dataLength;
|
|
};
|
|
#endif
|