/// <summary> /// Constructs a new AxopatchDevice /// </summary> /// <param name="p">Axopatch instance</param> /// <param name="c">Symphony Controller instance</param> /// <param name="backgroundModes">Enumerable of operating modes</param> /// <param name="backgroundMeasurements">Corresponding background Measurement for each operating mode</param> public AxopatchDevice( IAxopatch p, Controller c, IEnumerable<AxopatchInterop.OperatingMode> backgroundModes, IEnumerable<IMeasurement> backgroundMeasurements) : this(p, c, backgroundModes.Zip(backgroundMeasurements, (k, v) => new {Key = k, Value = v}) .ToDictionary(x => x.Key, x => x.Value)) { }
/// <summary> /// Constructs a new AxopatchDevice. /// /// This constructor is provided as a convenience for Matlab clients. .Net clients should use the typed version. /// </summary> /// <param name="p">Axopatch instance</param> /// <param name="c">Controller instance for this device</param> /// <param name="backgroundModes">Enumerable of operating mode names. Allowed values are "Track", "VClamp", "I0", "IClampNormal", "IClampFast".</param> /// <param name="backgroundMeasurements">Corresponding background Measurement for each operating mode in backgroundModes</param> public AxopatchDevice( IAxopatch p, Controller c, IEnumerable<string> backgroundModes, IEnumerable<IMeasurement> backgroundMeasurements) : this(p, c, backgroundModes.Select(k => { AxopatchInterop.OperatingMode mode; Enum.TryParse(k, false, out mode); return mode; }), backgroundMeasurements) { }
/// <summary> /// Constructs a new AxopatchDevice /// </summary> /// <param name="axopatch">Axopatch instance</param> /// <param name="c">Symphony Controller instance</param> /// <param name="background">Dictionary of background Measurements for each Axopatch operating mode</param> public AxopatchDevice(IAxopatch axopatch, Controller c, IDictionary<AxopatchInterop.OperatingMode, IMeasurement> background) : base("Axopatch", "Molecular Devices", c) { Axopatch = axopatch; Backgrounds = background; }