protected override byte[] CreateActionDatagram(string destinationAddress, byte[] data) { lock (KnxConnectionTunneling.SequenceNumberLock) { try { var dataLength = KnxHelper.GetDataLength(data); // HEADER var datagram = new byte[10]; datagram[00] = 0x06; datagram[01] = 0x10; datagram[02] = 0x04; datagram[03] = 0x20; var totalLength = BitConverter.GetBytes(dataLength + 20); datagram[04] = totalLength[1]; datagram[05] = totalLength[0]; datagram[06] = 0x04; datagram[07] = KnxConnectionTunneling.ChannelId; datagram[08] = KnxConnectionTunneling.GenerateSequenceNumber(); datagram[09] = 0x00; return(CreateActionDatagramCommon(destinationAddress, data, datagram)); } catch { KnxConnectionTunneling.RevertSingleSequenceNumber(); return(null); } } }
protected override byte[] CreateActionDatagram(string destinationAddress, byte[] data) { var dataLength = KnxHelper.GetDataLength(data); // HEADER var datagram = new byte[6]; datagram[0] = 0x06; datagram[1] = 0x10; datagram[2] = 0x05; datagram[3] = 0x30; var totalLength = BitConverter.GetBytes(dataLength + 16); datagram[4] = totalLength[1]; datagram[5] = totalLength[0]; return(CreateActionDatagramCommon(destinationAddress, data, datagram)); }