예제 #1
0
        /// <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));
        }
예제 #2
0
        /// <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));
        }
예제 #3
0
        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));
        }