public void ShouldReadSimpleTelegraph() { IAxopatch patch = new Axopatch200B(); IDictionary<string, IInputData> data = new Dictionary<string, IInputData>(); data[AxopatchDevice.GAIN_TELEGRAPH_STREAM_NAME] = new InputData(Enumerable.Repeat(new Measurement(1.9, "V"), 10), null, DateTimeOffset.Now); data[AxopatchDevice.MODE_TELEGRAPH_STREAM_NAME] = new InputData(Enumerable.Repeat(new Measurement(6.1, "V"), 10), null, DateTimeOffset.Now); AxopatchInterop.AxopatchData telegraph = patch.ReadTelegraphData(data); Assert.That(telegraph.Gain, Is.EqualTo(0.5)); Assert.That(telegraph.OperatingMode, Is.EqualTo(AxopatchInterop.OperatingMode.VClamp)); Assert.That(telegraph.ExternalCommandSensitivity, Is.EqualTo(0.02)); Assert.That(telegraph.ExternalCommandSensitivityUnits, Is.EqualTo(AxopatchInterop.ExternalCommandSensitivityUnits.V_V)); }
public void ShouldConvertOutputUnitsInIClamp( [Values( AxopatchInterop.OperatingMode.I0, AxopatchInterop.OperatingMode.IClampFast, AxopatchInterop.OperatingMode.IClampNormal)] AxopatchInterop.OperatingMode operatingMode) { var c = new Controller(); var p = new Axopatch200B(); var patchDevice = new AxopatchDevice(p, c, null); var data = new AxopatchInterop.AxopatchData() { OperatingMode = operatingMode, ExternalCommandSensitivity = 2.5, ExternalCommandSensitivityUnits = AxopatchInterop.ExternalCommandSensitivityUnits.A_V }; var cmd = new Measurement(20, -12, "A"); var expected = operatingMode == AxopatchInterop.OperatingMode.I0 ? new Measurement(0, "V") : new Measurement(cmd.Quantity / (decimal)data.ExternalCommandSensitivity, cmd.Exponent, "V"); var actual = AxopatchDevice.ConvertOutput(cmd, data); Assert.That(actual, Is.EqualTo(expected)); }