⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用c#读取gps数据.htm

📁 GPS的资料,上来和大家分享,正做这个的朋友可以看看.
💻 HTM
📖 第 1 页 / 共 4 页
字号:
            指定是否允许奇偶校验 enable parity checking <BR>&nbsp;&nbsp;&nbsp;public int 
            fOutxCtsFlow;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            指定CTS是否用于检测发送控制,当为TRUE是CTS为OFF,发送将被挂起。 CTS output flow control 
            <BR>&nbsp;&nbsp;&nbsp;public int 
            fOutxDsrFlow;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 指定CTS是否用于检测发送控制 DSR 
            output flow control <BR>&nbsp;&nbsp;&nbsp;public int 
            fDtrControl;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            DTR_CONTROL_DISABLE值将DTR置为OFF, DTR_CONTROL_ENABLE值将DTR置为ON, 
            DTR_CONTROL_HANDSHAKE允许DTR"握手" DTR flow control type 
            <BR>&nbsp;&nbsp;&nbsp;public int fDsrSensitivity;&nbsp;&nbsp; // 
            当该值为TRUE时DSR为OFF时接收的字节被忽略 DSR sensitivity 
            <BR>&nbsp;&nbsp;&nbsp;public int fTXContinueOnXoff; // 
            指定当接收缓冲区已满,并且驱动程序已经发送出XoffChar字符时发送是否停止。TRUE时,在接收缓冲区接收到缓冲区已满的字节XoffLim且驱动程序已经发送出XoffChar字符中止接收字节之后,发送继续进行。 FALSE时,在接收缓冲区接收到代表缓冲区已空的字节XonChar且驱动程序已经发送出恢复发送的XonChar之后,发送继续进行。XOFF 
            continues Tx <BR>&nbsp;&nbsp;&nbsp;public int 
            fOutX;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            TRUE时,接收到XoffChar之后便停止发送接收到XonChar之后将重新开始 XON/XOFF out flow control 
            <BR>&nbsp;&nbsp;&nbsp;public int 
            fInX;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            TRUE时,接收缓冲区接收到代表缓冲区满的XoffLim之后,XoffChar发送出去接收缓冲区接收到代表缓冲区空的XonLim之后,XonChar发送出去 
            XON/XOFF in flow control <BR>&nbsp;&nbsp;&nbsp;public int 
            fErrorChar;&nbsp;&nbsp;&nbsp;&nbsp; // 
            该值为TRUE且fParity为TRUE时,用ErrorChar 成员指定的字符代替奇偶校验错误的接收字符 enable error 
            replacement <BR>&nbsp;&nbsp;&nbsp;public int 
            fNull;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            eTRUE时,接收时去掉空(0值)字节 enable null stripping 
            <BR>&nbsp;&nbsp;&nbsp;public int 
            fRtsControl;&nbsp;&nbsp;&nbsp;&nbsp; // RTS flow control 
            <BR>&nbsp;&nbsp;&nbsp;/*RTS_CONTROL_DISABLE时,RTS置为OFF<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTS_CONTROL_ENABLE时, 
            RTS置为ON<BR>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTS_CONTROL_HANDSHAKE时,<BR>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当接收缓冲区小于半满时RTS为ON<BR> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当接收缓冲区超过四分之三满时RTS为OFF<BR>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTS_CONTROL_TOGGLE时,<BR>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当接收缓冲区仍有剩余字节时RTS为ON 
            ,否则缺省为OFF*/</P>
            <P>&nbsp;&nbsp;&nbsp;public int fAbortOnError;&nbsp;&nbsp; // 
            TRUE时,有错误发生时中止读和写操作 abort on error <BR>&nbsp;&nbsp;&nbsp;public int 
            fDummy2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 未使用 reserved 
            <BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;public uint 
            flags;<BR>&nbsp;&nbsp;&nbsp;public ushort 
            wReserved;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            未使用,必须为0 not currently used <BR>&nbsp;&nbsp;&nbsp;public ushort 
            XonLim;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 指定在XON字符发送这前接收缓冲区中可允许的最小字节数 transmit XON threshold 
            <BR>&nbsp;&nbsp;&nbsp;public ushort 
            XoffLim;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 指定在XOFF字符发送这前接收缓冲区中可允许的最小字节数 transmit XOFF threshold 
            <BR>&nbsp;&nbsp;&nbsp;public byte 
            ByteSize;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 指定端口当前使用的数据位&nbsp;number of bits/byte, 4-8 
            <BR>&nbsp;&nbsp;&nbsp;public byte 
            Parity;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 
            指定端口当前使用的奇偶校验方法,可能为:EVENPARITY,MARKPARITY,NOPARITY,ODDPARITY&nbsp; 
            0-4=no,odd,even,mark,space <BR>&nbsp;&nbsp;&nbsp;public byte 
            StopBits;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 指定端口当前使用的停止位数,可能为:ONESTOPBIT,ONE5STOPBITS,TWOSTOPBITS&nbsp; 0,1,2 
            = 1, 1.5, 2 <BR>&nbsp;&nbsp;&nbsp;public char 
            XonChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 指定用于发送和接收字符XON的值 Tx and Rx XON character 
            <BR>&nbsp;&nbsp;&nbsp;public char 
            XoffChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 指定用于发送和接收字符XOFF值 Tx and Rx XOFF character 
            <BR>&nbsp;&nbsp;&nbsp;public char 
            ErrorChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
            本字符用来代替接收到的奇偶校验发生错误时的值 error replacement character 
            <BR>&nbsp;&nbsp;&nbsp;public char 
            EofChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 当没有使用二进制模式时,本字符可用来指示数据的结束 end of input character 
            <BR>&nbsp;&nbsp;&nbsp;public char 
            EvtChar;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 当接收到此字符时,会产生一个事件 received event character 
            <BR>&nbsp;&nbsp;&nbsp;public ushort 
            wReserved1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 未使用 
            reserved; do not use <BR>&nbsp;&nbsp;}</P>
            <P>&nbsp;&nbsp;[StructLayout(LayoutKind.Sequential)]<BR>&nbsp;&nbsp;&nbsp;private 
            struct COMMTIMEOUTS <BR>&nbsp;&nbsp;{&nbsp; 
            <BR>&nbsp;&nbsp;&nbsp;public int ReadIntervalTimeout; 
            <BR>&nbsp;&nbsp;&nbsp;public int ReadTotalTimeoutMultiplier; 
            <BR>&nbsp;&nbsp;&nbsp;public int ReadTotalTimeoutConstant; 
            <BR>&nbsp;&nbsp;&nbsp;public int WriteTotalTimeoutMultiplier; 
            <BR>&nbsp;&nbsp;&nbsp;public int WriteTotalTimeoutConstant; 
            <BR>&nbsp;&nbsp;} &nbsp;</P>
            <P>&nbsp;&nbsp;[StructLayout(LayoutKind.Sequential)]&nbsp;<BR>&nbsp;&nbsp;&nbsp;private 
            struct OVERLAPPED <BR>&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;public 
            int&nbsp; Internal; <BR>&nbsp;&nbsp;&nbsp;public int&nbsp; 
            InternalHigh; <BR>&nbsp;&nbsp;&nbsp;public int&nbsp; Offset; 
            <BR>&nbsp;&nbsp;&nbsp;public int&nbsp; OffsetHigh; 
            <BR>&nbsp;&nbsp;&nbsp;public int hEvent; <BR>&nbsp;&nbsp;}&nbsp; 
            <BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]<BR>&nbsp;&nbsp;private 
            static extern int CreateFile(<BR>&nbsp;&nbsp;&nbsp;string 
            lpFileName,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 要打开的串口名称<BR>&nbsp;&nbsp;&nbsp;uint 
            dwDesiredAccess,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 指定串口的访问方式,一般设置为可读可写方式<BR>&nbsp;&nbsp;&nbsp;int 
            dwShareMode,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 指定串口的共享模式,串口不能共享,所以设置为0<BR>&nbsp;&nbsp;&nbsp;int 
            lpSecurityAttributes, // 
            设置串口的安全属性,WIN9X下不支持,应设为NULL<BR>&nbsp;&nbsp;&nbsp;int 
            dwCreationDisposition,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 对于串口通信,创建方式只能为OPEN_EXISTING<BR>&nbsp;&nbsp;&nbsp;int 
            dwFlagsAndAttributes,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 
            指定串口属性与标志,设置为FILE_FLAG_OVERLAPPED(重叠I/O操作),指定串口以异步方式通信<BR>&nbsp;&nbsp;&nbsp;int 
            hTemplateFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 
            对于串口通信必须设置为NULL<BR>&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]<BR>&nbsp;&nbsp;private 
            static extern bool GetCommState(<BR>&nbsp;&nbsp;&nbsp;int 
            hFile,&nbsp; //通信设备句柄<BR>&nbsp;&nbsp;&nbsp;ref DCB 
            lpDCB&nbsp;&nbsp;&nbsp; // 
            设备控制块DCB<BR>&nbsp;&nbsp;&nbsp;);&nbsp;<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]<BR>&nbsp;&nbsp;private 
            static extern bool BuildCommDCB(<BR>&nbsp;&nbsp;&nbsp;string 
            lpDef,&nbsp; // 设备控制字符串<BR>&nbsp;&nbsp;&nbsp;ref DCB 
            lpDCB&nbsp;&nbsp;&nbsp;&nbsp; // 
            设备控制块<BR>&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]<BR>&nbsp;&nbsp;private 
            static extern bool SetCommState(<BR>&nbsp;&nbsp;&nbsp;int 
            hFile,&nbsp; // 通信设备句柄<BR>&nbsp;&nbsp;&nbsp;ref DCB 
            lpDCB&nbsp;&nbsp;&nbsp; // 
            设备控制块<BR>&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]<BR>&nbsp;&nbsp;private 
            static extern bool GetCommTimeouts(<BR>&nbsp;&nbsp;&nbsp;int 
            hFile,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 通信设备句柄 handle to comm device<BR>&nbsp;&nbsp;&nbsp;ref 
            COMMTIMEOUTS lpCommTimeouts&nbsp; // 超时时间 time-out 
            values<BR>&nbsp;&nbsp;&nbsp;);&nbsp;<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]&nbsp;<BR>&nbsp;&nbsp;private 
            static extern bool SetCommTimeouts(<BR>&nbsp;&nbsp;&nbsp;int 
            hFile,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 通信设备句柄 handle to comm device<BR>&nbsp;&nbsp;&nbsp;ref 
            COMMTIMEOUTS lpCommTimeouts&nbsp; // 超时时间 time-out 
            values<BR>&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]<BR>&nbsp;&nbsp;private 
            static extern bool ReadFile(<BR>&nbsp;&nbsp;&nbsp;int 
            hFile,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 通信设备句柄 handle to file<BR>&nbsp;&nbsp;&nbsp;byte[] 
            lpBuffer,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 数据缓冲区 data buffer<BR>&nbsp;&nbsp;&nbsp;int 
            nNumberOfBytesToRead,&nbsp; // 多少字节等待读取 number of bytes to 
            read<BR>&nbsp;&nbsp;&nbsp;ref int lpNumberOfBytesRead, // 读取多少字节 
            number of bytes read<BR>&nbsp;&nbsp;&nbsp;ref OVERLAPPED 
            lpOverlapped&nbsp;&nbsp;&nbsp; // 溢出缓冲区 overlapped 
            buffer<BR>&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]&nbsp;<BR>&nbsp;&nbsp;private 
            static extern bool WriteFile(<BR>&nbsp;&nbsp;&nbsp;int 
            hFile,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 通信设备句柄 handle to file<BR>&nbsp;&nbsp;&nbsp;byte[] 
            lpBuffer,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            // 数据缓冲区 data buffer<BR>&nbsp;&nbsp;&nbsp;int 
            nNumberOfBytesToWrite,&nbsp;&nbsp;&nbsp;&nbsp; // 多少字节等待写入 number of 
            bytes to write<BR>&nbsp;&nbsp;&nbsp;ref int 
            lpNumberOfBytesWritten,&nbsp; // 已经写入多少字节 number of bytes 
            written<BR>&nbsp;&nbsp;&nbsp;ref OVERLAPPED 
            lpOverlapped&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 溢出缓冲区 
            overlapped 
            buffer<BR>&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]<BR>&nbsp;&nbsp;private 
            static extern bool CloseHandle(<BR>&nbsp;&nbsp;&nbsp;int 
            hObject&nbsp;&nbsp; // handle to 
            object<BR>&nbsp;&nbsp;&nbsp;);<BR>&nbsp;&nbsp;[DllImport("coredll.dll")]<BR>&nbsp;&nbsp;private 
            static extern uint 
            GetLastError();<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;public void 
            Open()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;DCB 
            dcbCommPort = new DCB();<BR>&nbsp;&nbsp;&nbsp;COMMTIMEOUTS 
            ctoCommPort = new COMMTIMEOUTS();&nbsp;<BR>&nbsp;&nbsp; &nbsp; 
            <BR>&nbsp;&nbsp;&nbsp;// 打开串口 OPEN THE COMM 
            PORT.<BR>&nbsp;&nbsp;&nbsp;hComm = CreateFile(PortNum ,GENERIC_READ 
            | GENERIC_WRITE,0, 0,OPEN_EXISTING,0,0);<BR>&nbsp;&nbsp;&nbsp;// 
            如果串口没有打开,就打开 IF THE PORT CANNOT BE OPENED, BAIL 
            OUT.<BR>&nbsp;&nbsp;&nbsp;if(hComm == INVALID_HANDLE_VALUE) 
            <BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;throw(new 
            ApplicationException("非法操作,不能打开串口!"));<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;// 
            设置通信超时时间 SET THE COMM 
            TIMEOUTS.<BR>&nbsp;&nbsp;&nbsp;GetCommTimeouts(hComm,ref 
            ctoCommPort);<BR>&nbsp;&nbsp;&nbsp;ctoCommPort.ReadTotalTimeoutConstant 
            = 
            ReadTimeout;<BR>&nbsp;&nbsp;&nbsp;ctoCommPort.ReadTotalTimeoutMultiplier 
            = 0;<BR>&nbsp;&nbsp;&nbsp;ctoCommPort.WriteTotalTimeoutMultiplier = 
            0;<BR>&nbsp;&nbsp;&nbsp;ctoCommPort.WriteTotalTimeoutConstant = 
            0;&nbsp; <BR>&nbsp;&nbsp;&nbsp;SetCommTimeouts(hComm,ref 
            ctoCommPort);<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;// 设置串口 SET BAUD 
            RATE, PARITY, WORD SIZE, AND STOP 
            BITS.<BR>&nbsp;&nbsp;&nbsp;GetCommState(hComm, ref 
            dcbCommPort);<BR>&nbsp;&nbsp;&nbsp;dcbCommPort.BaudRate=BaudRate;<BR>&nbsp;&nbsp;&nbsp;dcbCommPort.flags=0;<BR>&nbsp;&nbsp;&nbsp;//dcb.fBinary=1;<BR>&nbsp;&nbsp;&nbsp;dcbCommPort.flags|=1;<BR>&nbsp;&nbsp;&nbsp;if 
            (Parity&gt;0)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;//dcb.fParity=1<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcbCommPort.flags|=2;<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;dcbCommPort.Parity=Parity;<BR>&nbsp;&nbsp;&nbsp;dcbCommPort.ByteSize=ByteSize;<BR>&nbsp;&nbsp;&nbsp;dcbCommPort.StopBits=StopBits;<BR>&nbsp;&nbsp;&nbsp;if 
            (!SetCommState(hComm, ref 
            dcbCommPort))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;//uint 
            ErrorNum=GetLastError();<BR>&nbsp;&nbsp;&nbsp;&nbsp;throw(new 
            ApplicationException("非法操作,不能打开串口!"));<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;//unremark 
            to see if setting took correctly<BR>&nbsp;&nbsp;&nbsp;//DCB 
            dcbCommPort2 = new DCB();<BR>&nbsp;&nbsp;&nbsp;//GetCommState(hComm, 
            ref dcbCommPort2);<BR>&nbsp;&nbsp;&nbsp;Opened = 
            true;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;public void 
            Close() <BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;if 
            (hComm!=INVALID_HANDLE_VALUE) 
            <BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle(hComm);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;public 
            byte[] Read(int NumBytes) 
            <BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;byte[] 
            BufBytes;<BR>&nbsp;&nbsp;&nbsp;byte[] 
            OutBytes;<BR>&nbsp;&nbsp;&nbsp;BufBytes = new 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -