using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TeamAAS.Motion.Interfaces;
using TeamAAS.Motion.Models;
using TeamAAS.Motion.Motions;
namespace TeamAAS.Motion.AdapterFactorys
{
public interface IDeviceAdapterFactory
{
///
/// 工厂的唯一标识符,必须与配置文件中的 AdapterKey 完全匹配
///
string Key { get; }
///
/// 根据配置创建设备实例
///
IMotionControl Create(MotionDeviceConfig config);
}
// 仿真卡工厂
public class SimulatedDeviceFactory : IDeviceAdapterFactory
{
public string Key => "Simulated";
public IMotionControl Create(MotionDeviceConfig config)
=> new SimulatedMotionCard(config);
}
// 汇川卡工厂
public class InovanceDeviceFactory : IDeviceAdapterFactory
{
public string Key => "Inovance";
public IMotionControl Create(MotionDeviceConfig config)
{
// 实例化汇川卡,使用 config.ConnectionString 等参数
return new InovanceMotionCard(config);
}
}
// 雷赛卡工厂
public class LeadshineDeviceFactory : IDeviceAdapterFactory
{
public string Key => "Leadshine";
public IMotionControl Create(MotionDeviceConfig config)
{
// 实例化雷赛卡,使用 config.ConnectionString 等参数
return new LeadshineMotionCard(config);
}
}
}