private void CameraList_Relist(ref UInt64[] WorkUID) { XCCAM_CAMERAINFO[] CameraInfo; int idx; String str; XCCAM.GetList(out CameraInfo); Array.Resize(ref WorkUID, CameraInfo.Length); UIDList.Items.Clear(); if (CameraInfo.Length != 0) { for (idx = 0; idx < CameraInfo.Length; idx++) { WorkUID[idx] = CameraInfo[idx].UID; str = String.Format("0x{0:X}", WorkUID[idx]); UIDList.Items.Add(str); } } else { UIDList.Items.Add("Not found Camera"); UIDList.Enabled = false; //CameraOpen.Enabled = false; } }
private static void ImageCallback(XCCAM XCCam, IntPtr pInBuf, UInt32 Length, UInt32 iWidth, UInt32 iHeight, XCCAM_IMAGEDATAINFO Info, IntPtr Context) { GCHandle param = GCHandle.FromIntPtr(Context); frmCameraSetting VRef = (frmCameraSetting)param.Target; Int64 TickCount; VRef.FrameCount++; TickCount = VRef.Frame.ElapsedTicks; if (TickCount >= Stopwatch.Frequency) { VRef.Fps = VRef.FrameCount; VRef.FrameCount = 0; VRef.Frame.Restart(); VRef.Fps *= Stopwatch.Frequency; VRef.Fps /= TickCount; if (!VRef.FpsUpdate.IsBusy) { VRef.FpsUpdate.RunWorkerAsync(); } } TickCount = VRef.DispExec.ElapsedTicks; if (TickCount >= (Stopwatch.Frequency / VRef.Dislay_FPS) || !VRef.Disp_Flag) { VRef.Disp_Flag = true; VRef.DispExec.Restart(); XCCam.BufferConvExec(pInBuf, VRef.RGBData); if (!VRef.DisplayUpdate.IsBusy) { VRef.DisplayUpdate.RunWorkerAsync(); } } }
private void InitCamSetting() { CamTotalNum = 0; XCCAM.SetStructVersion(XCCamDotNet.Constants.LIBRARY_STRUCT_VERSION); ParamCB = GCHandle.Alloc(this); XCCAM.SetCallBack(GCHandle.ToIntPtr(ParamCB), SystemCB); SetBounds(10, 10, 0, 0, BoundsSpecified.X | BoundsSpecified.Y); }
private bool CameraOneOpen(UInt64 UID) { bool SucCamOpenFlag = true; XCCAM_CAMERAINFO CameraInfo; XCCam = new XCCAM(UID); if (!XCCam.IsXCCam_Ready()) { MessageBox.Show("Open Camera Error"); XCCam.Dispose(); SucCamOpenFlag = false; return(SucCamOpenFlag); } XCCam.CameraInfo(out CameraInfo); //ParamCB = GCHandle.Alloc(this); return(SucCamOpenFlag); }