From d843e6b467873bc87f958ec43e3b1ecba6515143 Mon Sep 17 00:00:00 2001 From: lhiven <236881222@qq.com> Date: Fri, 11 Aug 2023 08:16:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=B9=E6=B5=B7=E5=BA=B7US?= =?UTF-8?q?B=E7=9B=B8=E6=9C=BA=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.Camera/HikCamera.cs | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/Rs.Camera/HikCamera.cs b/Rs.Camera/HikCamera.cs index ba672f2..c4a8961 100644 --- a/Rs.Camera/HikCamera.cs +++ b/Rs.Camera/HikCamera.cs @@ -3,6 +3,7 @@ using MvCamCtrl.NET; using Rs.Framework; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; @@ -184,7 +185,46 @@ namespace Rs.Camera { return ECameraErrorCode.StartGrabbingFail; } - + + } + else if (device.nTLayerType == MyCamera.MV_USB_DEVICE) + { + MyCamera.MV_USB3_DEVICE_INFO usbInfo = (MyCamera.MV_USB3_DEVICE_INFO)MyCamera.ByteToStruct(device.SpecialInfo.stGigEInfo, typeof(MyCamera.MV_USB3_DEVICE_INFO)); + string cameraInfo = usbInfo.chUserDefinedName;// gigeInfo.chModelName + " (" + gigeInfo.chSerialNumber + ")"; + MyCamera camera = new MyCamera(); + cameraDic.Add(cameraInfo, camera); + apiResult = camera.MV_CC_CreateDevice_NET(ref device); + if (apiResult != 0) + { + return ECameraErrorCode.CreateDeviceFail; + } + apiResult = camera.MV_CC_OpenDevice_NET(); + if (apiResult != 0) + { + return ECameraErrorCode.OpenDeviceFail; + } + apiResult = camera.MV_CC_SetEnumValue_NET("TriggerMode", (uint)MyCamera.MV_CAM_TRIGGER_MODE.MV_TRIGGER_MODE_ON); + if (nRet != MyCamera.MV_OK) + { + return ECameraErrorCode.SetTriggerModeFail; + } + apiResult = camera.MV_CC_SetEnumValue_NET("TriggerSource", (uint)MyCamera.MV_CAM_TRIGGER_SOURCE.MV_TRIGGER_SOURCE_SOFTWARE); + if (nRet != MyCamera.MV_OK) + { + return ECameraErrorCode.SetTriggerSourceFail; + } + apiResult = camera.MV_CC_RegisterImageCallBackEx_NET(cbImage, (IntPtr)i); + if (apiResult != 0) + { + return ECameraErrorCode.RegisterImageCallBackExFail; + } + cameraIDs.Add(cameraInfo, i); + camTrigger.Add(i, ETriggerMode.Manual); + //apiResult = camera.MV_CC_StartGrabbing_NET(); + if (apiResult != 0) + { + return ECameraErrorCode.StartGrabbingFail; + } } }