Esempio n. 1
0
        /// <summary>
        /// Creates the specified message by type.
        /// </summary>
        /// <param name="serviceType">Type of the message.</param>
        /// <returns></returns>
        public static KnxNetIpMessage Create(KnxNetIpServiceType serviceType)
        {
            switch (serviceType)
            {
            case KnxNetIpServiceType.ConnectionRequest:
                return(new KnxNetIpMessage <ConnectionRequest>());

            case KnxNetIpServiceType.ConnectionResponse:
                return(new KnxNetIpMessage <ConnectionResponse>());

            case KnxNetIpServiceType.ConnectionStateRequest:
                return(new KnxNetIpMessage <ConnectionStateRequest>());

            case KnxNetIpServiceType.ConnectionStateResponse:
                return(new KnxNetIpMessage <ConnectionStateResponse>());

            case KnxNetIpServiceType.DescriptionRequest:
                return(new KnxNetIpMessage <DescriptionRequest>());

            case KnxNetIpServiceType.DescriptionResponse:
                return(new KnxNetIpMessage <DescriptionResponse>());

            case KnxNetIpServiceType.DisconnectRequest:
                return(new KnxNetIpMessage <DisconnectRequest>());

            case KnxNetIpServiceType.DisconnectResponse:
                return(new KnxNetIpMessage <DisconnectResponse>());

            case KnxNetIpServiceType.SearchRequest:
                return(new KnxNetIpMessage <SearchRequest>());

            case KnxNetIpServiceType.SearchResponse:
                return(new KnxNetIpMessage <SearchResponse>());

            case KnxNetIpServiceType.TunnelingRequest:
                return(new KnxNetIpMessage <TunnelingRequest>());

            case KnxNetIpServiceType.TunnelingAcknowledge:
                return(new KnxNetIpMessage <TunnelingAcknowledge>());

            case KnxNetIpServiceType.RoutingIndication:
                return(new KnxNetIpMessage <RoutingIndication>());

            case KnxNetIpServiceType.RoutingLostMessage:
                return(new KnxNetIpMessage <LostMessageIndication>());

            default:
                throw new ArgumentException("Knx message body unknown!");
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Determines whether the specified bytes are message of specified service type.
 /// </summary>
 /// <param name="bytes">The bytes.</param>
 /// <param name="service">The service.</param>
 /// <returns>
 ///   <c>true</c> if the specified bytes are message of specified service type; otherwise, <c>false</c>.
 /// </returns>
 public static bool IsService(byte[] bytes, KnxNetIpServiceType service)
 {
     return((bytes.Length >= HeaderLength) && ((KnxNetIpServiceType)((bytes[2] << 8) + bytes[3]) == service));
 }