using Bro.Common.Helper; using Bro.Common.Interface; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using static Bro.Common.Helper.EnumHelper; namespace Bro.Common.Factory { public static class DeviceFactory { /// /// 根据设备类型名称获取设备对象 /// /// 设备类型名称,如HalconCamera /// public static IDevice GetDeviceInstanceByTypeName(string deviceTypeName) { Type deviceType = FactoryHelper.GetTypeByAtrributeTypeName(deviceTypeName, DeviceAttributeType.Device); if (deviceType == null) { return null; } return Activator.CreateInstance(deviceType) as IDevice; } public static List GetAllSupportDeviceTypeNames() { List deviceNames = new List(); FactoryHelper.TYPES.ForEach(t => { var attr = t.GetCustomAttribute(); if (attr.AttrType == DeviceAttributeType.Device) { deviceNames.Add(attr.TypeCode); } }); return deviceNames; } } }