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