/// <summary> /// 配置com口参数,并且加入串口池 /// </summary> /// <returns></returns> public override String comSetting() { SerialPortEntity entity = new SerialPortEntity(PortName, BoundRate, DataBits, Parity, StopBits, Command); if (!SerialPortFactory.SerialPortPool.ContainsKey(PortName)) { SerialPortFactory.SerialPortPool.Add(PortName, entity); } SerialPortEntity se = SerialPortFactory.SerialPortPool[PortName]; BaseResponseBean bean = new BaseResponseBean(); if (se != null) { bean.ErrorCode = 0; bean.ErrorMessage = "操作成功"; } else { bean.ErrorCode = -1; bean.ErrorMessage = "操作失败"; } bean.Key = "comSetting"; return(JsonConvert.SerializeObject(bean)); }
/// <summary> /// 打开串口 /// </summary> /// <returns></returns> public override String openCom() { int errorCode = -1; String errorMessage = ""; if (!SerialPortFactory.SerialPortPool.ContainsKey(PortName)) { errorCode = -1; errorMessage = "串口未初始化"; } else { errorCode = 0; } BaseResponseBean bean = new BaseResponseBean(); if (errorCode == 0) { SerialPortEntity se = SerialPortFactory.SerialPortPool[PortName]; if (!se.Port.IsOpen) { se.Port.Open(); errorCode = 0; errorMessage = "打开成功"; } else { errorCode = -1; errorMessage = "串口已经处于打开状态"; } } bean.ErrorCode = errorCode; bean.ErrorMessage = errorMessage; bean.Key = "openCom"; return(JsonConvert.SerializeObject(bean)); }
public override String sendComCommand() { if (String.IsNullOrEmpty(PortName)) { PortName = Tools.GetAppSetting("m_portName"); } if (String.IsNullOrEmpty(Command)) { Command = Tools.GetAppSetting("m_command"); } ///如果此串口没有注册,就注册 if (!SerialPortFactory.SerialPortPool.ContainsKey(PortName)) { int m_boundRate = 9600; if (m_boundRate < 1) { m_boundRate = Int32.Parse(Tools.GetAppSetting("m_boundRate")); } int m_dataBits = 8; Parity m_parity = Parity.None; StopBits m_stopBits = StopBits.One; SerialPortEntity entity = new SerialPortEntity(PortName, m_boundRate, m_dataBits, m_parity, m_stopBits, Command); SerialPortFactory.SerialPortPool.Add(PortName, entity); } ///否则取得注册过的串口的实体 SerialPortEntity port = SerialPortFactory.SerialPortPool[PortName]; if (!port.Port.IsOpen) { port.Port.Open(); } ///不再等待,将sessionID推送到当前串口,从dataTeceived事件取回结果,推送回sessionID ///实际多少时间就是多少时间 port.SendCommand(Command); BaseResponseBean bean = new BaseResponseBean(); bean.ErrorCode = 0; bean.ErrorMessage = "发送成功"; bean.Key = "comSendCommand"; return(JsonConvert.SerializeObject(bean)); }