public DummyAndorCamera(CameraParameters p) { if (p == null) { throw new ArgumentException("Non-null CameraParameters instance required"); } _MinTemp = -100; _MaxTemp = 100; _Width = 1024; _Height = 256; _Image = new ImageArea(1, 1, 0, Width, 0, Height); Image = p.Image; Calibration = Enumerable.Range(0, Width).Select(x => (double)x).ToArray(); LoadCalibration(p.CalFile); MinIntensifierGain = 0; MaxIntensifierGain = 4095; IntensifierGain = p.InitialGain; ReadMode = p.ReadMode; p.Image = Image; p.ReadMode = ReadMode; _Temperature = 25.0F; // Room temperature. Cts = new CancellationTokenSource(); Task.Run(() => { while (true) { if (Cts.IsCancellationRequested) { break; } _Temperature += 0.01F * (_TargetTemperature - _Temperature); Thread.Sleep(10); } }, Cts.Token); EquilibrateTemperature(p.Temperature); }
public override void Update(CameraParameters p) { base.Update(p); EquilibrateTemperature(p.Temperature); }
public static ICamera CreateCamera(CameraParameters p) { return((ICamera)Activator.CreateInstance(p.Type, p)); }
public AndorTempControlled(CameraParameters p) : base(p) { AndorSdk.GetTemperatureRange(ref _MinTemp, ref _MaxTemp); AndorSdk.CoolerON(); EquilibrateTemperature(p.Temperature); }