using Bro.Common.Base; using Bro.Common.Helper; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Globalization; using System.Collections; using MvCamCtrl.NET; using System.Runtime.InteropServices; using System.Drawing.Design; namespace Bro.Device.HikCamera { [Device("HikCamera", "海康相机", EnumHelper.DeviceAttributeType.OperationConfig)] public class HikCameraOperationConfig : HalconRelatedCameraOprerationConfigBase { } public class HikCameraDeviceConfig : CameraDeviceConfigBase { } [Device("HikCamera", "海康相机", EnumHelper.DeviceAttributeType.InitialConfig)] public class HikCameraInitialConfig : HalconRelatedCameraInitialConfigBase, INotifyPropertyChanged { [Category("采图模式")] [Description("是否连续模式。true:连续模式采图;false:触发模式采图")] public bool IsContinueMode { get; set; } = false; private bool isHardwareTrigger = false; [Category("采图模式")] [Description("是否硬触发模式。true:硬触发;false:软触发")] public bool IsHardwareTrigger { get => isHardwareTrigger; set { if (isHardwareTrigger != value) { isHardwareTrigger = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("IsHardwareTrigger")); } } } public event PropertyChangedEventHandler PropertyChanged; } public class HikCameraInputConfig : CameraInputConfigBase { } //public class HikCameraTypeConvert : ComboBoxItemTypeConvert //{ // public override void GetConvertHash() // { // _hash.Add("1", "GIGE"); // _hash.Add("4", "USB"); // } //} //public class HikSerialNumConvert : StringConverter //{ // public override bool GetStandardValuesSupported(ITypeDescriptorContext context) // { // return true; // } // public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) // { // List serialNumList = new List(); // MyCamera.MV_CC_DEVICE_INFO_LIST m_pDeviceList = default(MyCamera.MV_CC_DEVICE_INFO_LIST); // int nRet = CameraOperator.EnumDevices(MyCamera.MV_GIGE_DEVICE | MyCamera.MV_USB_DEVICE, ref m_pDeviceList); // if (0 != nRet) // { // return null; // } // for (int i = 0; i < m_pDeviceList.nDeviceNum; i++) // { // MyCamera.MV_CC_DEVICE_INFO device = (MyCamera.MV_CC_DEVICE_INFO)Marshal.PtrToStructure(m_pDeviceList.pDeviceInfo[i], typeof(MyCamera.MV_CC_DEVICE_INFO)); // if (device.nTLayerType == MyCamera.MV_GIGE_DEVICE) // { // IntPtr buffer = Marshal.UnsafeAddrOfPinnedArrayElement(device.SpecialInfo.stGigEInfo, 0); // MyCamera.MV_GIGE_DEVICE_INFO gigeInfo = (MyCamera.MV_GIGE_DEVICE_INFO)Marshal.PtrToStructure(buffer, typeof(MyCamera.MV_GIGE_DEVICE_INFO)); // serialNumList.Add(gigeInfo.chSerialNumber); // } // else if (device.nTLayerType == MyCamera.MV_USB_DEVICE) // { // IntPtr buffer = Marshal.UnsafeAddrOfPinnedArrayElement(device.SpecialInfo.stUsb3VInfo, 0); // MyCamera.MV_USB3_DEVICE_INFO usbInfo = (MyCamera.MV_USB3_DEVICE_INFO)Marshal.PtrToStructure(buffer, typeof(MyCamera.MV_USB3_DEVICE_INFO)); // serialNumList.Add(usbInfo.chSerialNumber); // } // } // return new StandardValuesCollection(serialNumList); // } //} }