Ejemplo n.º 1
0
        public void Connect()
        {
            _udpClient = new UdpClient(LocalEndPoint);

            ConnectRequest request = new ConnectRequest()
            {
                DataEndpoint      = new KnxNetIPHPAI(_udpClient.LocalIpEndPoint(), KnxNetIPHPAI.ProtocolCodes.Ipv4Udp),
                ControlEndpoint   = new KnxNetIPHPAI(_udpClient.LocalIpEndPoint(), KnxNetIPHPAI.ProtocolCodes.Ipv4Udp),
                ConnectionRequest =
                    new KnxNetIPCRI()
                {
                    ConnectionType  = KnxNetIPCRI.ConnectionTypes.Tunnel,
                    IndependantData = new byte[] { 0x02, 0x00 }
                }
            };

            _sender = new KnxTunnelingSender(this, _udpClient)
            {
                Logger = Logger
            };
            _receiver = new KnxTunnelingReceiver(this, _udpClient)
            {
                Logger = Logger
            };

            _receiver.Start();

            _sender.SendPacket(request);
        }
Ejemplo n.º 2
0
        private void SendConnectionStateRequest()
        {
            if (_udpClient == null || !IsConnected)
            {
                return;
            }

            try
            {
                ConnectionStateRequest request = new ConnectionStateRequest()
                {
                    ChannelId       = ChannelId,
                    ControlEndpoint = new KnxNetIPHPAI(_udpClient.LocalIpEndPoint(), KnxNetIPHPAI.ProtocolCodes.Ipv4Udp)
                };

                _sender.SendPacket(request);
                Logger?.WriteLine("Sent heartbeat");
            }
            catch (Exception e)
            {
                Logger?.WriteLine(e.Message, LogType.Error);
            }
        }