internal override byte[] ToFrame() { var datagram = new byte[16]; datagram[00] = 0x06; datagram[01] = 0x10; datagram[02] = 0x02; datagram[03] = 0x09; datagram[04] = 0x00; datagram[05] = 0x10; datagram[06] = KnxConnection.ChannelId; datagram[07] = 0x00; if (KnxConnection.GetType() == typeof(KnxConnectionTunneling)) { datagram[08] = 0x08; datagram[09] = 0x01; datagram[10] = KnxConnection.LocalEndpoint.Address.GetAddressBytes()[0]; datagram[11] = KnxConnection.LocalEndpoint.Address.GetAddressBytes()[1]; datagram[12] = KnxConnection.LocalEndpoint.Address.GetAddressBytes()[2]; datagram[13] = KnxConnection.LocalEndpoint.Address.GetAddressBytes()[3]; datagram[14] = (byte)(KnxConnection.LocalEndpoint.Port >> 8); datagram[15] = (byte)KnxConnection.LocalEndpoint.Port; } else { datagram[08] = 0x08; datagram[09] = 0x02; datagram[10] = 0x00; datagram[11] = 0x00; datagram[12] = 0x00; datagram[13] = 0x00; datagram[14] = 0x00; datagram[15] = 0x00; } return(datagram); }