Пример #1
0
        public void ClearCalibrationTest()
        {
            AutoResetEvent done  = new AutoResetEvent(false);
            int            error = 0;

            tracker.ClearCalibration(delegate(int err, int res)
            {
                error = err;
                done.Set();
            });
            done.WaitOne();
            //Ending Calibration while not calibrating should result in an error.
            Assert.AreNotEqual(0, error);

            tracker.StartCalibration(delegate(int err, int res)
            {
                done.Set();
            });
            done.WaitOne();

            tracker.ClearCalibration(delegate(int err, int res)
            {
                error = err;
                done.Set();
            });
            done.WaitOne();

            //Should not be an error if clearing an empty calibration.
            Assert.AreEqual(0, error);

            tracker.AddPoint(0.125, 0.999999, delegate(int err, int res)
            {
                done.Set();
            });
            done.WaitOne();

            //Test adding a few points.
            tracker.AddPoint(-0.125, 0.999999, delegate(int err, int res)
            {
                done.Set();
            });
            done.WaitOne();

            tracker.ClearCalibration(delegate(int err, int res)
            {
                error = err;
                done.Set();
            });
            done.WaitOne();

            //Should not be an error if clearing an this kind of calibration.
            Assert.AreEqual(0, error);
        }
Пример #2
0
        public void Start()
        {
            tracker.RegisterOnETEvent(delegate(GetPoint point)
            {
                if (stop.WaitOne(0))
                {
                    OnStatusChanged(this, new EventArgs());
                    tracker.Disable(null);
                    Thread.CurrentThread.Abort(); // Shutting down this thread.
                    return;
                }
                if (Listen)
                {
                    EriverProtocol proto = new EriverProtocol();
                    proto.Kind           = Command.GetPoint;
                    proto.GetPoint       = point;
                    Send(proto);
                }
            });

            tracker.Enable(null);
            using (log4net.ThreadContext.Stacks["NDC"].Push("Run"))
            {
                Run();
            }

            //Finalize calibration if disconnecting during calibration.
            tracker.GetState(delegate(int state, int error)
            {
                if ((state & 2) != 0)
                {
                    tracker.ClearCalibration(delegate(int res, int err)
                    {
                        tracker.EndCalibration(null);
                    });
                }
            });
        }