using GTN; using gts; using Rs.Framework; using Rs.Motion.Base; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; namespace Rs.Motion.GugaoPulse { /// /// 固高脉冲卡 /// public class GugaoPulseCardManager : ICardManager { /// /// 执行底层接口的返回值 /// private short apiResult = 0; private short core = 1; /// /// 保存一共有多少张卡 /// Dictionary cardDic= new Dictionary(); private GugaoPulseCardManager() { } private static GugaoPulseCardManager instance; public static GugaoPulseCardManager Instance { get { if(instance==null) { instance = new GugaoPulseCardManager(); } return instance; } } /// /// 同一类卡统一初始化 /// /// public override ErrorCode Init() { //打开运动控制卡 apiResult = mc_pulse.GT_Open(0, 0, 1); if(apiResult!= 0) { return ErrorCode.CardInitFail; } //清楚报警和限位 apiResult = mc_pulse.GT_ClrSts(0, 1, 8); if (apiResult != 0) { return ErrorCode.Fail; } IsInitialized = true; return ErrorCode.Ok; } public ICard GetCard(ushort cardID) { if(cardDic.ContainsKey(cardID)) return cardDic[cardID]; else { if(cardID==0) { ICard card = new GugaoPulseCard(cardID, 8, "gugao0.xml"); card.Init(); cardDic.Add(cardID, card); return card; } } return null; } } }