示例#1
0
        static void Main(string[] args)
        {
            var chrono = ChronographFactory.GetChronograph("test");

            // Use Start/StopCapture methods
            chrono.Start();
            TheOperation();
            chrono.Stop();
            PrintChronoStatistics(chrono.ActiveSession);

            // Use MeasureAction method
            chrono.MeasureAction(() => { TheOperation(); });
            PrintChronoStatistics(chrono.ActiveSession);

            // Measure a bunch more actions
            for (int i = 0; i < 10; ++i)
            {
                TimeSpan elapsed = chrono.MeasureAction(TheOperation);
                Console.WriteLine($"\tAction measured at {elapsed.TotalMilliseconds:N0} ms");
            }

            Task.Run(async() => { await TheAsyncOperation(); }).Wait();

            var snapshot = chrono.Restart();

            PrintChronoStatistics(snapshot);

            Console.WriteLine("After reset, the new stats should be zeroes");
            PrintChronoStatistics(chrono.ActiveSession);
        }
示例#2
0
        public MainWindowViewModel()
        {
            Chronographies = new ObservableCollection <AbstractChronograph>
            {
                ChronographFactory.CreateCP502Chronograph(),
                    ChronographFactory.CreateCP520Chronograph()
            };

            //if (IsInDesignMode)
            //{
            //    Chronograph = Chronographies[0];
            //    AvailableComPorts = new ObservableCollection<string>
            //    {
            //        "COM1",
            //        "COM2",
            //        "COM3"
            //    };
            //    ComPort = "COM1";

            //    Departures.Add(new RaceTimeViewModel(new RaceTime
            //    {
            //        Order = 1,
            //        Departure = "00.00.00.000"

            //    }));
            //    Departures.Add(new RaceTimeViewModel(new RaceTime
            //    {
            //        Order = 2,
            //        Departure = "00.02.00.000"

            //    }));
            //    Arrivals.Add(new RaceTimeViewModel(new RaceTime
            //    {
            //        Order = 3,
            //        Departure = "00.00.00.000"
            //    }));
            //    Arrivals.Add(new RaceTimeViewModel(new RaceTime
            //    {
            //        Order = 4,
            //        Departure = "00.02.00.000"
            //    }));
            //    Logs.Add("log 1");
            //    Logs.Add("log 2");
            //}

            InitializeTraceFileMenuItemCommand = new RelayCommand(ExecuteInitializeTraceFileMenuItemCommand);
            ClearListMenuItemCommand           = new RelayCommand(ExecuteClearListMenuItemCommand);
            QuitMenuItemCommand             = new RelayCommand(ExecuteQuitMenuItemCommand);
            RefreshAvailableCOMPortsCommand = new RelayCommand(ExecuteRefreshAvailableCOMPortsCommand);
            OpenChronographLinkCommand      = new RelayCommand(ExecuteOpenChronographLinkCommand, CanExecuteOpenChronographLinkCommand);
            CloseCOMPortsCommand            = new RelayCommand(ExecuteCloseCOMPortsCommand, CanExecuteCloseCOMPortsCommand);

            OpenExcelCommand             = new RelayCommand(ExecuteOpenExcelCommand, CanExecuteOpenExcelCommand);
            LockSheetPropertiesCommand   = new RelayCommand(ExecuteLockSheetPropertiesCommand, CanExecuteLockSheetPropertiesCommand);
            UnlockSheetPropertiesCommand = new RelayCommand(ExecuteUnlockSheetPropertiesCommand, CanExecuteUnlockSheetPropertiesCommand);

            ExecuteRefreshAvailableCOMPortsCommand();
            ExecuteInitializeTraceFileMenuItemCommand();

            _serialPortManager.SerialPort.DataReceived += SerialPort_DataReceived;
        }