/// <summary> /// 添加相机 /// </summary> /// <param name="cameraSerial">相机序列号</param> /// <exception cref="InvalidOperationException"> /// 打开相机失败 /// </exception> public static void AddCamera(string cameraSerial) { //校验相机SDK是否有效 if (!CameraAssemblys.ContainsKey(DefaultCameraSdkType)) { throw new ArgumentException("ECameraSdkType invalid"); } if (string.IsNullOrEmpty(cameraSerial)) { throw new ArgumentException("cameraSerial cannot be null"); } //如果当前相机已经注册了,则直接返回 if (Cameras.ContainsKey(cameraSerial)) { return; } ICamera camera = CreateInstance(DefaultCameraSdkType); if (camera.Connect(cameraSerial)) { Cameras.Add(cameraSerial, camera); SetToDefaultConfiguration(camera); return; } else { throw new InvalidOperationException($"open camera[{cameraSerial}] err!"); } }
/// <summary> /// 获取所有的相机 /// </summary> /// <returns>相机信息列表</returns> public static List <DeviceInfo> GetAllCameras() { //校验相机SDK是否有效 if (!CameraAssemblys.ContainsKey(DefaultCameraSdkType)) { throw new ArgumentException("ECameraSdkType invalid"); } return(CreateInstance(DefaultCameraSdkType).GetDeviceList()); }
/// <summary> /// 添加所有的相机 /// </summary> /// <returns>执行结果</returns> public static void AddAllCamera() { //校验相机SDK名是否有效 if (!CameraAssemblys.ContainsKey(DefaultCameraSdkType)) { throw new ArgumentException("ECameraSdkType invalid"); } try { //添加所有的相机 var devices = GetAllCameras(); foreach (var item in devices) { AddCamera(item.SerialNumber); } } catch (Exception) { throw; } }