Beispiel #1
0
        static void Main(string[] args)
        {
            _eventHandler += ExitHandler;
            SetConsoleCtrlHandler(_eventHandler, true);

            _gpsdService = new GpsdService("***.***.***.***", 80);
            //_gpsdService = new GpsdService("127.0.0.1", 80);

            //_gpsdService.SetProxy("proxy", 80);
            //_gpsdService.SetProxyAuthentication("*****", "*****");

            _writer = new StreamWriter("testFile1.nmea");

            _gpsdService.OnRawLocationChanged += GpsdServiceOnRawLocationChanged;
            _gpsdService.OnLocationChanged    += GpsdServiceOnLocationChanged;

            try
            {
                Retry.Do(_gpsdService.Connect, TimeSpan.FromSeconds(1));
            }
            catch (AggregateException ax)
            {
                if (ax.InnerExceptions.Any(x => x.GetType() == typeof(WebException)))
                {
                    Console.WriteLine("Cannot connect to the service you have given.");
                }
            }

            _gpsdService.StartGpsReading();

            Console.WriteLine("Press enter to continue...");
            Console.ReadKey();
        }
Beispiel #2
0
        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            if (_gpsdService != null && _gpsdService.IsRunning)
            {
                return;
            }

            //_gpsdService = new GpsdService("***.***.***.***", 80);
            _gpsdService = new GpsdService("127.0.0.1", 80);

            //_gpsdService.SetProxy("proxy", 80);
            //_gpsdService.SetProxyAuthentication("*****", "*****");

            _writer = new StreamWriter("testFile1.nmea");

            _gpsdService.OnRawLocationChanged += GpsdServiceOnRawLocationChanged;
            _gpsdService.OnLocationChanged    += GpsdServiceOnLocationChanged;

            var task = Task.Run(() =>
            {
                Retry.Do(_gpsdService.Connect, TimeSpan.FromSeconds(1));
            });

            task.ContinueWith(t =>
            {
                if (t.Exception != null)
                {
                    return;
                }
                _gpsdService.StartGpsReading();
            });
            task.ContinueWith(t =>
            {
                MessageBox.Show(t.Exception?.ToString(), "Test", MessageBoxButton.OK);
            }, CancellationToken.None, TaskContinuationOptions.OnlyOnFaulted, TaskScheduler.FromCurrentSynchronizationContext());
        }