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()); } } } }
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()); } } } }