Exemplo n.º 1
0
        /// <summary>
        /// 读设备信息
        /// </summary>
        public void Request_Ver()
        {
            string strSendVer, strRecVer;
            int    lenVer, ret;

            byte[] byteRecVer = new byte[21];
            strSendVer = "#01I\r\n";
            byte[] byteSendVer = Encoding.Default.GetBytes(strSendVer);
            ret = sio_flush(ExGlobal.Port, 2);
            if (ret != ExGlobal.SIO_OK)
            {
                MxTool.MxShowError("sio_flush", ret);
                return;
            }
            sio_write(ExGlobal.Port, @byteSendVer, byteSendVer.Length);
            Thread.Sleep(100);
            lenVer = sio_read(ExGlobal.Port, @byteRecVer, 21);
            if (lenVer <= 0)
            {
                MessageBox.Show("No Data Received!", "sio_read", MessageBoxButtons.OKCancel);
                return;
            }
            strRecVer = Encoding.Default.GetString(byteRecVer);
            string[] delimiters = { ":" };
            string[] analyVer   = strRecVer.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
            StatusVer.Text = analyVer[1];
        }
Exemplo n.º 2
0
        /// <summary>
        /// 打开端口,读取设备信息
        /// </summary>
        /// <returns></returns>
        public Boolean OpenPort()
        {
            int     ret;
            Boolean Openport = false;

            ret = sio_open(ExGlobal.Port);
            if (ret != ExGlobal.SIO_OK)
            {
                MxTool.MxShowError("sio_open", ret);
                return(Openport);
            }
            if (PortSet() == false)
            {
                sio_close(ExGlobal.Port);
                return(Openport);
            }
            getCommData.GetCommData(ExGlobal.iPort, ExGlobal.ibaudrate, ExGlobal.iparity, ExGlobal.ibytesize, ExGlobal.istopbits);
            ExGlobal.GhExit         = false;
            ExGlobal.GbOpen         = true;
            StatusConnect.Text      = "Online";
            StatusConnect.BackColor = Color.LimeGreen;
            SwitchMenu();
            this.Text = ExGlobal.ShowStatus();
            Openport  = true;
            Request_Ver();
            thReadMeas = new Thread(new ThreadStart(ReadThreadExecute))
            {
                IsBackground = true
            };
            thReadMeas.Start();
            delRead = new Mydel(ShowData);
            return(Openport);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 端口设置
        /// </summary>
        /// <returns></returns>
        public Boolean PortSet()
        {
            int     port, mode, hw, sw, ret, tout;
            Boolean PortSet = false;

            port = ExGlobal.Port;
            mode = ExGlobal.ByteSize | ExGlobal.StopBits | ExGlobal.Parity;

            if (ExGlobal.Hw)
            {
                hw = 3;
            }
            else
            {
                hw = 0;
            }
            if (ExGlobal.Sw)
            {
                sw = 12;
            }
            else
            {
                sw = 0;
            }
            ret = sio_ioctl(port, ExGlobal.BaudRate, mode);
            if (ret != ExGlobal.SIO_OK)
            {
                MxTool.MxShowError("sio_ioctl", ret);
                return(PortSet);
            }
            ret = sio_flowctrl(port, hw | sw);
            if (ret != ExGlobal.SIO_OK)
            {
                MxTool.MxShowError("sio_flowctrl", ret);
                return(PortSet);
            }
            tout = 512 * 1000 / sio_getbaud(ExGlobal.Port) * 3;    //ms /byte
            ret  = sio_SetWriteTimeouts(ExGlobal.Port, tout);
            if (ret != ExGlobal.SIO_OK)
            {
                MxTool.MxShowError("sio_SetWriteTimeouts", ret);
                return(PortSet);
            }
            this.Text = ExGlobal.ShowStatus();
            PortSet   = true;
            return(PortSet);
        }