Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
 public void Visit(KnxTunnelingRequest knxTunnelingRequest)
 {
     _knxConnection._trace.Write(TraceSeverities.Info, "Received TunnelRequest: {0}", knxTunnelingRequest);
     _knxConnection.KnxTunnelingRequest(knxTunnelingRequest).TraceOnException(_knxConnection._trace);
 }