📄 cautombr.htm
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 2.0">
<title>CAutoModbus Class Members</title>
</head>
<body bgcolor="#FFFFFF">
<p><font size="5"><strong>CAutoModbus Class Members </strong></font></p>
<p><font size="3"><strong>class CAutoModbus : public </strong></font><a
href="cmodbu.htm"><font size="3"><strong>CModbus</strong></font></a></p>
<p><a href="#CAutoModbus::CreateInstance"><strong>CreateInstance</strong></a><strong>
- </strong>Create an automation object inside <a
href="Autosrv.htm">Modbus COM Server</a>.</p>
<p><a href="#CAutoModbus::Connect"><strong>Connect</strong></a><strong>
- </strong>Opens serial port or update com port parameters.</p>
<p><a href="modbuimp.htm#CModbus::TxRxMessage"><font size="3"><strong>TxRxMessage</strong></font></a><font
size="3"><strong> </strong></font>virtual CModbus implementation.
<font size="3">Sends and receives a message from a slave.</font></p>
<p><a href="modbuimp.htm#CModbus::ErrorMessage"><strong>ErrorMessage</strong></a><strong>
</strong>virtual CModbus implementation.Return string description
of an error code.</p>
<p> </p>
<p><a href="#CAutoModbus::ByteSize"><strong>ByteSize</strong></a>
- Specifies the number of bits in the bytes transmitted and
received. </p>
<p><a href="#CAutoModbus::BaudRate"><strong>BaudRate</strong></a>
- Specifies the baud rate </p>
<p><a href="#CAutoModbus::ComPort"><strong>ComPort</strong></a><strong>
</strong>- Comm serial port </p>
<p><a href="#CAutoModbus::FlowControl"><strong>FlowControl</strong></a>
- Specifies flow control. </p>
<p><a href="#CAutoModbus::Parity"><strong>Parity</strong></a> -
Specifies the parity scheme to be used. </p>
<p><a href="#CAutoModbus::SilentInterval"><strong>SilentInterval</strong></a>
- silent interval marking the begin and the end of message in ms.</p>
<p><a href="#CAutoModbus::StopBits"><strong>StopBits</strong></a>
- number of stop bits. </p>
<p><a href="#CAutoModbus::Timeout"><strong>Timeout</strong></a> -
message timeout in ms.</p>
<p><a href="#CAutoModbus::TransmissionMode"><strong>TransmissionMode</strong></a>
- Specifies RTU or ASCII transmission mode.</p>
<p><a name="CAutoModbus::CreateInstance"></a><font size="5"><strong>CAutoModbus::CreateInstance</strong></font></p>
<p><font size="3"><strong>HRESULT CreateInstance(LPCSTR
szMachine,LPCSTR szConnectionName);</strong></font></p>
<p><font size="3"><strong>Return Value </strong></font></p>
<p><font size="3">S_OK if function succeeds or HRESULT error code
returned by win api functions.</font></p>
<p><font size="3"><strong>Parameters</strong></font></p>
<p><font size="3">szMachine - </font>name of the machine to be
used, if szMachine is an empty string the function will try to
create the object on the same machine, common COM automation.</p>
<p><font size="3">szConnectionName - A string that specifies the
connection's name. </font></p>
<p><font size="3"><strong>Remarks</strong></font></p>
<p><font size="3">The machine name is used in when filling
COSERVERINFO</font><font size="1"> </font><font size="3">structure,
no security features of DCOM is used. Maybe you have to enhance
this function if you need to implement security features. See </font><a
href="mk:@ivt:pdobj/good/pdobj/com/api1_5ry0.htm"><font size="3">CoCreateInstanceEx</font></a><font
size="3"> in VC++ help for more information about creating remote
objects. </font></p>
<p><font size="3">The connection name can be any text , but you
can only share connections among apps with the same connection
name. Use , for instance , szConnectionName = "com2"
for opening com2 , "com3" for opening com3 and so on.</font></p>
<p><font size="3"><strong>example</strong>:</font></p>
<p><font size="3">HRESULT hRes;<br>
CAutoModbus autoModbus;<br>
//You need to call CoInitializeEx in any thread that use
automation<br>
// this include the main thread.<br>
hRes = ::CoInitializeEx(NULL,COINIT_MULTITHREADED); <br>
<br>
if FAILED(hRes) {<br>
goto ExitError;<br>
}<br>
<br>
<br>
//Create an object on machine with IP Address 200.251.186.30. </font></p>
<p><font size="3">// If you are using win95 the server must be
running before clients on other machines can create </font></p>
<p><font size="3">//objects instances.</font></p>
<p><font size="3"><br>
if
FAILED(autoModbus.CreateInstance("200.251.186.30","com2"))
{</font></p>
<blockquote>
<p><font size="3">AfxMessageBox(_T("Error creating
automation object "));<br>
goto ExitError;</font></p>
</blockquote>
<p><font size="3">}</font></p>
<p><font size="3">autoModbus.ComPort(2);<br>
autoModbus.StopBits(TWOSTOPBITS);<br>
autoModbus.ByteSize(8);<br>
autoModbus.FlowControl(mbFC_NONE);<br>
autoModbus.Timeout(300);<br>
autoModbus.SilentInterval(20);<br>
autoModbus.TransmissionMode(mbMODE_RTU);</font></p>
<p><font size="3">// this function that actually try to open a
comm port.</font></p>
<p><font size="3"><br>
if (!autoModbus.Connect()) {<br>
goto ExitError;<br>
<br>
}<br>
</font></p>
<p><font size="3"><br>
pModbus= (CModbus*)&autoModbus;<br>
</font></p>
<p>//preset register 40002 to 03 in slave device 17 <font
size="3"><br>
</font>wError = pModbus-><font size="3">PresetSingleRegister(17,1,3</font>)
; <font size="3"><br>
<br>
if (CModbus::ERR_OK!= </font>wError) {</p>
<blockquote>
<p>AfxMessageBox( pModbus->ErrorMessage(wError));</p>
</blockquote>
<p>}</p>
<p><font size="3"><br>
ExitError:<br>
::CoUninitialize(); <br>
</font></p>
<p><font size="3"><strong>See also: </strong></font><a
href="#CAutoModbus::StopBits"><font size="3">StopBits</font></a><font
size="3"> , </font><a href="#CAutoModbus::ByteSize"><font
size="3">ByteSize</font></a><font size="3"> , </font><a
href="#CAutoModbus::FlowControl"><font size="3">FlowControl</font></a><font
size="3"> , </font><a href="#CAutoModbus::Timeout"><font size="3">Timeout</font></a><font
size="3"> , </font><a href="#CAutoModbus::SilentInterval"><font
size="3">SilentInterval</font></a><font size="3"> , </font><a
href="#CAutoModbus::TransmissionMode"><font size="3">TransmissionMode</font></a><font
size="3">.</font></p>
<p><a name="CAutoModbus::Connect"></a><font size="5"><strong>CAutoModbus::Connect</strong></font></p>
<p><font size="3"><strong>BOOL Connect();</strong></font></p>
<p><font size="3"><strong>Return Value </strong></font></p>
<p><font size="3">TRUE if function succeeds or FALSE if fails.</font></p>
<p><font size="3"><strong>Remarks</strong></font></p>
<dl>
<dd>Calling "Connect" actually try to open a comm
port. The comm parameters <a
href="#CAutoModbus::StopBits"><font size="3">StopBits</font></a><font
size="3"> , </font><a href="#CAutoModbus::ByteSize"><font
size="3">ByteSize</font></a><font size="3"> , </font><a
href="#CAutoModbus::FlowControl"><font size="3">FlowControl</font></a><font
size="3"> , </font><a href="#CAutoModbus::Timeout"><font
size="3">Timeout</font></a><font size="3"> ... must be
set before calling this method.</font></dd>
</dl>
<p><font size="3"><strong>See also: </strong></font><a
href="#CAutoModbus::CreateInstance"><font size="3">CreateInstance</font></a></p>
<p> </p>
<p><a name="CAutoModbus::ByteSize"></a><font size="5"><strong>CAutoModbus::ByteSize</strong></font></p>
<p><font size="3"><strong>void ByteSize(WORD wSize);<br>
WORD ByteSize(); </strong></font></p>
<p><font size="3"><strong>Remarks</strong></font></p>
<dl>
<dd>Specifies the number of bits in the bytes transmitted and
received. RTU uses 8 and ASCII 7.</dd>
</dl>
<p><font size="3"><strong>See also: </strong></font><a
href="#CAutoModbus::CreateInstance"><font size="3">CreateInstance</font></a></p>
<p><a name="CAutoModbus::BaudRate"></a><font size="5"><strong>CAutoModbus::BaudRate</strong></font></p>
<p><font size="3"><strong>DWORD BaudRate(); //actual baudrate
value <br>
void BaudRate(DWORD dwBaudRate);</strong></font></p>
<p><font size="3"><strong>Remarks</strong></font></p>
<dl>
<dd>Specifies the baud rate , 300 , 1200 , 9600. You can use
the following windows constants:</dd>
</dl>
<table border="0">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -