knx/src/knxold/knx_ip_frame.h
OnlineCaveman 6c4a10e189 Fault in change tracking
Renaming subdir knx to force changes
2022-10-17 19:51:31 +02:00

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