/// <summary> /// Sends the message. /// </summary> /// <param name="knxMessage">The KNX message.</param> public override async Task SendMessage(IKnxMessage knxMessage) { // create net ip message var netIpMessage = KnxNetIpMessage.Create(KnxNetIpServiceType.RoutingIndication); // set knx message ((RoutingIndication)netIpMessage.Body).Cemi = knxMessage; // send Debug.WriteLine($"{DateTime.Now.ToLongTimeString()} SEND => {netIpMessage}"); var bytes = netIpMessage.ToByteArray(); await UdpClient.SendAsync(bytes, bytes.Length); }
internal static KnxNetIpMessage GetDisconnectRequest(IPEndPoint localEndPoint, byte communicationChannel) { if (localEndPoint == null) { throw new ArgumentNullException(nameof(localEndPoint), "LocalEndpoint cannot be null"); } var msg = KnxNetIpMessage.Create(KnxNetIpServiceType.DisconnectRequest); if (msg.Body is DisconnectRequest body) { InitializeHostProtocolAddressInformation(body.HostProtocolAddressInfo, localEndPoint); } return(msg); }
public static KnxNetIpMessage GetSearchRequest(IPEndPoint localEndPoint) { if (localEndPoint == null) { throw new ArgumentNullException(nameof(localEndPoint), "LocalEndpoint cannot be null"); } var msg = KnxNetIpMessage.Create(KnxNetIpServiceType.SearchRequest); if (msg.Body is SearchRequest body) { InitializeHostProtocolAddressInformation(body.Endpoint, localEndPoint); } return(msg); }
internal static KnxNetIpMessage GetConnectRequest(IPEndPoint localEndPoint) { if (localEndPoint == null) { throw new ArgumentNullException(nameof(localEndPoint)); } var msg = KnxNetIpMessage.Create(KnxNetIpServiceType.ConnectionRequest); if (msg.Body is ConnectionRequest body) { InitializeHostProtocolAddressInformation(body.ControlEndpoint, localEndPoint); InitializeHostProtocolAddressInformation(body.DataEndpoint, localEndPoint); body.Data.ConnectionType = ConnectionType.TunnelingConnection; } return(msg); }
public static KnxNetIpMessage CreateTunnelingRequestMessage() { var message = KnxNetIpMessage.Create(KnxNetIpServiceType.TunnelingRequest); return(null); }
public static KnxNetIpMessage GetTunnelingRequest() { return(KnxNetIpMessage.Create(KnxNetIpServiceType.TunnelingRequest)); }