📄 serialport.htm
字号:
the following values:</font></p>
<p><font face="Arial">
enum Parity<br>
{ <br>
EvenParity,<br>
MarkParity,<br>
NoParity,<br>
OddParity,<br>
SpaceParity<br>
};</font></p>
<p><font face="Arial"><i>Databits</i> The number of data bits to use</font></p>
<p><font face="Arial"><i>stopbits</i> The number of stop bits to use. stopbits
is an enum with the following values:</font></p>
<p><font face="Arial">
enum StopBits<br>
{<br>
OneStopBit,<br>
OnePointFiveStopBits,<br>
TwoStopBits<br>
};</font>
</p>
<p><font face="Arial"><i>fc</i> The flow control method to use. fc is an enum
with the following values:</font></p>
<p><font face="Arial">enum FlowControl<br>
{<br>
NoFlowControl,<br>
CtsRtsFlowControl,<br>
CtsDtrFlowControl,<br>
DsrRtsFlowControl,<br>
DsrDtrFlowControl,<br>
XonXoffFlowControl<br>
};</font>
</p>
<p><font face="Arial"><i>bOverlapped</i> TRUE if you want to open in overlapped
mode, otherwise FALSE to use blocking calls.</font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Call this member function to open a communications port.
Internally the class will use CreateFile to open the comms port (handling the
case where the port number if greater than 9) and then uses SetState to set the
various RS-232 settings as specified via the function parameters. If an error
occurs, a CSerialException will be thrown.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::Close</font></b></p>
<p><font face="Arial"><span class="op"><b>Close();</b></span></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">The corollary function to Open. Just closes the comms port
if already open.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::Attach</font></b></p>
<p><font face="Arial"><span class="op"><b>void Attach(HANDLE </b><i>hComm</i><b>);</b></span></font></p>
<p><b><font face="Arial">Parameters</font></b></p>
<p><font face="Arial"><span class="p"><i>hComm</i></span> The
SDK handle of the open comms port.</font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Allows you to attach a CSerialPort instance to an existing
SDK comms port handle. This function is similar in behavior to the
CWnd::Attach function provided in MFC.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::Detach</font></b></p>
<p><font face="Arial"><span class="op"><b>HANDLE Detach();</b></span></font></p>
<p><b><font face="Arial">Return Value</font></b></p>
<p><font face="Arial">The SDK comms port HANDLE.</font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Corollary function to Attach. This function is similar in behavior
to the CWnd::Detach function provided in MFC.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::operator
HANDLE</font></b></p>
<p><font face="Arial"><span class="op"><b>operator HANDLE();</b></span></font></p>
<p><b><font face="Arial">Return Value</font></b></p>
<p><font face="Arial">The SDK comms port HANDLE.</font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Use this operator to get the handle of the underlying
comms port. You can use this handle to call the Windows APIs directly.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::IsOpen</font></b></p>
<p><font face="Arial"><span class="op"><b>BOOL IsOpen() const</b></span></font></p>
<p><b><font face="Arial">Return Value</font></b></p>
<p><font face="Arial">TRUE if the comms port is open otherwise FALSE</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::Dump</font></b></p>
<p><font face="Arial"><span class="op"><b>void Dump(CDumpContext& </b><i>dc</i><b>) const</b></span></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Standard MFC diagnostic support function</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::Read \ ReadEx</font></b></p>
<p><font face="Arial"><b>
DWORD Read(void* </b><i>lpBuf</i><b>, DWORD </b><i>dwCount</i><b>);<br>
BOOL Read(void* </b><i>lpBuf</i><b>, DWORD </b><i>dwCount</i><b>, OVERLAPPED&
</b><i>overlapped</i><b>);<br>
void ReadEx(void* </b><i>lpBuf</i><b>, DWORD </b><i>dwCount</i><b>);<br>
</b><span class="op"><b> </b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Return Value</font></b></p>
<p><font face="Arial">1) The number of bytes read.</font></p>
<p><font face="Arial">2) TRUE if the overlapped read completely
synchronously, FALSE if the operation is to be completed asynchronously.</font></p>
<p><b><font face="Arial">Parameters</font></b></p>
<p><font face="Arial"><span class="p"><i>lpBuf</i></span> Points to
the buffer to read the data into from the serial port</font></p>
<p><font face="Arial"><span class="p"><i>dwCount</i></span> Specifies
the number of bytes to read from the serial port.</font></p>
<p><font face="Arial"><i><span class="p">overlapped</span></i> reference
to an OVERLAPPED structure. This is required if the port was opened in
overlapped mode.</font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">These 3 functions are wrappers for the SDK calls ReadFile
and ReadFileEx. The 2nd version of Read is the overlapped version.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::Write \
WriteEx</font></b></p>
<p><font face="Arial"><b>
DWORD Write(const void* </b><i>lpBuf</i><b>, DWORD </b><i>dwCount</i><b>);<br>
BOOL Write(const void* </b><i>lpBuf</i><b>, DWORD </b><i>dwCount</i><b>, OVERLAPPED&
</b><i>overlapped</i><b>);<br>
void WriteEx(const void* </b><i>lpBuf</i><b>, DWORD </b><i>dwCount</i><b>);<br>
</b><span class="op"><b> </b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Return Value</font></b></p>
<p><font face="Arial">1) The number of bytes written.</font></p>
<p><font face="Arial">2) TRUE if the overlapped write completely
synchronously, FALSE if the operation is to be completed asynchronously.</font></p>
<p><b><font face="Arial">Parameters</font></b></p>
<p><font face="Arial"><span class="p"><i>lpBuf</i></span> Points to
the buffer containing the data to be written to the serial port</font></p>
<p><font face="Arial"><span class="p"><i>dwCount</i></span> Specifies
the number of bytes to write to the serial port.</font></p>
<p><font face="Arial"><i><span class="p">overlapped</span></i> reference
to an OVERLAPPED structure. This is required if the port was opened in
overlapped mode.</font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">These 3 functions are wrappers for the SDK calls WriteFile
and WriteFileEx. The 2nd version of Write is the overlapped version.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::TransmitChar</font></b></p>
<p><font face="Arial"><span class="op"><b>void TransmitChar(char </b><i>cChar</i><b>) const<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the TransmitCommChar SDK function call.
See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::GetOverlappedResult</font></b></p>
<p><font face="Arial"><span class="op"><b>void
GetOverlappedResult(OVERLAPPED& </b><i>overlapped</i><b>, DWORD& </b><i>dwBytesTransferred</i><b>,
BOOL </b><i>bWait</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the GetOverlappedResult SDK function
call. See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::CancelIo</font></b></p>
<p><font face="Arial"><span class="op"><b>void CancelIo()<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the CancelIo SDK function call. See the
Win32 SDK documentation for further details. Please note that this function is
only available on NT 4 or Windows 98 or later. In version 1.0 of CSerialPort,
this would cause code developed with it to fail to load on Windows 95 with an
error about a missing export. This problem has been rectified in v1.01 of
CSerialPort.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::GetConfig</font></b></p>
<p><font face="Arial"><span class="op"><b>void GetConfig(COMMCONFIG& </b><i>config</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the GetCommConfig SDK function call.
See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::GetDefaultConfig</font></b></p>
<p><font face="Arial"><span class="op"><b>static void GetDefaultConfig(int </b><i>nPort</i><b>,
COMMCONFIG& </b><i>config</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the GetDefaultCommConfig SDK function
call. See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::SetConfig</font></b></p>
<p><font face="Arial"><span class="op"><b>void SetConfig(COMMCONFIG& </b><i>config</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the SetCommConfig SDK function call.
See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::SetDefaultConfig</font></b></p>
<p><font face="Arial"><span class="op"><b>static void SetDefaultConfig(int </b><i>nPort</i><b>,
COMMCONFIG& </b><i>config</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the SetDefaultCommConfig SDK function
call. See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::ClearBreak</font></b></p>
<p><font face="Arial"><span class="op"><b>void ClearBreak()<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the ClearCommBreak SDK function call.
See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::SetBreak</font></b></p>
<p><font face="Arial"><span class="op"><b>void SetBreak()<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the SetCommBreak SDK function call. See
the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::ClearError</font></b></p>
<p><font face="Arial"><span class="op"><b>void ClearError(DWORD& </b><i>dwErrors</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the ClearCommError SDK function call.
See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::GetStatus</font></b></p>
<p><font face="Arial"><span class="op"><b>void GetStatus(COMMSTAT& </b><i>stat</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the GetCommStatus SDK function call.
See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::GetState</font></b></p>
<p><font face="Arial"><span class="op"><b>void GetState(DCB& </b><i>dcb</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the GetCommState SDK function call. See
the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::SetState</font></b></p>
<p><font face="Arial"><span class="op"><b>void SetState(DCB& </b><i>dcb</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the SetCommState SDK function call. See
the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::Escape</font></b></p>
<p><font face="Arial"><span class="op"><b>void Escape(DWORD </b><i>dwFunc</i><b>)<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Simple wrapper for the EscapeCommFunction SDK function
call. See the Win32 SDK documentation for further details.</font></p>
<p> </p>
<p><b><font face="Arial" size="4">CSerialPort::ClearDTR</font></b></p>
<p><font face="Arial"><span class="op"><b>void ClearDTR()<br>
</b></span> <b><span class="op">throw(</span>
<span class="op">CSerialException</span> <span class="op">);</span></b></font></p>
<p><b><font face="Arial">Remarks</font></b></p>
<p><font face="Arial">Calls the Escape function using the constant CLRDTR which
lowers the DTR line.</font></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -