private static extern ASI_ERROR_CODE ASIGetCameraProperty64(out ASI_CAMERA_INFO pASICameraInfo, int iCameraIndex);
public static ASI_ERROR_CODE ASIGetCameraProperty(out ASI_CAMERA_INFO pASICameraInfo, int iCameraIndex) { return(IntPtr.Size == 8 /* 64bit */ ? ASIGetCameraProperty64(out pASICameraInfo, iCameraIndex) : ASIGetCameraProperty32(out pASICameraInfo, iCameraIndex)); }
public static Result ScanASICameras(List <ICamera> cameraList) { int camera_count = 0; ASI_ERROR_CODE asi_error_code = ASI_ERROR_CODE.ASI_SUCCESS; try { camera_count = ASIGetNumOfConnectedCameras(); } catch (Exception e) { var message = "Failed to ASIGetNumOfConnectedCameras."; Log.Error(message, e); return(new Result(ErrorCode.OperationFailed, message, e)); } if (camera_count == 0) { return(new Result("No ASI Camera Found")); } for (int i = 0; i < camera_count; i++) { var cameraID = i; var pASICameraInfo = new ASI_CAMERA_INFO(); Exception exception = null; try { asi_error_code = ASIGetCameraProperty(out pASICameraInfo, i); } catch (Exception e) { exception = e; } if (exception != null || asi_error_code != ASI_ERROR_CODE.ASI_SUCCESS) { string message = string.Format("Failed to ASIGetCameraProperty for CameraID {0}, ASI_ERROR_CODE {1}", i, asi_error_code.ToString()); Log.Error(message, exception); break; } var cameraInfo = new CameraInfo { DisplayName = pASICameraInfo.Name, SDKType = CameraSDKType.ASI, IsColorCamera = pASICameraInfo.IsColorCam == ASI_BOOL.ASI_TRUE, BayerPattern = GetASIBayerPattern(pASICameraInfo.BayerPattern), SupportBins = pASICameraInfo.SupportedBins, CanCool = pASICameraInfo.IsCoolerCam == ASI_BOOL.ASI_TRUE, HasMechanicalShutter = pASICameraInfo.MechanicalShutter == ASI_BOOL.ASI_TRUE, HasST4Port = pASICameraInfo.ST4Port == ASI_BOOL.ASI_TRUE, IsUSB3Host = pASICameraInfo.IsUSB3Host == ASI_BOOL.ASI_TRUE, IsUSB3Camera = pASICameraInfo.IsUSB3Camera == ASI_BOOL.ASI_TRUE, PixelSize = Convert.ToInt32(pASICameraInfo.PixelSize * 1000), ElecPerADU = Convert.ToInt32(pASICameraInfo.ElecPerADU * 1000000), MaxHeight = pASICameraInfo.MaxHeight, MaxWeight = pASICameraInfo.MaxWidth }; var camera = new ASICamera(cameraID, cameraInfo); cameraList.Add(camera); Log.InfoFormat("Found ASI Camera {0}, CameraID {1}", cameraInfo.DisplayName, cameraID); } return(new Result(String.Format("ASI Camera Found, Total Count: {0}", camera_count))); }