public static void Serialize(KnxTunnelingRequest knxTunnelingRequest, MemoryStream memoryStream) { memoryStream.SetLength(0); memoryStream.Seek(6, SeekOrigin.Begin); SerializeCommonConnectionHeader(knxTunnelingRequest.ChannelId, knxTunnelingRequest.SequenceNumber, memoryStream); Serialize(knxTunnelingRequest.CemiFrame, memoryStream); memoryStream.Seek(0, SeekOrigin.Begin); var header = new KnxTelegramHeader(6, 0x10, 0x420, (ushort)memoryStream.Length); Serialize(header, memoryStream); }
public async Task <byte> SendTunnelingRequest(CemiFrame cemiFrame) { var sequenceNumber = _sequenceCounter++; var telegram = new KnxTunnelingRequest(ChannelId, sequenceNumber, cemiFrame); var ms = new MemoryStream(); Serializer.Serialize(telegram, ms); _trace.Write(TraceSeverities.Debug, "Sending SendTunnelingRequest: {0}", telegram.ToString()); await Send(ms, _socket); return(sequenceNumber); }
private async Task KnxTunnelingRequest(KnxTunnelingRequest knxTunnelingRequest) { try { await SendTunnelingAcknowledge(knxTunnelingRequest.SequenceNumber); OnKnxEventReceived(this, knxTunnelingRequest.CemiFrame); } catch (Exception e) { _trace.Write(TraceSeverities.Error, "Failed to send acknowledge: {0}", e); } }
public void Visit(KnxTunnelingRequest knxTunnelingRequest) { _knxConnection._trace.Write(TraceSeverities.Info, "Received TunnelRequest: {0}", knxTunnelingRequest); _knxConnection.KnxTunnelingRequest(knxTunnelingRequest).TraceOnException(_knxConnection._trace); }