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); }
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); } }