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; + } } }