Ejemplo n.º 1
0
        public void ShouldBitShiftAndMergePulledOutputData()
        {
            var controller = new NIDAQController();
            var s = new NIDigitalDAQOutputStream("OUT", controller);
            controller.SampleRate = new Measurement(10000, 1, "Hz");

            TimeSpan duration = TimeSpan.FromSeconds(0.5);

            for (ushort bitPosition = 1; bitPosition < 32; bitPosition += 2)
            {
                var dataQueue = new Dictionary<IDAQOutputStream, Queue<IOutputData>>();

                dataQueue[s] = new Queue<IOutputData>();
                var data = new OutputData(Enumerable.Range(0, 10000).Select(i => new Measurement(i % 2, Measurement.UNITLESS)).ToList(),
                    s.SampleRate, false);

                dataQueue[s].Enqueue(data.SplitData(duration).Head);
                dataQueue[s].Enqueue(data.SplitData(duration).Head);

                TestDevice dev = new TestDevice("OUT-DEVICE" + bitPosition, dataQueue);
                dev.BindStream(s);
                s.BitPositions[dev] = bitPosition;
            }

            var expected = Enumerable.Range(0, 10000).Select(i => new Measurement((long)(i % 2 * 0xaaaaaaaa), Measurement.UNITLESS)).ToList();

            var pull1 = s.PullOutputData(duration);
            Assert.AreEqual(expected, pull1.Data);

            var pull2 = s.PullOutputData(duration);
            Assert.AreEqual(expected, pull2.Data);
        }
Ejemplo n.º 2
0
        public void ShouldBitShiftAndMergeBackground()
        {
            var controller = new NIDAQController();
            var s = new NIDigitalDAQOutputStream("OUT", controller);
            controller.SampleRate = new Measurement(10000, 1, "Hz");

            for (ushort bitPosition = 1; bitPosition < 32; bitPosition += 2)
            {
                TestDevice dev = new TestDevice { Background = new Measurement(1, Measurement.UNITLESS) };
                dev.BindStream(s);
                s.BitPositions[dev] = bitPosition;
            }

            ulong q = 0xaaaaaaaa;
            var expected = new Measurement((long)q, Measurement.UNITLESS);

            Assert.AreEqual(expected, s.Background);
        }