public void StartKineticImaging(float exposure, int numberOfImages, float cycleTime, int horzBin, int vertBin, int acqMode, int numExpGroups, float[] exp) { uint uiErrorCode; uiErrorCode = MyCamera.SetReadMode(4); // 0 Full Vertical Binning, 1 Multi-Track, 2 Random-Track, 3 Single-Track, 4 Image uiErrorCode = MyCamera.SetImage(horzBin, vertBin, 1, xPixels, 1, yPixels); // horizontal binning, vertical binning,horz start pixel, horz end pixel, vert start pixel, vert end pixel uiErrorCode = MyCamera.SetFrameTransferMode(0); // 0 = OFF, 1 = ON MyCamera.SetAcquisitionMode(acqMode); // 3 = Kinetic Mode, 4 = Fast Kinetic, 5 = Run til Abort MyCamera.SetTriggerMode(10); // Software Trigger if (numExpGroups > 1) { MyCamera.SetExposureTime(exp[0]); // Exposure Time in seconds } else { MyCamera.SetRingExposureTimes(numExpGroups, exp); // set the exposure times that will be cycled through } // Move Filter to first position MyCamera.StartAcquisition(); MyCamera.SendSoftwareTrigger(); MyCamera.SetNumberAccumulations(1); // how many scans for each image (no accummulation here...just a single scan per image) MyCamera.SetNumberKinetics(numberOfImages); // number of images to take in this series of images MyCamera.SetKineticCycleTime(cycleTime); // time between the start of consectutive images, in seconds. MUST be larger than exposure time }
// This function sets up the camera public void SetUpAndor() { sdk.SetADChannel(ADChannel); int _NumberHSSpeeds = 0; sdk.GetNumberHSSpeeds(ADChannel, 0, ref _NumberHSSpeeds); float _HSSpeedMax = 0; sdk.GetHSSpeed(ADChannel, 0, 0, ref _HSSpeedMax); HSSpeedMax = _HSSpeedMax; float _HSSpeedMin = 0; sdk.GetHSSpeed(ADChannel, 0, _NumberHSSpeeds - 1, ref _HSSpeedMin); HSSpeedMin = _HSSpeedMin; sdk.SetHighCapacity(0); // Note: 1 disables high sensitivity. 0 enables high sensitivity // sdk.SetImage(hbin, vbin, hstart, hend,vstart,vend) sdk.SetImage(1, 1, 1, XDim, 1, YDim); // Use full sensor area sdk.SetAcquisitionMode(AcquisitionMode); sdk.SetReadMode(ReadMode); // These functions control the camera's mode of operation sdk.SetMCPGating(Gating); sdk.SetTriggerMode(TriggerMode); sdk.SetDDGTriggerMode(DDGTriggerMode); sdk.SetGateMode(GateMode); sdk.SetMCPGain(defaultGain); // This functions controls the voltage of the intensifier mcp sdk.SetHSSpeed(0, 0); int vsspeed_i = 0; float vsspeed = 0; sdk.GetFastestRecommendedVSSpeed(ref vsspeed_i, ref vsspeed); sdk.SetVSSpeed(vsspeed_i); }