示例#1
0
        private void StartPanTest()
        {
            using (var logic = new SpeedDetectionLogicPan(this._communication, this._panTiltControlType))
            {
                var sw            = new Stopwatch();
                var startPosition = -100;
                var endPosition   = startPosition + 2;
                var timeout       = 4000;
                for (var i = 1; i < 1000; i++)
                {
                    var speed = i / 10.0;

                    //if (i == 200)
                    //{
                    //    endPosition = 0;
                    //    timeout = 2000;
                    //}

                    try
                    {
                        while (true)
                        {
                            logic.GoToStartPosition(startPosition);
                            sw.Restart(); //go to 0 degree
                            logic.Start(speed, endPosition);
                            sw.Stop();

                            if (sw.Elapsed.TotalMilliseconds < timeout)
                            {
                                endPosition += 2;
                                continue;
                            }

                            var item = new SpeedReport {
                                Speed = speed, Distance = endPosition + -startPosition, Elapsed = sw.Elapsed.TotalMilliseconds
                            };
                            this._speedReports.Add(item);

                            this.dataGridViewAxis.Invoke((MethodInvoker) delegate { this._bindingSource.ResetBindings(false); });

                            break;
                        }
                    }
                    catch (Exception exception)
                    {
                        Trace.Write(exception.ToString());
                    }
                }
            }
        }
示例#2
0
        private void StartTiltTest()
        {
            using (var logic = new SpeedDetectionLogicTilt(this._communication))
            {
                var sw            = new Stopwatch();
                var startPosition = -15;
                var endPosition   = startPosition + 2;
                var timeout       = 2000;
                for (var speed = 1; speed < 255; speed++)
                {
                    if (speed == 200)
                    {
                        endPosition = 0;
                        timeout     = 1000;
                    }

                    try
                    {
                        while (true)
                        {
                            logic.GoToStartPosition(startPosition);
                            sw.Restart(); //go to 0 degree
                            logic.Start(speed, endPosition);
                            sw.Stop();

                            if (sw.Elapsed.TotalMilliseconds < timeout)
                            {
                                endPosition += 2;
                                continue;
                            }

                            var item = new SpeedReport {
                                Speed = speed, Distance = endPosition + -startPosition, Elapsed = sw.Elapsed.TotalMilliseconds
                            };
                            this._speedReports.Add(item);

                            this.dataGridView1.Invoke((MethodInvoker) delegate { this._bindingSource.ResetBindings(false); });

                            break;
                        }
                    }
                    catch (Exception exception)
                    {
                        Trace.Write(exception.ToString());
                    }
                }
            }
        }