private void SetupOutputPipeline(IDAQController c, out IOutputData expectedOutput, out DAQOutputStream outStream) { string units = "V"; var data = Enumerable.Range(0, 1000).Select(i => new Measurement(i, units)).ToList(); var sampleRate = new Measurement(100, "Hz"); var config = new Dictionary <string, object>(); expectedOutput = new OutputData(data, sampleRate, true); outStream = new DAQOutputStream("OUT"); outStream.SampleRate = sampleRate; outStream.MeasurementConversionTarget = units; (c as IMutableDAQController).AddStream(outStream); var outQueue = new Dictionary <IDAQOutputStream, Queue <IOutputData> >(); outQueue[outStream] = new Queue <IOutputData>(); outQueue[outStream].Enqueue(expectedOutput); TestDevice dev = new TestDevice("OUT-DEVICE", outQueue); dev.BindStream(outStream); dev.MeasurementConversionTarget = units; }
public void ShouldNotApplyBackgroundToRunningStreams() { const string units = "V"; const MultiClampInterop.OperatingMode vclampMode = MultiClampInterop.OperatingMode.VClamp; const MultiClampInterop.OperatingMode iclampMode = MultiClampInterop.OperatingMode.IClamp; var c = new Controller(); var mc = new FakeMulticlampCommander(); var vclampBackground = new Measurement(2, -3, units); var background = new Dictionary <MultiClampInterop.OperatingMode, IMeasurement>() { { vclampMode, vclampBackground } }; var dataVClamp = new MultiClampInterop.MulticlampData() { OperatingMode = vclampMode, ExternalCommandSensitivity = 2.5, ExternalCommandSensitivityUnits = MultiClampInterop.ExternalCommandSensitivityUnits.V_V }; var daq = new DynamicMock(typeof(IDAQController)); var s = new DAQOutputStream("test", daq.MockInstance as IDAQController); var mcd = new MultiClampDevice(mc, c, background); mcd.BindStream(s); daq.ExpectAndReturn("get_Running", true); daq.ExpectNoCall("ApplyStreamBackground"); mc.FireParametersChanged(DateTimeOffset.Now, dataVClamp); daq.Verify(); }
private void SetupInputPipeline(IDAQController c, out IOutputData expectedOutput, out DAQOutputStream outStream, out DAQInputStream inStream) { SetupOutputPipeline(c, out expectedOutput, out outStream); inStream = new DAQInputStream("IN"); inStream.SampleRate = outStream.SampleRate; outStream.Device.BindStream(inStream); inStream.MeasurementConversionTarget = outStream.MeasurementConversionTarget; }