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 }