Example #1
0
 private void SendCEMI(CommonExternalMessageInterface message)
 {
     lock (_connection.SequenceNumberLock)
     {
         TunnelingRequest request = new TunnelingRequest()
         {
             ConnectionHeader = new KnxNetBodyConnectionHeader()
             {
                 ChannelId       = _connection.ChannelId,
                 SequenceCounter = _connection.GetNextSequenceNumber()
             },
             Message = message
         };
         UdpClient.SendAsync(request.GetBytes(), _connection.RemoteEndPoint);
     }
 }
        private void HandleTunnelingRequest(byte[] buffer, KnxNetIPHeader header)
        {
            TunnelingRequest request = TunnelingRequest.Parse(buffer, 0);
            TunnelingAck     ack     = new TunnelingAck {
                ConnectionHeader = request.ConnectionHeader
            };

            _connection._sender.SendPacket(ack);

            _receivedPackets.Add(new KnxReceivedDataInEventArgs()
            {
                DestinationAddress = request.Message.GetDestinationAddress(),
                SourceAddress      = request.Message.GetSourceAddress(),
                Data        = request.Message.GetData(),
                RequestType = request.Message.GetAPCIType()
            });
        }