Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        public static KnxNetIpMessage CreateTunnelingRequestMessage()
        {
            var message = KnxNetIpMessage.Create(KnxNetIpServiceType.TunnelingRequest);

            return(null);
        }
Exemplo n.º 6
0
 public static KnxNetIpMessage GetTunnelingRequest()
 {
     return(KnxNetIpMessage.Create(KnxNetIpServiceType.TunnelingRequest));
 }