Ejemplo n.º 1
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);
        }