Exemplo n.º 1
0
        public void TestCreateLimits()
        {
            List <DigitalInput> inputs = new List <DigitalInput>();

            for (int i = 0; i < NumInterrupts; i++)
            {
                inputs.Add(new DigitalInput(i));
            }

            foreach (var input in inputs)
            {
                input.RequestInterrupts();
            }
            DigitalInput in9 = new DigitalInput(NumInterrupts);

            Assert.Throws <AllocationException>(() =>
            {
                in9.RequestInterrupts();
            });
            in9.Dispose();

            foreach (var input in inputs)
            {
                input.Dispose();
            }
        }
Exemplo n.º 2
0
        public void TestAsyncReturnValue()
        {
            using (DigitalInput d = NewInput())
            {
                int    count = 0;
                object obj   = null;
                Action <uint, object> mockDelegate = (m, o) =>
                {
                    count++;
                    obj = o;
                };

                SimData.DIO[0].SetValue(false);

                d.RequestInterrupts(mockDelegate, this);
                d.EnableInterrupts();

                SimData.DIO[0].SetValue(true);

                Thread.Sleep(50);

                Assert.AreEqual(1, count);
                Assert.AreSame(this, obj);
            }
        }
Exemplo n.º 3
0
        public void TestSynchronousTimeout()
        {
            using (DigitalInput d = NewInput())
            {
                d.RequestInterrupts();
                var retVal = d.WaitForInterrupt(0.5);

                Assert.AreEqual(WaitResult.Timeout, retVal);
            }
        }
Exemplo n.º 4
0
        public void TestCreateDispose()
        {
            DigitalInput d1 = new DigitalInput(0);
            DigitalInput d2 = new DigitalInput(1);

            d1.RequestInterrupts();
            Assert.AreEqual(0, (int)d1.InterruptIndex);

            d1.CancelInterrupts();

            d2.RequestInterrupts();
            Assert.AreEqual(0, (int)d2.InterruptIndex);

            d1.Dispose();
            d2.Dispose();
        }
Exemplo n.º 5
0
        public void TestCreateDispose()
        {
            DigitalInput d1 = new DigitalInput(0);
            DigitalInput d2 = new DigitalInput(1);

            d1.RequestInterrupts();
            Assert.AreEqual(0, (int)d1.InterruptIndex);

            d1.CancelInterrupts();

            d2.RequestInterrupts();
            Assert.AreEqual(0, (int)d2.InterruptIndex);

            d1.Dispose();
            d2.Dispose();
        }
Exemplo n.º 6
0
        public void TestSynchronousRisingEdgeChecked()
        {
            using (DigitalInput d = NewInput())
            {
                d.RequestInterrupts();

                Thread t = new Thread(() =>
                {
                    Thread.Sleep(100);
                    SimData.DIO[0].SetValue(true);
                });

                t.Start();

                var retVal = d.WaitForInterrupt(0.5);

                Assert.AreEqual(WaitResult.RisingEdge, retVal);
            }
        }
Exemplo n.º 7
0
        public void TestCreateLimits()
        {
            List<DigitalInput> inputs = new List<DigitalInput>();
            for (int i = 0; i < NumInterrupts; i++)
            {
                inputs.Add(new DigitalInput(i));
            }

            foreach (var input in inputs)
            {
                input.RequestInterrupts();
            }
            DigitalInput in9 = new DigitalInput(NumInterrupts);
            Assert.Throws<AllocationException>(() => in9.RequestInterrupts());
            in9.Dispose();

            foreach (var input in inputs)
            {
                input.Dispose();
            }
        }
Exemplo n.º 8
0
        public void TestAsync()
        {
            using (DigitalInput d = NewInput())
            {
                int    count        = 0;
                Action mockDelegate = () =>
                {
                    count++;
                };

                SimData.DIO[0].SetValue(false);

                d.RequestInterrupts(mockDelegate);
                d.EnableInterrupts();

                SimData.DIO[0].SetValue(true);

                Thread.Sleep(50);

                Assert.AreEqual(1, count);
            }
        }