コード例 #1
0
        public static bool TryParseFromUri(Uri uri, out TcpPortConfig opt)
        {
            if (!"tcp".Equals(uri.Scheme, StringComparison.InvariantCultureIgnoreCase))
            {
                opt = null;
                return(false);
            }
            var coll = HttpUtility.ParseQueryString(uri.Query);

            opt = new TcpPortConfig
            {
                IsServer         = bool.Parse(coll["srv"] ?? bool.FalseString),
                ReconnectTimeout = int.Parse(coll["rx_timeout"] ?? "10000"),
                Host             = IPAddress.Parse(uri.Host).ToString(),
                Port             = uri.Port,
            };

            return(true);
        }
コード例 #2
0
ファイル: IPort.cs プロジェクト: hdefleurian/mavlink.net
        public static IPort Create(string connectionString)
        {
            var uri = new Uri(connectionString);

            TcpPortConfig tcp;

            if (TcpPortConfig.TryParseFromUri(uri, out tcp))
            {
                if (tcp.IsServer)
                {
                    return(new TcpServerPort(tcp));
                }
                else
                {
                    return(new TcpClientPort(tcp));
                }
            }

            UdpPortConfig udp;

            if (UdpPortConfig.TryParseFromUri(uri, out udp))
            {
                return(new UdpPort(udp));
            }

            SerialPortConfig ser;

            if (SerialPortConfig.TryParseFromUri(uri, out ser))
            {
                return(new CustomSerialPort(ser));
            }



            throw new Exception(string.Format(RS.RemoteStreamFactory_CreateStream_Connection_string_is_invalid, connectionString));
        }
コード例 #3
0
 public TcpServerPort(TcpPortConfig cfg)
 {
     _cfg = cfg;
     Observable.Timer(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(3)).Where(_ => IsEnabled.Value).Subscribe(DeleteClients, DisposeCancel);
     DisposeCancel.Register(InternalStop);
 }
コード例 #4
0
 public TcpClientPort(TcpPortConfig cfg)
 {
     _cfg = cfg;
 }