Beispiel #1
0
        public static void Main(String[] args)
        {
            AndorSDK.AndorCapabilities capabilities = new AndorSDK.AndorCapabilities();
            int capsSize = Marshal.SizeOf(capabilities);

            capabilities.ulSize = (uint)capsSize;
            AndorSDK andorSdk = new AndorSDK();
            uint     initFlag = andorSdk.Initialize(args[0]);

            Console.WriteLine(initFlag);
            uint getCapsFlag = andorSdk.GetCapabilities(ref capabilities);

            Console.WriteLine(getCapsFlag);
            //Type capsType = typeof (AndorSDK.AndorCapabilities);
            //FieldInfo[] fields = capsType.GetFields();
            Dictionary <string, string> dictionary = new Dictionary <string, string>
            {
                /*foreach (FieldInfo field in fields)
                 * {
                 *  string fieldName = field.Name;
                 *  uint fieldValue = (uint) field.GetValue(capabilities);
                 *  string fieldBits = Convert.ToString(fieldValue, 2); // string of uint bits
                 *  dictionary.Add(fieldName, fieldBits);
                 * }*/
                { "ulSize", Convert.ToString(capabilities.ulSize, 10) },
                { "ulReadModes", Convert.ToString(capabilities.ulReadModes, 2) },
                { "ulTriggerModes", Convert.ToString(capabilities.ulTriggerModes, 2) },
                { "ulCameraType", Convert.ToString(capabilities.ulCameraType, 10) },
                { "ulPixelMode", Convert.ToString(capabilities.ulPixelMode, 2) },
                { "ulSetFunctions", Convert.ToString(capabilities.ulSetFunctions, 2) },
                { "ulGetFunctions", Convert.ToString(capabilities.ulGetFunctions, 2) },
                { "ulFeatures", Convert.ToString(capabilities.ulFeatures, 2) },
                { "ulPCICard", Convert.ToString(capabilities.ulPCICard, 2) },
                { "ulEMGainCapability", Convert.ToString(capabilities.ulEMGainCapability, 2) }
            };

            using (StreamWriter writer = new StreamWriter(new FileStream(args[1], FileMode.Create)))
            {
                foreach (KeyValuePair <string, string> pair in dictionary)
                {
                    writer.WriteLine(pair.Key + "\t" + pair.Value);
                }
            }
        }
Beispiel #2
0
        public bool Initialize() // configure the camera to capture a single, full image from the camera
        {
            uint   uiErrorCode;
            string errMsg = "";

            SystemInitialized = false;

            // initialize the camera
            try
            {
                uiErrorCode = MyCamera.Initialize("");
            }
            catch (Exception e)
            {
                PostError("Andor SDK did not load: " + e.Message);
                return(false);
            }
            bool success = CheckCameraResult(uiErrorCode, ref errMsg);

            if (!success)
            {
                PostError("Camera: " + errMsg);
                return(false);
            }

            // get capabilities

            AndorSDK.AndorCapabilities caps = new AndorSDK.AndorCapabilities();
            caps.ulSize = 256; // had to guess at the size since sizeof(AndorSDK.AndorCapabilities) isn't allowed
            uiErrorCode = MyCamera.GetCapabilities(ref caps);
            success     = CheckCameraResult(uiErrorCode, ref errMsg);
            if (!success)
            {
                PostError("Camera: " + errMsg);
                return(false);
            }

            uiErrorCode = MyCamera.GetBitDepth(0, ref bitDepth);
            success     = CheckCameraResult(uiErrorCode, ref errMsg);
            if (!success)
            {
                PostError("Camera: " + errMsg);
                return(false);
            }

            // Get Detector Format, returns size of sensor in xPixels and yPixels
            uiErrorCode = MyCamera.GetDetector(ref xPixels, ref yPixels);
            success     = CheckCameraResult(uiErrorCode, ref errMsg);
            if (!success)
            {
                PostError("Camera: " + errMsg);
                return(false);
            }

            if (xPixels == 1024 && yPixels == 1024)
            {
                isEMCCD = true;
            }
            else
            {
                isEMCCD = false;
            }

            // Set Camera EM Gain Mode
            if (isEMCCD)
            {
                uiErrorCode = MyCamera.SetEMGainMode(3);
                success     = CheckCameraResult(uiErrorCode, ref errMsg);
                if (!success)
                {
                    PostError("Camera: " + errMsg);
                    return(false);
                }
            }

            SystemInitialized = true;
            PostMessage("Camera initialized");

            // ADDED by BG, 26 Mar 2014, Want camera to start cooling right away.  Also added MyCamera.CoolerOFF() in destructor
            CameraTemperature = GlobalVars.CameraTargetTemperature;
            SetCoolerTemp(CameraTemperature);
            MyCamera.SetImageRotate(1); // 0 = no rotate, 1 = 90 degs CW, 2 = 90 CCW

            return(true);
        }