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