private void btnDeviceLoad_Click(object sender, RoutedEventArgs e)
        {
            string device              = (cmbDevice.SelectedItem as CBItem)?.Value.ToString();
            string devicePort          = cmbDevicePort.SelectedValue?.ToString();
            string deviceStartOrFinish = (cmbCalcDeviceStartOrFinish.SelectedItem as CBItem)?.Value.ToString();

            if (device == "File")
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.DefaultExt = ".txt";
                openFileDialog.Filter     = "Textdatei|*.txt";
                if (openFileDialog.ShowDialog() == true)
                {
                    devicePort = openFileDialog.FileName;
                }
                else
                {
                    return;
                }
            }

            IHandTiming handTiming = HandTiming.CreateHandTiming(device, devicePort);

            Progress <StdProgress> progress    = new Progress <StdProgress>();
            StdProgressDlg         dlgProgress = new StdProgressDlg();

            dlgProgress.ShowAndClose(progress);

            handTiming.DoProgressReport(progress);

            Task.Run(() =>
            {
                using (handTiming)
                {
                    try
                    {
                        handTiming.Connect();
                        handTiming.StartGetTimingData();
                        _currentHandTimingVM.AddHandTimings(handTiming.TimingData());
                    }
                    catch (Exception)
                    { throw; }
                }
            }).ContinueWith((t) =>
            {
                if (t.IsFaulted)
                {
                    MessageBox.Show(
                        string.Format("Daten konnten nicht geladen werden.\n({0}).\nWeitere Details im Logfile.", t.Exception?.InnerException?.Message),
                        "Fehler",
                        MessageBoxButton.OK,
                        MessageBoxImage.Error
                        );
                    Logger.Error(t.Exception, "loading handtime failed");
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }
Exemplo n.º 2
0
        public static IHandTiming CreateHandTiming(string device, string devicePort)
        {
            IHandTiming handTiming = null;

            switch (device)
            {
            case "ALGETimy":
                handTiming = new ALGETimy(devicePort);
                break;

            case "TagHeuerPPro":
                handTiming = new TagHeuer(devicePort);
                break;

            case "File":
                handTiming = new FromFileHandTiming(devicePort);
                break;
            }

            return(handTiming);
        }