public static M12Wrapper CreateInstance(string PortName, int Baudrate) { //线程安全 lock (_lock) { if (InstanseDic.Keys.Contains(PortName)) { return(InstanseDic[PortName]); } else { var ins = new M12Wrapper(PortName, Baudrate); InstanseDic.Add(PortName, ins); return(ins); } } }
public bool Init(MotionCardCfg motionCfg, ICommunicationPortCfg communicationPortCfg) { try { this.motionCfg = motionCfg; MAX_AXIS = motionCfg.MaxAxisNo; MIN_AXIS = motionCfg.MinAxisNo; ComportCfg portCfg = communicationPortCfg as ComportCfg; comport = CommunicationMgr.Instance.FindPortByPortName(motionCfg.PortName) as Comport; _controller = M12Wrapper.CreateInstance(portCfg.Port, portCfg.BaudRate); _controller.OnUnitStateUpdated += OnIrixiAxisStateChanged; _controller.Open(); return(true); } catch { return(false); } }