Beispiel #1
0
        public void ChannelInfoShouldGiveCompleteITCChannelInfo(
            [Values((ushort)0, (ushort)1, (ushort)8)]
            ushort channelNumber,
            [Values(StreamType.ANALOG_IN, StreamType.DIGITAL_IN, StreamType.AUX_IN)]
            StreamType streamType
            )
        {
            const string name       = "UNUSED_NAME";
            var          controller = new HekaDAQController();
            var          s          = new HekaDAQInputStream(name,
                                                             streamType,
                                                             channelNumber,
                                                             controller);

            const decimal sampleRate = 9000;
            var           srate      = new Measurement(sampleRate, "Hz");

            controller.SampleRate = srate;

            ITCMM.ITCChannelInfo info = s.ChannelInfo;

            Assert.AreEqual(channelNumber, info.ChannelNumber);
            Assert.AreEqual((int)streamType, info.ChannelType);
            Assert.AreEqual(s.SampleRate.QuantityInBaseUnit, info.SamplingRate);
            Assert.AreEqual(ITCMM.USE_FREQUENCY, info.SamplingIntervalFlag);
            Assert.AreEqual(0, info.Gain);
            Assert.AreEqual(IntPtr.Zero, info.FIFOPointer);
        }
        public IInputData ReadStreamAsyncIO(HekaDAQInputStream stream)
        {
            lock (this)
            {
                var channelData = new ITCMM.ITCChannelDataEx[]
                {
                    new ITCMM.ITCChannelDataEx
                    {
                        ChannelNumber = stream.ChannelNumber,
                        ChannelType   = (ushort)stream.ChannelType
                    }
                };

                uint err = ItcmmCall(() => ITCMM.ITC_AsyncIO(DevicePtr, 1, channelData));
                if (err != ITCMM.ACQ_SUCCESS)
                {
                    throw new HekaDAQException("Unable to read AsyncIO", err);
                }

                var inData =
                    new InputData(
                        new List <IMeasurement> {
                    new Measurement(channelData[0].Value, HekaDAQInputStream.DAQCountUnits)
                },
                        new Measurement(0, "Hz"),
                        DateTimeOffset.Now)
                    .DataWithStreamConfiguration(stream, stream.Configuration);

                return(inData.DataWithUnits(stream.MeasurementConversionTarget));
            }
        }
Beispiel #3
0
        public void DelegatesSampleRateToController()
        {
            var c     = new HekaDAQController();
            var s     = new HekaDAQInputStream("none", 0, 0, c);
            var srate = new Measurement(1000, "Hz");

            c.SampleRate = srate;

            Assert.That(s.SampleRate, Is.EqualTo(c.SampleRate));
            Assert.Throws <NotSupportedException>(() => s.SampleRate = srate);
        }
Beispiel #4
0
        public void SetUp()
        {
            Controller = new Controller();

            IDictionary <string, object> config = new Dictionary <string, object>(2);

            config["param1"] = 10;
            config["param2"] = 1;

            Converters.Clear();
            HekaDAQOutputStream.RegisterConverters();
            HekaDAQInputStream.RegisterConverters();
        }
        public IInputData ReadStreamAsyncIO(HekaDAQInputStream stream)
        {
            lock(this)
            {
                var channelData = new ITCMM.ITCChannelDataEx[]
                                      {
                                          new ITCMM.ITCChannelDataEx
                                              {
                                                  ChannelNumber = stream.ChannelNumber,
                                                  ChannelType = (ushort) stream.ChannelType
                                              }
                                      };

                uint err = ItcmmCall(() => ITCMM.ITC_AsyncIO(DevicePtr, 1, channelData));
                if (err != ITCMM.ACQ_SUCCESS)
                {
                    throw new HekaDAQException("Unable to read AsyncIO", err);
                }

                var inData =
                    new InputData(
                        new List<IMeasurement> {new Measurement(channelData[0].Value, 0, HekaDAQInputStream.DAQCountUnits)},
                        new Measurement(0, 0, "Hz"),
                        DateTimeOffset.Now)
                        .DataWithStreamConfiguration(stream, stream.Configuration);

                return inData.DataWithUnits(stream.MeasurementConversionTarget);
            }
        }
        public void DelegatesSampleRateToController()
        {
            var c = new HekaDAQController();
            var s = new HekaDAQInputStream("none", 0, 0, c);
            var srate = new Measurement(1000, "Hz");
            c.SampleRate = srate;

            Assert.That(s.SampleRate, Is.EqualTo(c.SampleRate));
            Assert.Throws<NotSupportedException>(() => s.SampleRate = srate);
        }
        public void ChannelInfoShouldGiveCompleteITCChannelInfo(
            [Values((ushort)0, (ushort)1, (ushort)8)]
            ushort channelNumber,
    [Values(StreamType.AI, StreamType.DI_PORT, StreamType.XI)] 
            StreamType streamType
            )
        {
            const string name = "UNUSED_NAME";
            var controller = new HekaDAQController();
            var s = new HekaDAQInputStream(name,
                streamType,
                channelNumber,
                controller);

            const decimal sampleRate = 9000;
            var srate = new Measurement(sampleRate, "Hz");
            controller.SampleRate = srate;

            ITCMM.ITCChannelInfo info = s.ChannelInfo;

            Assert.AreEqual(channelNumber, info.ChannelNumber);
            Assert.AreEqual((int)streamType, info.ChannelType);
            Assert.AreEqual(s.SampleRate.QuantityInBaseUnits, info.SamplingRate);
            Assert.AreEqual(ITCMM.USE_FREQUENCY, info.SamplingIntervalFlag);
            Assert.AreEqual(0, info.Gain);
            Assert.AreEqual(IntPtr.Zero, info.FIFOPointer);
        }