Добавлены библиотеки
1921
Версия_3.0/libraries/Modbus-Master-Slave-for-Arduino-master/Doxyfile
Normal file
@ -0,0 +1,458 @@
|
|||||||
|
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 2.1, February 1999
|
||||||
|
|
||||||
|
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
[This is the first released version of the Lesser GPL. It also counts
|
||||||
|
as the successor of the GNU Library Public License, version 2, hence
|
||||||
|
the version number 2.1.]
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
Licenses are intended to guarantee your freedom to share and change
|
||||||
|
free software--to make sure the software is free for all its users.
|
||||||
|
|
||||||
|
This license, the Lesser General Public License, applies to some
|
||||||
|
specially designated software packages--typically libraries--of the
|
||||||
|
Free Software Foundation and other authors who decide to use it. You
|
||||||
|
can use it too, but we suggest you first think carefully about whether
|
||||||
|
this license or the ordinary General Public License is the better
|
||||||
|
strategy to use in any particular case, based on the explanations below.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom of use,
|
||||||
|
not price. Our General Public Licenses are designed to make sure that
|
||||||
|
you have the freedom to distribute copies of free software (and charge
|
||||||
|
for this service if you wish); that you receive source code or can get
|
||||||
|
it if you want it; that you can change the software and use pieces of
|
||||||
|
it in new free programs; and that you are informed that you can do
|
||||||
|
these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
distributors to deny you these rights or to ask you to surrender these
|
||||||
|
rights. These restrictions translate to certain responsibilities for
|
||||||
|
you if you distribute copies of the library or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of the library, whether gratis
|
||||||
|
or for a fee, you must give the recipients all the rights that we gave
|
||||||
|
you. You must make sure that they, too, receive or can get the source
|
||||||
|
code. If you link other code with the library, you must provide
|
||||||
|
complete object files to the recipients, so that they can relink them
|
||||||
|
with the library after making changes to the library and recompiling
|
||||||
|
it. And you must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
We protect your rights with a two-step method: (1) we copyright the
|
||||||
|
library, and (2) we offer you this license, which gives you legal
|
||||||
|
permission to copy, distribute and/or modify the library.
|
||||||
|
|
||||||
|
To protect each distributor, we want to make it very clear that
|
||||||
|
there is no warranty for the free library. Also, if the library is
|
||||||
|
modified by someone else and passed on, the recipients should know
|
||||||
|
that what they have is not the original version, so that the original
|
||||||
|
author's reputation will not be affected by problems that might be
|
||||||
|
introduced by others.
|
||||||
|
|
||||||
|
Finally, software patents pose a constant threat to the existence of
|
||||||
|
any free program. We wish to make sure that a company cannot
|
||||||
|
effectively restrict the users of a free program by obtaining a
|
||||||
|
restrictive license from a patent holder. Therefore, we insist that
|
||||||
|
any patent license obtained for a version of the library must be
|
||||||
|
consistent with the full freedom of use specified in this license.
|
||||||
|
|
||||||
|
Most GNU software, including some libraries, is covered by the
|
||||||
|
ordinary GNU General Public License. This license, the GNU Lesser
|
||||||
|
General Public License, applies to certain designated libraries, and
|
||||||
|
is quite different from the ordinary General Public License. We use
|
||||||
|
this license for certain libraries in order to permit linking those
|
||||||
|
libraries into non-free programs.
|
||||||
|
|
||||||
|
When a program is linked with a library, whether statically or using
|
||||||
|
a shared library, the combination of the two is legally speaking a
|
||||||
|
combined work, a derivative of the original library. The ordinary
|
||||||
|
General Public License therefore permits such linking only if the
|
||||||
|
entire combination fits its criteria of freedom. The Lesser General
|
||||||
|
Public License permits more lax criteria for linking other code with
|
||||||
|
the library.
|
||||||
|
|
||||||
|
We call this license the "Lesser" General Public License because it
|
||||||
|
does Less to protect the user's freedom than the ordinary General
|
||||||
|
Public License. It also provides other free software developers Less
|
||||||
|
of an advantage over competing non-free programs. These disadvantages
|
||||||
|
are the reason we use the ordinary General Public License for many
|
||||||
|
libraries. However, the Lesser license provides advantages in certain
|
||||||
|
special circumstances.
|
||||||
|
|
||||||
|
For example, on rare occasions, there may be a special need to
|
||||||
|
encourage the widest possible use of a certain library, so that it becomes
|
||||||
|
a de-facto standard. To achieve this, non-free programs must be
|
||||||
|
allowed to use the library. A more frequent case is that a free
|
||||||
|
library does the same job as widely used non-free libraries. In this
|
||||||
|
case, there is little to gain by limiting the free library to free
|
||||||
|
software only, so we use the Lesser General Public License.
|
||||||
|
|
||||||
|
In other cases, permission to use a particular library in non-free
|
||||||
|
programs enables a greater number of people to use a large body of
|
||||||
|
free software. For example, permission to use the GNU C Library in
|
||||||
|
non-free programs enables many more people to use the whole GNU
|
||||||
|
operating system, as well as its variant, the GNU/Linux operating
|
||||||
|
system.
|
||||||
|
|
||||||
|
Although the Lesser General Public License is Less protective of the
|
||||||
|
users' freedom, it does ensure that the user of a program that is
|
||||||
|
linked with the Library has the freedom and the wherewithal to run
|
||||||
|
that program using a modified version of the Library.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow. Pay close attention to the difference between a
|
||||||
|
"work based on the library" and a "work that uses the library". The
|
||||||
|
former contains code derived from the library, whereas the latter must
|
||||||
|
be combined with the library in order to run.
|
||||||
|
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License Agreement applies to any software library or other
|
||||||
|
program which contains a notice placed by the copyright holder or
|
||||||
|
other authorized party saying it may be distributed under the terms of
|
||||||
|
this Lesser General Public License (also called "this License").
|
||||||
|
Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
A "library" means a collection of software functions and/or data
|
||||||
|
prepared so as to be conveniently linked with application programs
|
||||||
|
(which use some of those functions and data) to form executables.
|
||||||
|
|
||||||
|
The "Library", below, refers to any such software library or work
|
||||||
|
which has been distributed under these terms. A "work based on the
|
||||||
|
Library" means either the Library or any derivative work under
|
||||||
|
copyright law: that is to say, a work containing the Library or a
|
||||||
|
portion of it, either verbatim or with modifications and/or translated
|
||||||
|
straightforwardly into another language. (Hereinafter, translation is
|
||||||
|
included without limitation in the term "modification".)
|
||||||
|
|
||||||
|
"Source code" for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For a library, complete source code means
|
||||||
|
all the source code for all modules it contains, plus any associated
|
||||||
|
interface definition files, plus the scripts used to control compilation
|
||||||
|
and installation of the library.
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running a program using the Library is not restricted, and output from
|
||||||
|
such a program is covered only if its contents constitute a work based
|
||||||
|
on the Library (independent of the use of the Library in a tool for
|
||||||
|
writing it). Whether that is true depends on what the Library does
|
||||||
|
and what the program that uses the Library does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Library's
|
||||||
|
complete source code as you receive it, in any medium, provided that
|
||||||
|
you conspicuously and appropriately publish on each copy an
|
||||||
|
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||||
|
all the notices that refer to this License and to the absence of any
|
||||||
|
warranty; and distribute a copy of this License along with the
|
||||||
|
Library.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy,
|
||||||
|
and you may at your option offer warranty protection in exchange for a
|
||||||
|
fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Library or any portion
|
||||||
|
of it, thus forming a work based on the Library, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The modified work must itself be a software library.
|
||||||
|
|
||||||
|
b) You must cause the files modified to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
c) You must cause the whole of the work to be licensed at no
|
||||||
|
charge to all third parties under the terms of this License.
|
||||||
|
|
||||||
|
d) If a facility in the modified Library refers to a function or a
|
||||||
|
table of data to be supplied by an application program that uses
|
||||||
|
the facility, other than as an argument passed when the facility
|
||||||
|
is invoked, then you must make a good faith effort to ensure that,
|
||||||
|
in the event an application does not supply such function or
|
||||||
|
table, the facility still operates, and performs whatever part of
|
||||||
|
its purpose remains meaningful.
|
||||||
|
|
||||||
|
(For example, a function in a library to compute square roots has
|
||||||
|
a purpose that is entirely well-defined independent of the
|
||||||
|
application. Therefore, Subsection 2d requires that any
|
||||||
|
application-supplied function or table used by this function must
|
||||||
|
be optional: if the application does not supply it, the square
|
||||||
|
root function must still compute square roots.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Library,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Library, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Library.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Library
|
||||||
|
with the Library (or with a work based on the Library) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||||
|
License instead of this License to a given copy of the Library. To do
|
||||||
|
this, you must alter all the notices that refer to this License, so
|
||||||
|
that they refer to the ordinary GNU General Public License, version 2,
|
||||||
|
instead of to this License. (If a newer version than version 2 of the
|
||||||
|
ordinary GNU General Public License has appeared, then you can specify
|
||||||
|
that version instead if you wish.) Do not make any other change in
|
||||||
|
these notices.
|
||||||
|
|
||||||
|
Once this change is made in a given copy, it is irreversible for
|
||||||
|
that copy, so the ordinary GNU General Public License applies to all
|
||||||
|
subsequent copies and derivative works made from that copy.
|
||||||
|
|
||||||
|
This option is useful when you wish to copy part of the code of
|
||||||
|
the Library into a program that is not a library.
|
||||||
|
|
||||||
|
4. You may copy and distribute the Library (or a portion or
|
||||||
|
derivative of it, under Section 2) in object code or executable form
|
||||||
|
under the terms of Sections 1 and 2 above provided that you accompany
|
||||||
|
it with the complete corresponding machine-readable source code, which
|
||||||
|
must be distributed under the terms of Sections 1 and 2 above on a
|
||||||
|
medium customarily used for software interchange.
|
||||||
|
|
||||||
|
If distribution of object code is made by offering access to copy
|
||||||
|
from a designated place, then offering equivalent access to copy the
|
||||||
|
source code from the same place satisfies the requirement to
|
||||||
|
distribute the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
5. A program that contains no derivative of any portion of the
|
||||||
|
Library, but is designed to work with the Library by being compiled or
|
||||||
|
linked with it, is called a "work that uses the Library". Such a
|
||||||
|
work, in isolation, is not a derivative work of the Library, and
|
||||||
|
therefore falls outside the scope of this License.
|
||||||
|
|
||||||
|
However, linking a "work that uses the Library" with the Library
|
||||||
|
creates an executable that is a derivative of the Library (because it
|
||||||
|
contains portions of the Library), rather than a "work that uses the
|
||||||
|
library". The executable is therefore covered by this License.
|
||||||
|
Section 6 states terms for distribution of such executables.
|
||||||
|
|
||||||
|
When a "work that uses the Library" uses material from a header file
|
||||||
|
that is part of the Library, the object code for the work may be a
|
||||||
|
derivative work of the Library even though the source code is not.
|
||||||
|
Whether this is true is especially significant if the work can be
|
||||||
|
linked without the Library, or if the work is itself a library. The
|
||||||
|
threshold for this to be true is not precisely defined by law.
|
||||||
|
|
||||||
|
If such an object file uses only numerical parameters, data
|
||||||
|
structure layouts and accessors, and small macros and small inline
|
||||||
|
functions (ten lines or less in length), then the use of the object
|
||||||
|
file is unrestricted, regardless of whether it is legally a derivative
|
||||||
|
work. (Executables containing this object code plus portions of the
|
||||||
|
Library will still fall under Section 6.)
|
||||||
|
|
||||||
|
Otherwise, if the work is a derivative of the Library, you may
|
||||||
|
distribute the object code for the work under the terms of Section 6.
|
||||||
|
Any executables containing that work also fall under Section 6,
|
||||||
|
whether or not they are linked directly with the Library itself.
|
||||||
|
|
||||||
|
6. As an exception to the Sections above, you may also combine or
|
||||||
|
link a "work that uses the Library" with the Library to produce a
|
||||||
|
work containing portions of the Library, and distribute that work
|
||||||
|
under terms of your choice, provided that the terms permit
|
||||||
|
modification of the work for the customer's own use and reverse
|
||||||
|
engineering for debugging such modifications.
|
||||||
|
|
||||||
|
You must give prominent notice with each copy of the work that the
|
||||||
|
Library is used in it and that the Library and its use are covered by
|
||||||
|
this License. You must supply a copy of this License. If the work
|
||||||
|
during execution displays copyright notices, you must include the
|
||||||
|
copyright notice for the Library among them, as well as a reference
|
||||||
|
directing the user to the copy of this License. Also, you must do one
|
||||||
|
of these things:
|
||||||
|
|
||||||
|
a) Accompany the work with the complete corresponding
|
||||||
|
machine-readable source code for the Library including whatever
|
||||||
|
changes were used in the work (which must be distributed under
|
||||||
|
Sections 1 and 2 above); and, if the work is an executable linked
|
||||||
|
with the Library, with the complete machine-readable "work that
|
||||||
|
uses the Library", as object code and/or source code, so that the
|
||||||
|
user can modify the Library and then relink to produce a modified
|
||||||
|
executable containing the modified Library. (It is understood
|
||||||
|
that the user who changes the contents of definitions files in the
|
||||||
|
Library will not necessarily be able to recompile the application
|
||||||
|
to use the modified definitions.)
|
||||||
|
|
||||||
|
b) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (1) uses at run time a
|
||||||
|
copy of the library already present on the user's computer system,
|
||||||
|
rather than copying library functions into the executable, and (2)
|
||||||
|
will operate properly with a modified version of the library, if
|
||||||
|
the user installs one, as long as the modified version is
|
||||||
|
interface-compatible with the version that the work was made with.
|
||||||
|
|
||||||
|
c) Accompany the work with a written offer, valid for at
|
||||||
|
least three years, to give the same user the materials
|
||||||
|
specified in Subsection 6a, above, for a charge no more
|
||||||
|
than the cost of performing this distribution.
|
||||||
|
|
||||||
|
d) If distribution of the work is made by offering access to copy
|
||||||
|
from a designated place, offer equivalent access to copy the above
|
||||||
|
specified materials from the same place.
|
||||||
|
|
||||||
|
e) Verify that the user has already received a copy of these
|
||||||
|
materials or that you have already sent this user a copy.
|
||||||
|
|
||||||
|
For an executable, the required form of the "work that uses the
|
||||||
|
Library" must include any data and utility programs needed for
|
||||||
|
reproducing the executable from it. However, as a special exception,
|
||||||
|
the materials to be distributed need not include anything that is
|
||||||
|
normally distributed (in either source or binary form) with the major
|
||||||
|
components (compiler, kernel, and so on) of the operating system on
|
||||||
|
which the executable runs, unless that component itself accompanies
|
||||||
|
the executable.
|
||||||
|
|
||||||
|
It may happen that this requirement contradicts the license
|
||||||
|
restrictions of other proprietary libraries that do not normally
|
||||||
|
accompany the operating system. Such a contradiction means you cannot
|
||||||
|
use both them and the Library together in an executable that you
|
||||||
|
distribute.
|
||||||
|
|
||||||
|
7. You may place library facilities that are a work based on the
|
||||||
|
Library side-by-side in a single library together with other library
|
||||||
|
facilities not covered by this License, and distribute such a combined
|
||||||
|
library, provided that the separate distribution of the work based on
|
||||||
|
the Library and of the other library facilities is otherwise
|
||||||
|
permitted, and provided that you do these two things:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work
|
||||||
|
based on the Library, uncombined with any other library
|
||||||
|
facilities. This must be distributed under the terms of the
|
||||||
|
Sections above.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library of the fact
|
||||||
|
that part of it is a work based on the Library, and explaining
|
||||||
|
where to find the accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
8. You may not copy, modify, sublicense, link with, or distribute
|
||||||
|
the Library except as expressly provided under this License. Any
|
||||||
|
attempt otherwise to copy, modify, sublicense, link with, or
|
||||||
|
distribute the Library is void, and will automatically terminate your
|
||||||
|
rights under this License. However, parties who have received copies,
|
||||||
|
or rights, from you under this License will not have their licenses
|
||||||
|
terminated so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
9. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Library or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Library (or any work based on the
|
||||||
|
Library), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Library or works based on it.
|
||||||
|
|
||||||
|
10. Each time you redistribute the Library (or any work based on the
|
||||||
|
Library), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute, link with or modify the Library
|
||||||
|
subject to these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties with
|
||||||
|
this License.
|
||||||
|
|
||||||
|
11. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Library at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Library by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Library.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply,
|
||||||
|
and the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
12. If the distribution and/or use of the Library is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Library under this License may add
|
||||||
|
an explicit geographical distribution limitation excluding those countries,
|
||||||
|
so that distribution is permitted only in or among countries not thus
|
||||||
|
excluded. In such case, this License incorporates the limitation as if
|
||||||
|
written in the body of this License.
|
||||||
|
|
||||||
|
13. The Free Software Foundation may publish revised and/or new
|
||||||
|
versions of the Lesser General Public License from time to time.
|
||||||
|
Such new versions will be similar in spirit to the present version,
|
||||||
|
but may differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Library
|
||||||
|
specifies a version number of this License which applies to it and
|
||||||
|
"any later version", you have the option of following the terms and
|
||||||
|
conditions either of that version or of any later version published by
|
||||||
|
the Free Software Foundation. If the Library does not specify a
|
||||||
|
license version number, you may choose any version ever published by
|
||||||
|
the Free Software Foundation.
|
||||||
|
|
||||||
|
14. If you wish to incorporate parts of the Library into other free
|
||||||
|
programs whose distribution conditions are incompatible with these,
|
||||||
|
write to the author to ask for permission. For software which is
|
||||||
|
copyrighted by the Free Software Foundation, write to the Free
|
||||||
|
Software Foundation; we sometimes make exceptions for this. Our
|
||||||
|
decision will be guided by the two goals of preserving the free status
|
||||||
|
of all derivatives of our free software and of promoting the sharing
|
||||||
|
and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||||
|
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||||
|
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||||
|
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||||
|
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||||
|
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||||
|
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||||
|
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||||
|
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||||
|
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||||
|
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||||
|
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||||
|
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGES.
|
||||||
|
|
@ -0,0 +1,228 @@
|
|||||||
|
/**
|
||||||
|
* @file ModbusRtu.h
|
||||||
|
* @version 1.21
|
||||||
|
* @date 2016.02.21
|
||||||
|
* @author Samuel Marco i Armengol
|
||||||
|
* @contact sammarcoarmengol@gmail.com
|
||||||
|
* @contribution Helium6072
|
||||||
|
* @contribution gabrielsan
|
||||||
|
*
|
||||||
|
* @description
|
||||||
|
* Arduino library for communicating with Modbus devices
|
||||||
|
* over RS232/USB/485 via RTU protocol.
|
||||||
|
*
|
||||||
|
* Further information:
|
||||||
|
* http://modbus.org/
|
||||||
|
* http://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf
|
||||||
|
*
|
||||||
|
* @license
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; version
|
||||||
|
* 2.1 of the License.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* @defgroup setup Modbus Object Instantiation/Initialization
|
||||||
|
* @defgroup loop Modbus Object Management
|
||||||
|
* @defgroup buffer Modbus Buffer Management
|
||||||
|
* @defgroup discrete Modbus Function Codes for Discrete Coils/Inputs
|
||||||
|
* @defgroup register Modbus Function Codes for Holding/Input Registers
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MODBUS_RTU_H
|
||||||
|
#define MODBUS_RTU_H
|
||||||
|
|
||||||
|
#include <inttypes.h>
|
||||||
|
#include "Arduino.h"
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @struct modbus_t
|
||||||
|
* @brief
|
||||||
|
* Master query structure:
|
||||||
|
* This includes all the necessary fields to make the Master generate a Modbus query.
|
||||||
|
* A Master may keep several of these structures and send them cyclically or
|
||||||
|
* use them according to program needs.
|
||||||
|
*/
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t u8id; /*!< Slave address between 1 and 247. 0 means broadcast */
|
||||||
|
uint8_t u8fct; /*!< Function code: 1, 2, 3, 4, 5, 6, 15 or 16 */
|
||||||
|
uint16_t u16RegAdd; /*!< Address of the first register to access at slave/s */
|
||||||
|
uint16_t u16CoilsNo; /*!< Number of coils or registers to access */
|
||||||
|
uint16_t *au16reg; /*!< Pointer to memory image in master */
|
||||||
|
}
|
||||||
|
modbus_t;
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
RESPONSE_SIZE = 6,
|
||||||
|
EXCEPTION_SIZE = 3,
|
||||||
|
CHECKSUM_SIZE = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @enum MESSAGE
|
||||||
|
* @brief
|
||||||
|
* Indexes to telegram frame positions
|
||||||
|
*/
|
||||||
|
enum MESSAGE
|
||||||
|
{
|
||||||
|
ID = 0, //!< ID field
|
||||||
|
FUNC, //!< Function code position
|
||||||
|
ADD_HI, //!< Address high byte
|
||||||
|
ADD_LO, //!< Address low byte
|
||||||
|
NB_HI, //!< Number of coils or registers high byte
|
||||||
|
NB_LO, //!< Number of coils or registers low byte
|
||||||
|
BYTE_CNT //!< byte counter
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @enum MB_FC
|
||||||
|
* @brief
|
||||||
|
* Modbus function codes summary.
|
||||||
|
* These are the implement function codes either for Master or for Slave.
|
||||||
|
*
|
||||||
|
* @see also fctsupported
|
||||||
|
* @see also modbus_t
|
||||||
|
*/
|
||||||
|
enum MB_FC
|
||||||
|
{
|
||||||
|
MB_FC_NONE = 0, /*!< null operator */
|
||||||
|
MB_FC_READ_COILS = 1, /*!< FCT=1 -> read coils or digital outputs */
|
||||||
|
MB_FC_READ_DISCRETE_INPUT = 2, /*!< FCT=2 -> read digital inputs */
|
||||||
|
MB_FC_READ_REGISTERS = 3, /*!< FCT=3 -> read registers or analog outputs */
|
||||||
|
MB_FC_READ_INPUT_REGISTER = 4, /*!< FCT=4 -> read analog inputs */
|
||||||
|
MB_FC_WRITE_COIL = 5, /*!< FCT=5 -> write single coil or output */
|
||||||
|
MB_FC_WRITE_REGISTER = 6, /*!< FCT=6 -> write single register */
|
||||||
|
MB_FC_WRITE_MULTIPLE_COILS = 15, /*!< FCT=15 -> write multiple coils or outputs */
|
||||||
|
MB_FC_WRITE_MULTIPLE_REGISTERS = 16 /*!< FCT=16 -> write multiple registers */
|
||||||
|
};
|
||||||
|
|
||||||
|
enum COM_STATES
|
||||||
|
{
|
||||||
|
COM_IDLE = 0,
|
||||||
|
COM_WAITING = 1
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ERR_LIST
|
||||||
|
{
|
||||||
|
ERR_NOT_MASTER = -1,
|
||||||
|
ERR_POLLING = -2,
|
||||||
|
ERR_BUFF_OVERFLOW = -3,
|
||||||
|
ERR_BAD_CRC = -4,
|
||||||
|
ERR_EXCEPTION = -5
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
NO_REPLY = 255,
|
||||||
|
EXC_FUNC_CODE = 1,
|
||||||
|
EXC_ADDR_RANGE = 2,
|
||||||
|
EXC_REGS_QUANT = 3,
|
||||||
|
EXC_EXECUTE = 4
|
||||||
|
};
|
||||||
|
|
||||||
|
const unsigned char fctsupported[] =
|
||||||
|
{
|
||||||
|
MB_FC_READ_COILS,
|
||||||
|
MB_FC_READ_DISCRETE_INPUT,
|
||||||
|
MB_FC_READ_REGISTERS,
|
||||||
|
MB_FC_READ_INPUT_REGISTER,
|
||||||
|
MB_FC_WRITE_COIL,
|
||||||
|
MB_FC_WRITE_REGISTER,
|
||||||
|
MB_FC_WRITE_MULTIPLE_COILS,
|
||||||
|
MB_FC_WRITE_MULTIPLE_REGISTERS
|
||||||
|
};
|
||||||
|
|
||||||
|
#define T35 5
|
||||||
|
#define MAX_BUFFER 64 //!< maximum size for the communication buffer in bytes
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @class Modbus
|
||||||
|
* @brief
|
||||||
|
* Arduino class library for communicating with Modbus devices over
|
||||||
|
* USB/RS232/485 (via RTU protocol).
|
||||||
|
*/
|
||||||
|
class Modbus
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
Stream *port; //!< Pointer to Stream class object (Either HardwareSerial or SoftwareSerial)
|
||||||
|
uint8_t u8id; //!< 0=master, 1..247=slave number
|
||||||
|
uint8_t u8txenpin; //!< flow control pin: 0=USB or RS-232 mode, >1=RS-485 mode
|
||||||
|
uint8_t u8state;
|
||||||
|
uint8_t u8lastError;
|
||||||
|
uint8_t au8Buffer[MAX_BUFFER];
|
||||||
|
uint8_t u8BufferSize;
|
||||||
|
uint8_t u8lastRec;
|
||||||
|
uint16_t *au16regs;
|
||||||
|
uint16_t u16InCnt, u16OutCnt, u16errCnt;
|
||||||
|
uint16_t u16timeOut;
|
||||||
|
uint32_t u32time, u32timeOut, u32overTime;
|
||||||
|
uint8_t u8regsize;
|
||||||
|
|
||||||
|
void sendTxBuffer();
|
||||||
|
int8_t getRxBuffer();
|
||||||
|
uint16_t calcCRC(uint8_t u8length);
|
||||||
|
uint8_t validateAnswer();
|
||||||
|
uint8_t validateRequest();
|
||||||
|
void get_FC1();
|
||||||
|
void get_FC3();
|
||||||
|
int8_t process_FC1( uint16_t *regs, uint8_t u8size );
|
||||||
|
int8_t process_FC3( uint16_t *regs, uint8_t u8size );
|
||||||
|
int8_t process_FC5( uint16_t *regs, uint8_t u8size );
|
||||||
|
int8_t process_FC6( uint16_t *regs, uint8_t u8size );
|
||||||
|
int8_t process_FC15( uint16_t *regs, uint8_t u8size );
|
||||||
|
int8_t process_FC16( uint16_t *regs, uint8_t u8size );
|
||||||
|
void buildException( uint8_t u8exception ); // build exception message
|
||||||
|
|
||||||
|
public:
|
||||||
|
Modbus(uint8_t u8id, Stream& port, uint8_t u8txenpin =0);
|
||||||
|
|
||||||
|
void start();
|
||||||
|
void setTimeOut( uint16_t u16timeOut); //!<write communication watch-dog timer
|
||||||
|
uint16_t getTimeOut(); //!<get communication watch-dog timer value
|
||||||
|
boolean getTimeOutState(); //!<get communication watch-dog timer state
|
||||||
|
int8_t query( modbus_t telegram ); //!<only for master
|
||||||
|
int8_t poll(); //!<cyclic poll for master
|
||||||
|
int8_t poll( uint16_t *regs, uint8_t u8size ); //!<cyclic poll for slave
|
||||||
|
uint16_t getInCnt(); //!<number of incoming messages
|
||||||
|
uint16_t getOutCnt(); //!<number of outcoming messages
|
||||||
|
uint16_t getErrCnt(); //!<error counter
|
||||||
|
uint8_t getID(); //!<get slave ID between 1 and 247
|
||||||
|
uint8_t getState();
|
||||||
|
uint8_t getLastError(); //!<get last error message
|
||||||
|
void setID( uint8_t u8id ); //!<write new ID for the slave
|
||||||
|
void setTxendPinOverTime( uint32_t u32overTime );
|
||||||
|
void end(); //!<finish any communication and release serial communication port
|
||||||
|
|
||||||
|
//
|
||||||
|
// Deprecated functions
|
||||||
|
|
||||||
|
// Deprecated: Use constructor: "Modbus m(0,Serial,0)" instead.
|
||||||
|
Modbus(uint8_t u8id=0, uint8_t u8serno=0, uint8_t u8txenpin=0) __attribute__((deprecated));
|
||||||
|
|
||||||
|
// Deprecated: Use "start()" instead.
|
||||||
|
template<typename T_Stream>
|
||||||
|
void begin(T_Stream* port_, long u32speed_) __attribute__((deprecated));
|
||||||
|
|
||||||
|
// Deprecated: Use "start()" instead.
|
||||||
|
template<typename T_Stream>
|
||||||
|
void begin(T_Stream* port_, long u32speed_, uint8_t u8txenpin_) __attribute__((deprecated));
|
||||||
|
|
||||||
|
// Deprecated: Use "start()" instead.
|
||||||
|
void begin(long u32speed = 19200) __attribute__((deprecated));
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MODBUS_RTU_H
|
||||||
|
|
@ -0,0 +1,80 @@
|
|||||||
|
README.txt
|
||||||
|
|
||||||
|
libmodbus is a library that provides a Serial Modbus implementation for Arduino.
|
||||||
|
|
||||||
|
A primary goal was to enable industrial communication for the Arduino in order to link it to industrial devices such as HMIs, CNCs, PLCs, temperature regulators or speed drives.
|
||||||
|
|
||||||
|
now you can use software serial with the update from Helium6072!
|
||||||
|
|
||||||
|
LIBRARY CONTENTS
|
||||||
|
=================================================================
|
||||||
|
LICENSE.txt GNU Licence file
|
||||||
|
keywords.txt Arduino IDE colouring syntax
|
||||||
|
|
||||||
|
/documentation
|
||||||
|
Library documentation generated with Doxygen.
|
||||||
|
|
||||||
|
/examples
|
||||||
|
Sample sketches to implement miscellaneous settings:
|
||||||
|
|
||||||
|
/examples/advanced_slave Modbus slave node, which links Arduino pins to the Modbus port.
|
||||||
|
/examples/RS485_slave Modbus slave adapted to the RS485 port
|
||||||
|
/examples/simple_master Modbus master node with a single query
|
||||||
|
/examples/simple_slave Modbus slave node with a link array
|
||||||
|
/examples/software_serial_simple_master Modbus master node that works via software serial
|
||||||
|
|
||||||
|
INSTALLATION PROCEDURE
|
||||||
|
=================================================================
|
||||||
|
Refer to this documentation to Install this library:
|
||||||
|
|
||||||
|
http://arduino.cc/en/Guide/Libraries
|
||||||
|
|
||||||
|
Starting with version 1.0.5, you can install 3rd party libraries in the IDE.
|
||||||
|
|
||||||
|
Do not unzip the downloaded library, leave it as is.
|
||||||
|
|
||||||
|
In the Arduino IDE, navigate to Sketch > Import Library. At the top of the drop down list, select the option to "Add Library".
|
||||||
|
|
||||||
|
You will be prompted to select this zipped library.
|
||||||
|
|
||||||
|
Return to the Sketch > Import Library menu. You should now see the library at the bottom of the drop-down menu. It is ready to be used in your sketch.
|
||||||
|
|
||||||
|
The zip file will have been expanded in the libraries folder in your Arduino sketches directory.
|
||||||
|
|
||||||
|
NB : the library will be available to use in sketches, but examples for the library will not be exposed in the File > Examples until after the IDE has restarted.
|
||||||
|
|
||||||
|
|
||||||
|
KNOWN ISSUES
|
||||||
|
=================================================================
|
||||||
|
It is not compatible with ARDUINO LEONARDO and not tested under ARDUINO DUE and newer boards.
|
||||||
|
|
||||||
|
TODO List
|
||||||
|
=================================================================
|
||||||
|
Common to Master and Slave:
|
||||||
|
|
||||||
|
1) Implement other Serial settings: parity, stop bits, ...
|
||||||
|
|
||||||
|
2) End frame delay, also known as T35
|
||||||
|
|
||||||
|
3) Test it with several Arduino boards: UNO, Mega, etc..
|
||||||
|
|
||||||
|
4) Extend it to Leonardo
|
||||||
|
|
||||||
|
Master:
|
||||||
|
|
||||||
|
1) Function code 1 and 2 still not implemented
|
||||||
|
|
||||||
|
2) Function code 15 still not implement
|
||||||
|
|
||||||
|
3) Other codes under development
|
||||||
|
|
||||||
|
New features by Helium6072 29 July 2016
|
||||||
|
=================================================================
|
||||||
|
1) "port->flush();" changed into "while(port->read() >= 0);"
|
||||||
|
|
||||||
|
Since Serial.flush() (port->flush(); in ModbusRtu.h line 287, 337, & 827) no longer empties incoming buffer on 1.6 (Arduino.cc : flush() "Waits for the transmission of outgoing serial data to complete. Prior to Arduino 1.0, this instead removed any buffered incoming serial data.), use "while(port->read() >= 0);" instead.
|
||||||
|
|
||||||
|
2) software serial compatible
|
||||||
|
|
||||||
|
New constructor Modbus::Modbus(uint8_t u8id) and method void Modbus::begin(SoftwareSerial *sPort, long u32speed) that makes using software serial possible.
|
||||||
|
Check out sexample "software_serial_simple_master" and learn more!
|
1890
Версия_3.0/libraries/Modbus-Master-Slave-for-Arduino-master/config
Normal file
@ -0,0 +1,400 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: ModbusRtu.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Classes</a> |
|
||||||
|
<a href="#define-members">Macros</a> |
|
||||||
|
<a href="#enum-members">Enumerations</a> |
|
||||||
|
<a href="#var-members">Variables</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">ModbusRtu.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p><a href="_modbus_rtu_8h_source.html">Go to the source code of this file.</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Classes</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structmodbus__t.html">modbus_t</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Master query structure: This includes all the necessary fields to make the Master generate a <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> query. A Master may keep several of these structures and send them cyclically or use them according to program needs. <a href="structmodbus__t.html#details">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="class_modbus.html">Modbus</a></td></tr>
|
||||||
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Arduino class library for communicating with <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> devices over USB/RS232/485 (via RTU protocol). <a href="class_modbus.html#details">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||||
|
Macros</h2></td></tr>
|
||||||
|
<tr class="memitem:ac5a7c6ee8dea0ccb09dfc611bd08a0ac"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac">T35</a>   5</td></tr>
|
||||||
|
<tr class="separator:ac5a7c6ee8dea0ccb09dfc611bd08a0ac"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a1d5dab30b404fab91608086105afc78c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c">MAX_BUFFER</a>   64</td></tr>
|
||||||
|
<tr class="memdesc:a1d5dab30b404fab91608086105afc78c"><td class="mdescLeft"> </td><td class="mdescRight">maximum size for the communication buffer in bytes <a href="#a1d5dab30b404fab91608086105afc78c">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:a1d5dab30b404fab91608086105afc78c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
||||||
|
Enumerations</h2></td></tr>
|
||||||
|
<tr class="memitem:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b">RESPONSE_SIZE</a> = 6,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05">EXCEPTION_SIZE</a> = 3,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332">CHECKSUM_SIZE</a> = 2
|
||||||
|
}</td></tr>
|
||||||
|
<tr class="separator:a06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aa9996e8b4648c78acf6cde2401e230ba"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230ba">MESSAGE</a> { <br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68">ID</a> = 0,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af">FUNC</a>,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c">ADD_HI</a>,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c">ADD_LO</a>,
|
||||||
|
<br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6">NB_HI</a>,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f">NB_LO</a>,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892">BYTE_CNT</a>
|
||||||
|
<br/>
|
||||||
|
}</td></tr>
|
||||||
|
<tr class="memdesc:aa9996e8b4648c78acf6cde2401e230ba"><td class="mdescLeft"> </td><td class="mdescRight">Indexes to telegram frame positions. <a href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230ba">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:aa9996e8b4648c78acf6cde2401e230ba"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aff1341ea5077cc6097a0d7db89be4cf6"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6">MB_FC</a> { <br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9">MB_FC_NONE</a> = 0,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC_READ_COILS</a> = 1,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">MB_FC_READ_DISCRETE_INPUT</a> = 2,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">MB_FC_READ_REGISTERS</a> = 3,
|
||||||
|
<br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">MB_FC_READ_INPUT_REGISTER</a> = 4,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">MB_FC_WRITE_COIL</a> = 5,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">MB_FC_WRITE_REGISTER</a> = 6,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">MB_FC_WRITE_MULTIPLE_COILS</a> = 15,
|
||||||
|
<br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">MB_FC_WRITE_MULTIPLE_REGISTERS</a> = 16
|
||||||
|
<br/>
|
||||||
|
}</td></tr>
|
||||||
|
<tr class="memdesc:aff1341ea5077cc6097a0d7db89be4cf6"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> function codes summary. These are the implement function codes either for Master or for Slave. <a href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:aff1341ea5077cc6097a0d7db89be4cf6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a4f165b5bd333856a84635b2594013982"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982">COM_STATES</a> { <a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">COM_IDLE</a> = 0,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b">COM_WAITING</a> = 1
|
||||||
|
}</td></tr>
|
||||||
|
<tr class="separator:a4f165b5bd333856a84635b2594013982"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a792f00821300f1c7c768db990db646c1"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1">ERR_LIST</a> { <br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04">ERR_NOT_MASTER</a> = -1,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901">ERR_POLLING</a> = -2,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b">ERR_BUFF_OVERFLOW</a> = -3,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0">ERR_BAD_CRC</a> = -4,
|
||||||
|
<br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a">ERR_EXCEPTION</a> = -5
|
||||||
|
<br/>
|
||||||
|
}</td></tr>
|
||||||
|
<tr class="separator:a792f00821300f1c7c768db990db646c1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:adf764cbdea00d65edcd07bb9953ad2b7"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae">NO_REPLY</a> = 255,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2">EXC_FUNC_CODE</a> = 1,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280">EXC_ADDR_RANGE</a> = 2,
|
||||||
|
<a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920">EXC_REGS_QUANT</a> = 3,
|
||||||
|
<br/>
|
||||||
|
  <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89">EXC_EXECUTE</a> = 4
|
||||||
|
<br/>
|
||||||
|
}</td></tr>
|
||||||
|
<tr class="separator:adf764cbdea00d65edcd07bb9953ad2b7"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
|
||||||
|
Variables</h2></td></tr>
|
||||||
|
<tr class="memitem:aede21762dc4aa80a14df8dd40ef105f0"><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">fctsupported</a> []</td></tr>
|
||||||
|
<tr class="separator:aede21762dc4aa80a14df8dd40ef105f0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><dl class="section version"><dt>Version</dt><dd>1.2 </dd></dl>
|
||||||
|
<dl class="section date"><dt>Date</dt><dd>2014.09.09 </dd></dl>
|
||||||
|
<dl class="section author"><dt>Author</dt><dd>Samuel Marco i Armengol <a href="#" onclick="location.href='mai'+'lto:'+'sam'+'ma'+'rco'+'ar'+'men'+'go'+'l@g'+'ma'+'il.'+'co'+'m'; return false;">samma<span style="display: none;">.nosp@m.</span>rcoa<span style="display: none;">.nosp@m.</span>rmeng<span style="display: none;">.nosp@m.</span>ol@g<span style="display: none;">.nosp@m.</span>mail.<span style="display: none;">.nosp@m.</span>com</a> </dd></dl>
|
||||||
|
<p>Arduino library for communicating with <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> devices over RS232/USB/485 via RTU protocol.</p>
|
||||||
|
<p>Further information: <a href="http://modbus.org/">http://modbus.org/</a> <a href="http://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf">http://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf</a></p>
|
||||||
|
<p>This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; version 2.1 of the License.</p>
|
||||||
|
<p>This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</p>
|
||||||
|
<p>You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA </p>
|
||||||
|
|
||||||
|
<p>Definition in file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
||||||
|
<a class="anchor" id="a1d5dab30b404fab91608086105afc78c"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define MAX_BUFFER   64</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>maximum size for the communication buffer in bytes </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00133">133</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ac5a7c6ee8dea0ccb09dfc611bd08a0ac"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define T35   5</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00132">132</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
||||||
|
<a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55b"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">anonymous enum</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<table class="fieldtable">
|
||||||
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b"></a>RESPONSE_SIZE</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05"></a>EXCEPTION_SIZE</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332"></a>CHECKSUM_SIZE</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00057">57</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">anonymous enum</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<table class="fieldtable">
|
||||||
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae"></a>NO_REPLY</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2"></a>EXC_FUNC_CODE</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280"></a>EXC_ADDR_RANGE</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920"></a>EXC_REGS_QUANT</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89"></a>EXC_EXECUTE</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00113">113</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a4f165b5bd333856a84635b2594013982"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">enum <a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982">COM_STATES</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<table class="fieldtable">
|
||||||
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20"></a>COM_IDLE</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b"></a>COM_WAITING</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00099">99</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a792f00821300f1c7c768db990db646c1"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">enum <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1">ERR_LIST</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<table class="fieldtable">
|
||||||
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04"></a>ERR_NOT_MASTER</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901"></a>ERR_POLLING</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b"></a>ERR_BUFF_OVERFLOW</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0"></a>ERR_BAD_CRC</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a"></a>ERR_EXCEPTION</em> </td><td class="fielddoc">
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00105">105</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">enum <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6">MB_FC</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p><a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> function codes summary. These are the implement function codes either for Master or for Slave. </p>
|
||||||
|
<dl class="section see"><dt>See Also</dt><dd>also <a class="el" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">fctsupported</a> </dd>
|
||||||
|
<dd>
|
||||||
|
also <a class="el" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a> </dd></dl>
|
||||||
|
<table class="fieldtable">
|
||||||
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9"></a>MB_FC_NONE</em> </td><td class="fielddoc">
|
||||||
|
<p>null operator </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0"></a>MB_FC_READ_COILS</em> </td><td class="fielddoc">
|
||||||
|
<p>FCT=1 -> read coils or digital outputs </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e"></a>MB_FC_READ_DISCRETE_INPUT</em> </td><td class="fielddoc">
|
||||||
|
<p>FCT=2 -> read digital inputs </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f"></a>MB_FC_READ_REGISTERS</em> </td><td class="fielddoc">
|
||||||
|
<p>FCT=3 -> read registers or analog outputs </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07"></a>MB_FC_READ_INPUT_REGISTER</em> </td><td class="fielddoc">
|
||||||
|
<p>FCT=4 -> read analog inputs </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7"></a>MB_FC_WRITE_COIL</em> </td><td class="fielddoc">
|
||||||
|
<p>FCT=5 -> write single coil or output </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f"></a>MB_FC_WRITE_REGISTER</em> </td><td class="fielddoc">
|
||||||
|
<p>FCT=6 -> write single register </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304"></a>MB_FC_WRITE_MULTIPLE_COILS</em> </td><td class="fielddoc">
|
||||||
|
<p>FCT=15 -> write multiple coils or outputs </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb"></a>MB_FC_WRITE_MULTIPLE_REGISTERS</em> </td><td class="fielddoc">
|
||||||
|
<p>FCT=16 -> write multiple registers </p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00087">87</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="aa9996e8b4648c78acf6cde2401e230ba"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">enum <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230ba">MESSAGE</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Indexes to telegram frame positions. </p>
|
||||||
|
<table class="fieldtable">
|
||||||
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68"></a>ID</em> </td><td class="fielddoc">
|
||||||
|
<p>ID field. </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af"></a>FUNC</em> </td><td class="fielddoc">
|
||||||
|
<p>Function code position. </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c"></a>ADD_HI</em> </td><td class="fielddoc">
|
||||||
|
<p>Address high byte. </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c"></a>ADD_LO</em> </td><td class="fielddoc">
|
||||||
|
<p>Address low byte. </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6"></a>NB_HI</em> </td><td class="fielddoc">
|
||||||
|
<p>Number of coils or registers high byte. </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f"></a>NB_LO</em> </td><td class="fielddoc">
|
||||||
|
<p>Number of coils or registers low byte. </p>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td class="fieldname"><em><a class="anchor" id="aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892"></a>BYTE_CNT</em> </td><td class="fielddoc">
|
||||||
|
<p>byte counter </p>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00068">68</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Variable Documentation</h2>
|
||||||
|
<a class="anchor" id="aede21762dc4aa80a14df8dd40ef105f0"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">const unsigned char fctsupported[]</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<b>Initial value:</b><div class="fragment"><div class="line">= { </div>
|
||||||
|
<div class="line"> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC_READ_COILS</a>,</div>
|
||||||
|
<div class="line"> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">MB_FC_READ_DISCRETE_INPUT</a>,</div>
|
||||||
|
<div class="line"> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">MB_FC_READ_REGISTERS</a>, </div>
|
||||||
|
<div class="line"> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">MB_FC_READ_INPUT_REGISTER</a>,</div>
|
||||||
|
<div class="line"> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">MB_FC_WRITE_COIL</a>,</div>
|
||||||
|
<div class="line"> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">MB_FC_WRITE_REGISTER</a>, </div>
|
||||||
|
<div class="line"> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">MB_FC_WRITE_MULTIPLE_COILS</a>,</div>
|
||||||
|
<div class="line"> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">MB_FC_WRITE_MULTIPLE_REGISTERS</a></div>
|
||||||
|
<div class="line">}</div>
|
||||||
|
</div><!-- fragment -->
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00121">121</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,917 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: ModbusRtu.h Source File</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">ModbusRtu.h</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<a href="_modbus_rtu_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
|
||||||
|
<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="structmodbus__t.html"> 48</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
||||||
|
<div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c"> 49</a></span>  uint8_t <a class="code" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c">u8id</a>; </div>
|
||||||
|
<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc"> 50</a></span>  uint8_t <a class="code" href="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc">u8fct</a>; </div>
|
||||||
|
<div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c"> 51</a></span>  uint16_t <a class="code" href="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c">u16RegAdd</a>; </div>
|
||||||
|
<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43"> 52</a></span>  uint16_t <a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a>; </div>
|
||||||
|
<div class="line"><a name="l00053"></a><span class="lineno"><a class="code" href="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be"> 53</a></span>  uint16_t *<a class="code" href="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be">au16reg</a>; </div>
|
||||||
|
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> } </div>
|
||||||
|
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <a class="code" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a>;</div>
|
||||||
|
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div>
|
||||||
|
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">enum</span> { </div>
|
||||||
|
<div class="line"><a name="l00058"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b"> 58</a></span>  <a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b">RESPONSE_SIZE</a> = 6, </div>
|
||||||
|
<div class="line"><a name="l00059"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05"> 59</a></span>  <a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05">EXCEPTION_SIZE</a> = 3, </div>
|
||||||
|
<div class="line"><a name="l00060"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332"> 60</a></span>  <a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332">CHECKSUM_SIZE</a> = 2</div>
|
||||||
|
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div>
|
||||||
|
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div>
|
||||||
|
<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230ba"> 68</a></span> <span class="keyword">enum</span> <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230ba" title="Indexes to telegram frame positions. ">MESSAGE</a> {</div>
|
||||||
|
<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68"> 69</a></span>  <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68" title="ID field. ">ID</a> = 0, </div>
|
||||||
|
<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af"> 70</a></span>  <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a>, </div>
|
||||||
|
<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c"> 71</a></span>  <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a>, </div>
|
||||||
|
<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c"> 72</a></span>  <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a>, </div>
|
||||||
|
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6"> 73</a></span>  <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a>, </div>
|
||||||
|
<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f"> 74</a></span>  <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a>, </div>
|
||||||
|
<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892"> 75</a></span>  <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892" title="byte counter ">BYTE_CNT</a> </div>
|
||||||
|
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> };</div>
|
||||||
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div>
|
||||||
|
<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6"> 87</a></span> <span class="keyword">enum</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6" title="Modbus function codes summary. These are the implement function codes either for Master or for Slave...">MB_FC</a> {</div>
|
||||||
|
<div class="line"><a name="l00088"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9"> 88</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9">MB_FC_NONE</a> = 0, </div>
|
||||||
|
<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0"> 89</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC_READ_COILS</a> = 1, </div>
|
||||||
|
<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e"> 90</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">MB_FC_READ_DISCRETE_INPUT</a> = 2, </div>
|
||||||
|
<div class="line"><a name="l00091"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f"> 91</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">MB_FC_READ_REGISTERS</a> = 3, </div>
|
||||||
|
<div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07"> 92</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">MB_FC_READ_INPUT_REGISTER</a> = 4, </div>
|
||||||
|
<div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7"> 93</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">MB_FC_WRITE_COIL</a> = 5, </div>
|
||||||
|
<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f"> 94</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">MB_FC_WRITE_REGISTER</a> = 6, </div>
|
||||||
|
<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304"> 95</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">MB_FC_WRITE_MULTIPLE_COILS</a> = 15, </div>
|
||||||
|
<div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb"> 96</a></span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">MB_FC_WRITE_MULTIPLE_REGISTERS</a> = 16 </div>
|
||||||
|
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> };</div>
|
||||||
|
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
|
||||||
|
<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982"> 99</a></span> <span class="keyword">enum</span> <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982">COM_STATES</a> {</div>
|
||||||
|
<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20"> 100</a></span>  <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">COM_IDLE</a> = 0,</div>
|
||||||
|
<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b"> 101</a></span>  <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b">COM_WAITING</a> = 1</div>
|
||||||
|
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div>
|
||||||
|
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> };</div>
|
||||||
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div>
|
||||||
|
<div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1"> 105</a></span> <span class="keyword">enum</span> <a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1">ERR_LIST</a> {</div>
|
||||||
|
<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04"> 106</a></span>  <a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04">ERR_NOT_MASTER</a> = -1,</div>
|
||||||
|
<div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901"> 107</a></span>  <a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901">ERR_POLLING</a> = -2,</div>
|
||||||
|
<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b"> 108</a></span>  <a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b">ERR_BUFF_OVERFLOW</a> = -3,</div>
|
||||||
|
<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0"> 109</a></span>  <a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0">ERR_BAD_CRC</a> = -4,</div>
|
||||||
|
<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a"> 110</a></span>  <a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a">ERR_EXCEPTION</a> = -5</div>
|
||||||
|
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> };</div>
|
||||||
|
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div>
|
||||||
|
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">enum</span> { </div>
|
||||||
|
<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae"> 114</a></span>  <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae">NO_REPLY</a> = 255, </div>
|
||||||
|
<div class="line"><a name="l00115"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2"> 115</a></span>  <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2">EXC_FUNC_CODE</a> = 1,</div>
|
||||||
|
<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280"> 116</a></span>  <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280">EXC_ADDR_RANGE</a> = 2, </div>
|
||||||
|
<div class="line"><a name="l00117"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920"> 117</a></span>  <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920">EXC_REGS_QUANT</a> = 3, </div>
|
||||||
|
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89"> 118</a></span>  <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89">EXC_EXECUTE</a> = 4 </div>
|
||||||
|
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> };</div>
|
||||||
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div>
|
||||||
|
<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0"> 121</a></span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">fctsupported</a>[] = { </div>
|
||||||
|
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC_READ_COILS</a>,</div>
|
||||||
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">MB_FC_READ_DISCRETE_INPUT</a>,</div>
|
||||||
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">MB_FC_READ_REGISTERS</a>, </div>
|
||||||
|
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">MB_FC_READ_INPUT_REGISTER</a>,</div>
|
||||||
|
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">MB_FC_WRITE_COIL</a>,</div>
|
||||||
|
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">MB_FC_WRITE_REGISTER</a>, </div>
|
||||||
|
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">MB_FC_WRITE_MULTIPLE_COILS</a>,</div>
|
||||||
|
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">MB_FC_WRITE_MULTIPLE_REGISTERS</a></div>
|
||||||
|
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> };</div>
|
||||||
|
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div>
|
||||||
|
<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac"> 132</a></span> <span class="preprocessor">#define T35 5</span></div>
|
||||||
|
<div class="line"><a name="l00133"></a><span class="lineno"><a class="code" href="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c"> 133</a></span> <span class="preprocessor"></span><span class="preprocessor">#define MAX_BUFFER 64 </span></div>
|
||||||
|
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00141"></a><span class="lineno"><a class="code" href="class_modbus.html"> 141</a></span> <span class="keyword">class </span><a class="code" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> {</div>
|
||||||
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">private</span>:</div>
|
||||||
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  HardwareSerial *port; </div>
|
||||||
|
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  uint8_t u8id; </div>
|
||||||
|
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  uint8_t u8serno; </div>
|
||||||
|
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  uint8_t u8txenpin; </div>
|
||||||
|
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  uint8_t u8state;</div>
|
||||||
|
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  uint8_t u8lastError;</div>
|
||||||
|
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  uint8_t au8Buffer[<a class="code" href="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c" title="maximum size for the communication buffer in bytes ">MAX_BUFFER</a>];</div>
|
||||||
|
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  uint8_t u8BufferSize;</div>
|
||||||
|
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  uint8_t u8lastRec;</div>
|
||||||
|
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  uint16_t *au16regs;</div>
|
||||||
|
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  uint16_t u16InCnt, u16OutCnt, u16errCnt;</div>
|
||||||
|
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  uint16_t u16timeOut;</div>
|
||||||
|
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  uint32_t u32time, u32timeOut;</div>
|
||||||
|
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  uint8_t u8regsize;</div>
|
||||||
|
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div>
|
||||||
|
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordtype">void</span> init(uint8_t u8id, uint8_t u8serno, uint8_t u8txenpin);</div>
|
||||||
|
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">void</span> sendTxBuffer(); </div>
|
||||||
|
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  int8_t getRxBuffer(); </div>
|
||||||
|
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  uint16_t calcCRC(uint8_t u8length);</div>
|
||||||
|
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  uint8_t validateAnswer();</div>
|
||||||
|
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  uint8_t validateRequest(); </div>
|
||||||
|
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">void</span> get_FC1(); </div>
|
||||||
|
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordtype">void</span> get_FC3(); </div>
|
||||||
|
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  int8_t process_FC1( uint16_t *regs, uint8_t u8size ); </div>
|
||||||
|
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  int8_t process_FC3( uint16_t *regs, uint8_t u8size ); </div>
|
||||||
|
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  int8_t process_FC5( uint16_t *regs, uint8_t u8size ); </div>
|
||||||
|
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  int8_t process_FC6( uint16_t *regs, uint8_t u8size ); </div>
|
||||||
|
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  int8_t process_FC15( uint16_t *regs, uint8_t u8size ); </div>
|
||||||
|
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  int8_t process_FC16( uint16_t *regs, uint8_t u8size ); </div>
|
||||||
|
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">void</span> buildException( uint8_t u8exception ); <span class="comment">// build exception message</span></div>
|
||||||
|
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div>
|
||||||
|
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">public</span>:</div>
|
||||||
|
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4" title="Default Constructor for Master through Serial. ">Modbus</a>(); </div>
|
||||||
|
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4" title="Default Constructor for Master through Serial. ">Modbus</a>(uint8_t u8id, uint8_t u8serno); </div>
|
||||||
|
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4" title="Default Constructor for Master through Serial. ">Modbus</a>(uint8_t u8id, uint8_t u8serno, uint8_t u8txenpin);</div>
|
||||||
|
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtype">void</span> <a class="code" href="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099">begin</a>(<span class="keywordtype">long</span> u32speed);</div>
|
||||||
|
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">void</span> <a class="code" href="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099">begin</a>();</div>
|
||||||
|
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordtype">void</span> <a class="code" href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e" title="write communication watch-dog timer ">setTimeOut</a>( uint16_t u16timeout); </div>
|
||||||
|
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  uint16_t <a class="code" href="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1" title="get communication watch-dog timer value ">getTimeOut</a>(); </div>
|
||||||
|
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordtype">boolean</span> <a class="code" href="group__loop.html#gaf6dd413191ed8a833022046873e0a063" title="get communication watch-dog timer state ">getTimeOutState</a>(); </div>
|
||||||
|
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  int8_t <a class="code" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54" title="only for master ">query</a>( <a class="code" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a> telegram ); </div>
|
||||||
|
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  int8_t <a class="code" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d" title="cyclic poll for master ">poll</a>(); </div>
|
||||||
|
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  int8_t <a class="code" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d" title="cyclic poll for master ">poll</a>( uint16_t *regs, uint8_t u8size ); </div>
|
||||||
|
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  uint16_t <a class="code" href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a" title="number of incoming messages ">getInCnt</a>(); </div>
|
||||||
|
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  uint16_t <a class="code" href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0" title="number of outcoming messages ">getOutCnt</a>(); </div>
|
||||||
|
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  uint16_t <a class="code" href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0" title="error counter ">getErrCnt</a>(); </div>
|
||||||
|
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  uint8_t <a class="code" href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce" title="get slave ID between 1 and 247 ">getID</a>(); </div>
|
||||||
|
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  uint8_t <a class="code" href="group__buffer.html#ga2f39717d957a929af488c9120488fcdc">getState</a>();</div>
|
||||||
|
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  uint8_t <a class="code" href="group__buffer.html#gace7f726db13adc8feeceab987b719531" title="get last error message ">getLastError</a>(); </div>
|
||||||
|
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">void</span> <a class="code" href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0" title="write new ID for the slave ">setID</a>( uint8_t u8id ); </div>
|
||||||
|
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordtype">void</span> <a class="code" href="class_modbus.html#a0d80101b650344c712a085c4bb005c4c" title="finish any communication and release serial communication port ">end</a>(); </div>
|
||||||
|
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> };</div>
|
||||||
|
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div>
|
||||||
|
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">/* _____PUBLIC FUNCTIONS_____________________________________________________ */</span></div>
|
||||||
|
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div>
|
||||||
|
<div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4"> 204</a></span> <a class="code" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4" title="Default Constructor for Master through Serial. ">Modbus::Modbus</a>() {</div>
|
||||||
|
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  init(0, 0, 0);</div>
|
||||||
|
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div>
|
||||||
|
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div>
|
||||||
|
<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="class_modbus.html#afbbf7c81565d8e1ea1cd5890a96e7507"> 218</a></span> <a class="code" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4" title="Default Constructor for Master through Serial. ">Modbus::Modbus</a>(uint8_t u8id, uint8_t u8serno) {</div>
|
||||||
|
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  init(u8id, u8serno, 0);</div>
|
||||||
|
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> }</div>
|
||||||
|
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div>
|
||||||
|
<div class="line"><a name="l00234"></a><span class="lineno"><a class="code" href="class_modbus.html#a5e23a7b669d0c2d5be1c0054c7c54dca"> 234</a></span> <a class="code" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4" title="Default Constructor for Master through Serial. ">Modbus::Modbus</a>(uint8_t u8id, uint8_t u8serno, uint8_t u8txenpin) {</div>
|
||||||
|
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  init(u8id, u8serno, u8txenpin);</div>
|
||||||
|
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> }</div>
|
||||||
|
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div>
|
||||||
|
<div class="line"><a name="l00250"></a><span class="lineno"><a class="code" href="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0"> 250</a></span> <span class="keywordtype">void</span> <a class="code" href="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099">Modbus::begin</a>(<span class="keywordtype">long</span> u32speed) {</div>
|
||||||
|
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div>
|
||||||
|
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">switch</span>( u8serno ) {</div>
|
||||||
|
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor">#if defined(UBRR1H)</span></div>
|
||||||
|
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 1:</div>
|
||||||
|
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  port = &Serial1;</div>
|
||||||
|
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor">#if defined(UBRR2H)</span></div>
|
||||||
|
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 2:</div>
|
||||||
|
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  port = &Serial2;</div>
|
||||||
|
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor">#if defined(UBRR3H)</span></div>
|
||||||
|
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 3:</div>
|
||||||
|
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  port = &Serial3;</div>
|
||||||
|
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 0:</div>
|
||||||
|
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">default</span>:</div>
|
||||||
|
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  port = &Serial;</div>
|
||||||
|
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div>
|
||||||
|
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div>
|
||||||
|
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">// port->begin(u32speed, u8config);</span></div>
|
||||||
|
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  port->begin(u32speed);</div>
|
||||||
|
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">if</span> (u8txenpin > 1) { <span class="comment">// pin 0 & pin 1 are reserved for RX/TX</span></div>
|
||||||
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// return RS485 transceiver to transmit mode</span></div>
|
||||||
|
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  pinMode(u8txenpin, OUTPUT);</div>
|
||||||
|
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  digitalWrite(u8txenpin, LOW);</div>
|
||||||
|
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div>
|
||||||
|
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div>
|
||||||
|
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  port->flush();</div>
|
||||||
|
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  u8lastRec = u8BufferSize = 0;</div>
|
||||||
|
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  u16InCnt = u16OutCnt = u16errCnt = 0;</div>
|
||||||
|
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div>
|
||||||
|
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div>
|
||||||
|
<div class="line"><a name="l00299"></a><span class="lineno"><a class="code" href="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099"> 299</a></span> <span class="keywordtype">void</span> <a class="code" href="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099">Modbus::begin</a>() {</div>
|
||||||
|
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <a class="code" href="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099">begin</a>(19200);</div>
|
||||||
|
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> }</div>
|
||||||
|
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div>
|
||||||
|
<div class="line"><a name="l00310"></a><span class="lineno"><a class="code" href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0"> 310</a></span> <span class="keywordtype">void</span> <a class="code" href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0" title="write new ID for the slave ">Modbus::setID</a>( uint8_t u8id) {</div>
|
||||||
|
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">if</span> (( u8id != 0) && (u8id <= 247)) {</div>
|
||||||
|
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  this->u8id = u8id;</div>
|
||||||
|
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div>
|
||||||
|
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> }</div>
|
||||||
|
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div>
|
||||||
|
<div class="line"><a name="l00323"></a><span class="lineno"><a class="code" href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce"> 323</a></span> uint8_t <a class="code" href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce" title="get slave ID between 1 and 247 ">Modbus::getID</a>() {</div>
|
||||||
|
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">return</span> this->u8id;</div>
|
||||||
|
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> }</div>
|
||||||
|
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div>
|
||||||
|
<div class="line"><a name="l00338"></a><span class="lineno"><a class="code" href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e"> 338</a></span> <span class="keywordtype">void</span> <a class="code" href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e" title="write communication watch-dog timer ">Modbus::setTimeOut</a>( uint16_t u16timeOut) {</div>
|
||||||
|
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  this->u16timeOut = u16timeOut;</div>
|
||||||
|
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> }</div>
|
||||||
|
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div>
|
||||||
|
<div class="line"><a name="l00350"></a><span class="lineno"><a class="code" href="group__loop.html#gaf6dd413191ed8a833022046873e0a063"> 350</a></span> <span class="keywordtype">boolean</span> <a class="code" href="group__loop.html#gaf6dd413191ed8a833022046873e0a063" title="get communication watch-dog timer state ">Modbus::getTimeOutState</a>() {</div>
|
||||||
|
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">return</span> (millis() > u32timeOut);</div>
|
||||||
|
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> }</div>
|
||||||
|
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div>
|
||||||
|
<div class="line"><a name="l00362"></a><span class="lineno"><a class="code" href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a"> 362</a></span> uint16_t <a class="code" href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a" title="number of incoming messages ">Modbus::getInCnt</a>() { </div>
|
||||||
|
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">return</span> u16InCnt; </div>
|
||||||
|
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> }</div>
|
||||||
|
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div>
|
||||||
|
<div class="line"><a name="l00374"></a><span class="lineno"><a class="code" href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0"> 374</a></span> uint16_t <a class="code" href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0" title="number of outcoming messages ">Modbus::getOutCnt</a>() { </div>
|
||||||
|
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">return</span> u16OutCnt; </div>
|
||||||
|
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> }</div>
|
||||||
|
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div>
|
||||||
|
<div class="line"><a name="l00386"></a><span class="lineno"><a class="code" href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0"> 386</a></span> uint16_t <a class="code" href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0" title="error counter ">Modbus::getErrCnt</a>() { </div>
|
||||||
|
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">return</span> u16errCnt; </div>
|
||||||
|
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> }</div>
|
||||||
|
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div>
|
||||||
|
<div class="line"><a name="l00396"></a><span class="lineno"><a class="code" href="group__buffer.html#ga2f39717d957a929af488c9120488fcdc"> 396</a></span> uint8_t <a class="code" href="group__buffer.html#ga2f39717d957a929af488c9120488fcdc">Modbus::getState</a>() {</div>
|
||||||
|
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">return</span> u8state;</div>
|
||||||
|
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> }</div>
|
||||||
|
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div>
|
||||||
|
<div class="line"><a name="l00409"></a><span class="lineno"><a class="code" href="group__buffer.html#gace7f726db13adc8feeceab987b719531"> 409</a></span> uint8_t <a class="code" href="group__buffer.html#gace7f726db13adc8feeceab987b719531" title="get last error message ">Modbus::getLastError</a>() {</div>
|
||||||
|
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">return</span> u8lastError;</div>
|
||||||
|
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> }</div>
|
||||||
|
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div>
|
||||||
|
<div class="line"><a name="l00425"></a><span class="lineno"><a class="code" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54"> 425</a></span> int8_t <a class="code" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54" title="only for master ">Modbus::query</a>( <a class="code" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a> telegram ) {</div>
|
||||||
|
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  uint8_t u8regsno, u8bytesno;</div>
|
||||||
|
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">if</span> (u8id!=0) <span class="keywordflow">return</span> -2;</div>
|
||||||
|
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">if</span> (u8state != <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">COM_IDLE</a>) <span class="keywordflow">return</span> -1;</div>
|
||||||
|
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div>
|
||||||
|
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">if</span> ((telegram.<a class="code" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c">u8id</a>==0) || (telegram.<a class="code" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c">u8id</a>>247)) <span class="keywordflow">return</span> -3;</div>
|
||||||
|
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div>
|
||||||
|
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  au16regs = telegram.<a class="code" href="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be">au16reg</a>;</div>
|
||||||
|
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div>
|
||||||
|
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="comment">// telegram header</span></div>
|
||||||
|
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68" title="ID field. ">ID</a> ] = telegram.<a class="code" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c">u8id</a>;</div>
|
||||||
|
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a> ] = telegram.<a class="code" href="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc">u8fct</a>;</div>
|
||||||
|
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ] = highByte(telegram.<a class="code" href="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c">u16RegAdd</a> );</div>
|
||||||
|
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ] = lowByte( telegram.<a class="code" href="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c">u16RegAdd</a> );</div>
|
||||||
|
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div>
|
||||||
|
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keywordflow">switch</span>( telegram.<a class="code" href="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc">u8fct</a> ) {</div>
|
||||||
|
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC_READ_COILS</a>:</div>
|
||||||
|
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">MB_FC_READ_DISCRETE_INPUT</a>:</div>
|
||||||
|
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">MB_FC_READ_REGISTERS</a>:</div>
|
||||||
|
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">MB_FC_READ_INPUT_REGISTER</a>:</div>
|
||||||
|
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ] = highByte(telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> );</div>
|
||||||
|
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] = lowByte( telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> );</div>
|
||||||
|
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  u8BufferSize = 6;</div>
|
||||||
|
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">MB_FC_WRITE_COIL</a>:</div>
|
||||||
|
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ] = ((au16regs[0] > 0) ? 0xff : 0);</div>
|
||||||
|
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] = 0;</div>
|
||||||
|
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  u8BufferSize = 6; </div>
|
||||||
|
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">MB_FC_WRITE_REGISTER</a>:</div>
|
||||||
|
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ] = highByte(au16regs[0]);</div>
|
||||||
|
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] = lowByte(au16regs[0]);</div>
|
||||||
|
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  u8BufferSize = 6; </div>
|
||||||
|
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">MB_FC_WRITE_MULTIPLE_COILS</a>: <span class="comment">// TODO: implement "sending coils"</span></div>
|
||||||
|
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  u8regsno = telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> / 16;</div>
|
||||||
|
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  u8bytesno = u8regsno * 2;</div>
|
||||||
|
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">if</span> ((telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> % 16) != 0) {</div>
|
||||||
|
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  u8bytesno++;</div>
|
||||||
|
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  u8regsno++;</div>
|
||||||
|
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div>
|
||||||
|
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> </div>
|
||||||
|
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ] = highByte(telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> );</div>
|
||||||
|
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] = lowByte( telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> );</div>
|
||||||
|
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a>+1 ] = u8bytesno;</div>
|
||||||
|
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  u8BufferSize = 7;</div>
|
||||||
|
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> </div>
|
||||||
|
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  u8regsno = u8bytesno = 0; <span class="comment">// now auxiliary registers</span></div>
|
||||||
|
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">for</span> (uint16_t i = 0; i < telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a>; i++) {</div>
|
||||||
|
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div>
|
||||||
|
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div>
|
||||||
|
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  }</div>
|
||||||
|
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div>
|
||||||
|
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">MB_FC_WRITE_MULTIPLE_REGISTERS</a>:</div>
|
||||||
|
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ] = highByte(telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> );</div>
|
||||||
|
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] = lowByte( telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> );</div>
|
||||||
|
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a>+1 ] = (uint8_t) ( telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a> * 2 );</div>
|
||||||
|
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  u8BufferSize = 7; </div>
|
||||||
|
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div>
|
||||||
|
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">for</span> (uint16_t i=0; i< telegram.<a class="code" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a>; i++) {</div>
|
||||||
|
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  au8Buffer[ u8BufferSize ] = highByte( au16regs[ i ] );</div>
|
||||||
|
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  u8BufferSize++;</div>
|
||||||
|
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  au8Buffer[ u8BufferSize ] = lowByte( au16regs[ i ] );</div>
|
||||||
|
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  u8BufferSize++;</div>
|
||||||
|
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  }</div>
|
||||||
|
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div>
|
||||||
|
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div>
|
||||||
|
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  sendTxBuffer();</div>
|
||||||
|
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  u8state = <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b">COM_WAITING</a>;</div>
|
||||||
|
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> }</div>
|
||||||
|
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div>
|
||||||
|
<div class="line"><a name="l00513"></a><span class="lineno"><a class="code" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d"> 513</a></span> int8_t <a class="code" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d" title="cyclic poll for master ">Modbus::poll</a>() {</div>
|
||||||
|
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="comment">// check if there is any incoming frame</span></div>
|
||||||
|
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  uint8_t u8current = port->available(); </div>
|
||||||
|
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> </div>
|
||||||
|
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">if</span> (millis() > u32timeOut) {</div>
|
||||||
|
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  u8state = <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">COM_IDLE</a>;</div>
|
||||||
|
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  u8lastError = <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae">NO_REPLY</a>;</div>
|
||||||
|
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  u16errCnt++;</div>
|
||||||
|
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  }</div>
|
||||||
|
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div>
|
||||||
|
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">if</span> (u8current == 0) <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div>
|
||||||
|
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="comment">// check T35 after frame end or still no frame end</span></div>
|
||||||
|
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">if</span> (u8current != u8lastRec) {</div>
|
||||||
|
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  u8lastRec = u8current;</div>
|
||||||
|
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  u32time = millis() + <a class="code" href="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac">T35</a>;</div>
|
||||||
|
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div>
|
||||||
|
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordflow">if</span> (millis() < u32time) <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div>
|
||||||
|
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="comment">// transfer Serial buffer frame to auBuffer</span></div>
|
||||||
|
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  u8lastRec = 0;</div>
|
||||||
|
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  int8_t i8state = getRxBuffer();</div>
|
||||||
|
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">if</span> (i8state < 7) {</div>
|
||||||
|
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  u8state = <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">COM_IDLE</a>;</div>
|
||||||
|
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  u16errCnt++;</div>
|
||||||
|
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">return</span> i8state;</div>
|
||||||
|
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div>
|
||||||
|
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div>
|
||||||
|
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="comment">// validate message: id, CRC, FCT, exception</span></div>
|
||||||
|
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  uint8_t u8exception = validateAnswer(); </div>
|
||||||
|
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">if</span> (u8exception != 0) {</div>
|
||||||
|
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  u8state = <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">COM_IDLE</a>;</div>
|
||||||
|
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">return</span> u8exception;</div>
|
||||||
|
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div>
|
||||||
|
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div>
|
||||||
|
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="comment">// process answer</span></div>
|
||||||
|
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">switch</span>( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a> ] ) {</div>
|
||||||
|
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC_READ_COILS</a>:</div>
|
||||||
|
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">MB_FC_READ_DISCRETE_INPUT</a>:</div>
|
||||||
|
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="comment">// call get_FC1 to transfer the incoming message to au16regs buffer</span></div>
|
||||||
|
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  get_FC1( );</div>
|
||||||
|
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">MB_FC_READ_INPUT_REGISTER</a>:</div>
|
||||||
|
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">MB_FC_READ_REGISTERS</a> :</div>
|
||||||
|
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="comment">// call get_FC3 to transfer the incoming message to au16regs buffer</span></div>
|
||||||
|
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  get_FC3( );</div>
|
||||||
|
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">MB_FC_WRITE_COIL</a>:</div>
|
||||||
|
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">MB_FC_WRITE_REGISTER</a> :</div>
|
||||||
|
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">MB_FC_WRITE_MULTIPLE_COILS</a>:</div>
|
||||||
|
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">MB_FC_WRITE_MULTIPLE_REGISTERS</a> :</div>
|
||||||
|
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="comment">// nothing to do</span></div>
|
||||||
|
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">default</span>:</div>
|
||||||
|
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  } </div>
|
||||||
|
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  u8state = <a class="code" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">COM_IDLE</a>;</div>
|
||||||
|
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">return</span> u8BufferSize;</div>
|
||||||
|
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> }</div>
|
||||||
|
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div>
|
||||||
|
<div class="line"><a name="l00588"></a><span class="lineno"><a class="code" href="group__loop.html#gab3ef20562fc8cee14fc85f7e276890b5"> 588</a></span> int8_t <a class="code" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d" title="cyclic poll for master ">Modbus::poll</a>( uint16_t *regs, uint8_t u8size ) {</div>
|
||||||
|
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> </div>
|
||||||
|
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  au16regs = regs;</div>
|
||||||
|
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  u8regsize = u8size;</div>
|
||||||
|
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div>
|
||||||
|
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="comment">// check if there is any incoming frame</span></div>
|
||||||
|
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  uint8_t u8current = port->available(); </div>
|
||||||
|
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">if</span> (u8current == 0) <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> </div>
|
||||||
|
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="comment">// check T35 after frame end or still no frame end</span></div>
|
||||||
|
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">if</span> (u8current != u8lastRec) {</div>
|
||||||
|
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  u8lastRec = u8current;</div>
|
||||||
|
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  u32time = millis() + <a class="code" href="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac">T35</a>;</div>
|
||||||
|
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div>
|
||||||
|
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">if</span> (millis() < u32time) <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> </div>
|
||||||
|
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  u8lastRec = 0;</div>
|
||||||
|
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  int8_t i8state = getRxBuffer();</div>
|
||||||
|
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  u8lastError = i8state;</div>
|
||||||
|
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">if</span> (i8state < 7) <span class="keywordflow">return</span> i8state; </div>
|
||||||
|
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> </div>
|
||||||
|
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="comment">// check slave id</span></div>
|
||||||
|
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">if</span> (au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68" title="ID field. ">ID</a> ] != u8id) <span class="keywordflow">return</span> 0;</div>
|
||||||
|
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div>
|
||||||
|
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="comment">// validate message: CRC, FCT, address and size</span></div>
|
||||||
|
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  uint8_t u8exception = validateRequest();</div>
|
||||||
|
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordflow">if</span> (u8exception > 0) {</div>
|
||||||
|
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">if</span> (u8exception != <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae">NO_REPLY</a>) {</div>
|
||||||
|
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  buildException( u8exception );</div>
|
||||||
|
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  sendTxBuffer(); </div>
|
||||||
|
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  }</div>
|
||||||
|
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  u8lastError = u8exception;</div>
|
||||||
|
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keywordflow">return</span> u8exception;</div>
|
||||||
|
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div>
|
||||||
|
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div>
|
||||||
|
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  u32timeOut = millis() + long(u16timeOut);</div>
|
||||||
|
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  u8lastError = 0;</div>
|
||||||
|
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  </div>
|
||||||
|
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="comment">// process message</span></div>
|
||||||
|
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">switch</span>( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a> ] ) {</div>
|
||||||
|
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC_READ_COILS</a>:</div>
|
||||||
|
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">MB_FC_READ_DISCRETE_INPUT</a>:</div>
|
||||||
|
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">return</span> process_FC1( regs, u8size );</div>
|
||||||
|
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">MB_FC_READ_INPUT_REGISTER</a>:</div>
|
||||||
|
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">MB_FC_READ_REGISTERS</a> :</div>
|
||||||
|
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">return</span> process_FC3( regs, u8size );</div>
|
||||||
|
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">MB_FC_WRITE_COIL</a>:</div>
|
||||||
|
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordflow">return</span> process_FC5( regs, u8size );</div>
|
||||||
|
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">MB_FC_WRITE_REGISTER</a> :</div>
|
||||||
|
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">return</span> process_FC6( regs, u8size );</div>
|
||||||
|
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">MB_FC_WRITE_MULTIPLE_COILS</a>:</div>
|
||||||
|
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">return</span> process_FC15( regs, u8size );</div>
|
||||||
|
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">MB_FC_WRITE_MULTIPLE_REGISTERS</a> :</div>
|
||||||
|
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">return</span> process_FC16( regs, u8size );</div>
|
||||||
|
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keywordflow">default</span>:</div>
|
||||||
|
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div>
|
||||||
|
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">return</span> i8state;</div>
|
||||||
|
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> }</div>
|
||||||
|
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div>
|
||||||
|
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="comment">/* _____PRIVATE FUNCTIONS_____________________________________________________ */</span></div>
|
||||||
|
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div>
|
||||||
|
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="keywordtype">void</span> Modbus::init(uint8_t u8id, uint8_t u8serno, uint8_t u8txenpin) {</div>
|
||||||
|
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  this->u8id = u8id;</div>
|
||||||
|
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  this->u8serno = (u8serno > 3) ? 0 : u8serno;</div>
|
||||||
|
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  this->u8txenpin = u8txenpin;</div>
|
||||||
|
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  this->u16timeOut = 1000;</div>
|
||||||
|
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> }</div>
|
||||||
|
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div>
|
||||||
|
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> int8_t Modbus::getRxBuffer() {</div>
|
||||||
|
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordtype">boolean</span> bBuffOverflow = <span class="keyword">false</span>;</div>
|
||||||
|
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div>
|
||||||
|
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keywordflow">if</span> (u8txenpin > 1) digitalWrite( u8txenpin, LOW );</div>
|
||||||
|
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div>
|
||||||
|
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  u8BufferSize = 0;</div>
|
||||||
|
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">while</span> ( port->available() ) {</div>
|
||||||
|
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  au8Buffer[ u8BufferSize ] = port->read();</div>
|
||||||
|
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  u8BufferSize ++;</div>
|
||||||
|
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> </div>
|
||||||
|
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordflow">if</span> (u8BufferSize >= <a class="code" href="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c" title="maximum size for the communication buffer in bytes ">MAX_BUFFER</a>) bBuffOverflow = <span class="keyword">true</span>;</div>
|
||||||
|
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div>
|
||||||
|
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  u16InCnt++;</div>
|
||||||
|
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> </div>
|
||||||
|
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">if</span> (bBuffOverflow) {</div>
|
||||||
|
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  u16errCnt++;</div>
|
||||||
|
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b">ERR_BUFF_OVERFLOW</a>;</div>
|
||||||
|
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  }</div>
|
||||||
|
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keywordflow">return</span> u8BufferSize;</div>
|
||||||
|
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> }</div>
|
||||||
|
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> </div>
|
||||||
|
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="keywordtype">void</span> Modbus::sendTxBuffer() {</div>
|
||||||
|
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  uint8_t i = 0;</div>
|
||||||
|
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div>
|
||||||
|
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="comment">// append CRC to message</span></div>
|
||||||
|
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  uint16_t u16crc = calcCRC( u8BufferSize );</div>
|
||||||
|
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  au8Buffer[ u8BufferSize ] = u16crc >> 8;</div>
|
||||||
|
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  u8BufferSize++;</div>
|
||||||
|
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  au8Buffer[ u8BufferSize ] = u16crc & 0x00ff;</div>
|
||||||
|
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  u8BufferSize++;</div>
|
||||||
|
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> </div>
|
||||||
|
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="comment">// set RS485 transceiver to transmit mode</span></div>
|
||||||
|
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">if</span> (u8txenpin > 1) {</div>
|
||||||
|
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keywordflow">switch</span>( u8serno ) {</div>
|
||||||
|
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor">#if defined(UBRR1H)</span></div>
|
||||||
|
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 1:</div>
|
||||||
|
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  UCSR1A=UCSR1A |(1 << TXC1);</div>
|
||||||
|
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor">#if defined(UBRR2H)</span></div>
|
||||||
|
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 2:</div>
|
||||||
|
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  UCSR2A=UCSR2A |(1 << TXC2);</div>
|
||||||
|
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor">#if defined(UBRR3H)</span></div>
|
||||||
|
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 3:</div>
|
||||||
|
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  UCSR3A=UCSR3A |(1 << TXC3);</div>
|
||||||
|
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 0:</div>
|
||||||
|
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">default</span>:</div>
|
||||||
|
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  UCSR0A=UCSR0A |(1 << TXC0);</div>
|
||||||
|
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  }</div>
|
||||||
|
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  digitalWrite( u8txenpin, HIGH );</div>
|
||||||
|
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div>
|
||||||
|
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div>
|
||||||
|
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="comment">// transfer buffer to serial line</span></div>
|
||||||
|
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  port->write( au8Buffer, u8BufferSize );</div>
|
||||||
|
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> </div>
|
||||||
|
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="comment">// keep RS485 transceiver in transmit mode as long as sending</span></div>
|
||||||
|
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">if</span> (u8txenpin > 1) {</div>
|
||||||
|
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">switch</span>( u8serno ) {</div>
|
||||||
|
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> <span class="preprocessor">#if defined(UBRR1H)</span></div>
|
||||||
|
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 1:</div>
|
||||||
|
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordflow">while</span> (!(UCSR1A & (1 << TXC1)));</div>
|
||||||
|
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="preprocessor">#if defined(UBRR2H)</span></div>
|
||||||
|
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 2:</div>
|
||||||
|
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">while</span> (!(UCSR2A & (1 << TXC2)));</div>
|
||||||
|
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="preprocessor"></span></div>
|
||||||
|
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor">#if defined(UBRR3H)</span></div>
|
||||||
|
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 3:</div>
|
||||||
|
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">while</span> (!(UCSR3A & (1 << TXC3)));</div>
|
||||||
|
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="preprocessor">#endif</span></div>
|
||||||
|
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="preprocessor"></span> <span class="keywordflow">case</span> 0:</div>
|
||||||
|
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">default</span>:</div>
|
||||||
|
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">while</span> (!(UCSR0A & (1 << TXC0)));</div>
|
||||||
|
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div>
|
||||||
|
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> </div>
|
||||||
|
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="comment">// return RS485 transceiver to receive mode</span></div>
|
||||||
|
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  digitalWrite( u8txenpin, LOW );</div>
|
||||||
|
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  }</div>
|
||||||
|
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  port->flush();</div>
|
||||||
|
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  u8BufferSize = 0;</div>
|
||||||
|
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> </div>
|
||||||
|
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="comment">// set time-out for master</span></div>
|
||||||
|
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  u32timeOut = millis() + (<span class="keywordtype">unsigned</span> long) u16timeOut;</div>
|
||||||
|
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> </div>
|
||||||
|
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="comment">// increase message counter</span></div>
|
||||||
|
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  u16OutCnt++;</div>
|
||||||
|
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> }</div>
|
||||||
|
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> </div>
|
||||||
|
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> uint16_t Modbus::calcCRC(uint8_t u8length) {</div>
|
||||||
|
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> temp, temp2, flag;</div>
|
||||||
|
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  temp = 0xFFFF;</div>
|
||||||
|
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> i = 0; i < u8length; i++) {</div>
|
||||||
|
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  temp = temp ^ au8Buffer[i];</div>
|
||||||
|
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> j = 1; j <= 8; j++) {</div>
|
||||||
|
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  flag = temp & 0x0001;</div>
|
||||||
|
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  temp >>=1;</div>
|
||||||
|
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">if</span> (flag)</div>
|
||||||
|
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  temp ^= 0xA001;</div>
|
||||||
|
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  }</div>
|
||||||
|
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  }</div>
|
||||||
|
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="comment">// Reverse byte order. </span></div>
|
||||||
|
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  temp2 = temp >> 8;</div>
|
||||||
|
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  temp = (temp << 8) | temp2;</div>
|
||||||
|
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  temp &= 0xFFFF; </div>
|
||||||
|
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="comment">// the returned value is already swapped</span></div>
|
||||||
|
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="comment">// crcLo byte is first & crcHi byte is last</span></div>
|
||||||
|
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">return</span> temp; </div>
|
||||||
|
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> }</div>
|
||||||
|
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> </div>
|
||||||
|
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> uint8_t Modbus::validateRequest() {</div>
|
||||||
|
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="comment">// check message crc vs calculated crc</span></div>
|
||||||
|
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  uint16_t u16MsgCRC = </div>
|
||||||
|
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  ((au8Buffer[u8BufferSize - 2] << 8) </div>
|
||||||
|
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  | au8Buffer[u8BufferSize - 1]); <span class="comment">// combine the crc Low & High bytes</span></div>
|
||||||
|
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">if</span> ( calcCRC( u8BufferSize-2 ) != u16MsgCRC ) {</div>
|
||||||
|
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  u16errCnt ++;</div>
|
||||||
|
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae">NO_REPLY</a>;</div>
|
||||||
|
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  }</div>
|
||||||
|
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> </div>
|
||||||
|
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="comment">// check fct code</span></div>
|
||||||
|
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordtype">boolean</span> isSupported = <span class="keyword">false</span>;</div>
|
||||||
|
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i< <span class="keyword">sizeof</span>( <a class="code" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">fctsupported</a> ); i++) {</div>
|
||||||
|
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">if</span> (<a class="code" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">fctsupported</a>[i] == au8Buffer[<a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a>]) {</div>
|
||||||
|
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  isSupported = 1;</div>
|
||||||
|
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  }</div>
|
||||||
|
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div>
|
||||||
|
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">if</span> (!isSupported) {</div>
|
||||||
|
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  u16errCnt ++;</div>
|
||||||
|
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2">EXC_FUNC_CODE</a>;</div>
|
||||||
|
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div>
|
||||||
|
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> </div>
|
||||||
|
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="comment">// check start address & nb range</span></div>
|
||||||
|
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  uint16_t u16regs = 0;</div>
|
||||||
|
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  uint8_t u8regs;</div>
|
||||||
|
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">switch</span> ( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a> ] ) {</div>
|
||||||
|
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">MB_FC_READ_COILS</a>:</div>
|
||||||
|
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">MB_FC_READ_DISCRETE_INPUT</a>:</div>
|
||||||
|
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">MB_FC_WRITE_MULTIPLE_COILS</a>:</div>
|
||||||
|
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  u16regs = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ]) / 16;</div>
|
||||||
|
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  u16regs += word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ]) /16;</div>
|
||||||
|
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  u8regs = (uint8_t) u16regs;</div>
|
||||||
|
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">if</span> (u8regs > u8regsize) <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280">EXC_ADDR_RANGE</a>;</div>
|
||||||
|
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">MB_FC_WRITE_COIL</a>:</div>
|
||||||
|
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  u16regs = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ]) / 16;</div>
|
||||||
|
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  u8regs = (uint8_t) u16regs;</div>
|
||||||
|
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">if</span> (u8regs > u8regsize) <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280">EXC_ADDR_RANGE</a>;</div>
|
||||||
|
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <span class="keywordflow">break</span>; </div>
|
||||||
|
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">MB_FC_WRITE_REGISTER</a> :</div>
|
||||||
|
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  u16regs = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ]);</div>
|
||||||
|
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  u8regs = (uint8_t) u16regs;</div>
|
||||||
|
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">if</span> (u8regs > u8regsize) <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280">EXC_ADDR_RANGE</a>;</div>
|
||||||
|
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">MB_FC_READ_REGISTERS</a> :</div>
|
||||||
|
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">MB_FC_READ_INPUT_REGISTER</a> :</div>
|
||||||
|
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keywordflow">case</span> <a class="code" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">MB_FC_WRITE_MULTIPLE_REGISTERS</a> :</div>
|
||||||
|
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  u16regs = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ]);</div>
|
||||||
|
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  u16regs += word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ]);</div>
|
||||||
|
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  u8regs = (uint8_t) u16regs;</div>
|
||||||
|
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keywordflow">if</span> (u8regs > u8regsize) <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280">EXC_ADDR_RANGE</a>; </div>
|
||||||
|
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  }</div>
|
||||||
|
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keywordflow">return</span> 0; <span class="comment">// OK, no exception code thrown</span></div>
|
||||||
|
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> }</div>
|
||||||
|
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> </div>
|
||||||
|
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> uint8_t Modbus::validateAnswer() {</div>
|
||||||
|
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="comment">// check message crc vs calculated crc</span></div>
|
||||||
|
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  uint16_t u16MsgCRC = </div>
|
||||||
|
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  ((au8Buffer[u8BufferSize - 2] << 8) </div>
|
||||||
|
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  | au8Buffer[u8BufferSize - 1]); <span class="comment">// combine the crc Low & High bytes</span></div>
|
||||||
|
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="keywordflow">if</span> ( calcCRC( u8BufferSize-2 ) != u16MsgCRC ) {</div>
|
||||||
|
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  u16errCnt ++;</div>
|
||||||
|
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae">NO_REPLY</a>;</div>
|
||||||
|
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  }</div>
|
||||||
|
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> </div>
|
||||||
|
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="comment">// check exception</span></div>
|
||||||
|
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keywordflow">if</span> ((au8Buffer[ FUNC ] & 0x80) != 0) {</div>
|
||||||
|
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  u16errCnt ++;</div>
|
||||||
|
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a">ERR_EXCEPTION</a>;</div>
|
||||||
|
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  }</div>
|
||||||
|
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> </div>
|
||||||
|
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <span class="comment">// check fct code</span></div>
|
||||||
|
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  <span class="keywordtype">boolean</span> isSupported = <span class="keyword">false</span>;</div>
|
||||||
|
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="keywordflow">for</span> (uint8_t i = 0; i< <span class="keyword">sizeof</span>( <a class="code" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">fctsupported</a> ); i++) {</div>
|
||||||
|
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="keywordflow">if</span> (<a class="code" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">fctsupported</a>[i] == au8Buffer[FUNC]) {</div>
|
||||||
|
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  isSupported = 1;</div>
|
||||||
|
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">break</span>;</div>
|
||||||
|
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  }</div>
|
||||||
|
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  }</div>
|
||||||
|
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <span class="keywordflow">if</span> (!isSupported) {</div>
|
||||||
|
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  u16errCnt ++;</div>
|
||||||
|
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">return</span> <a class="code" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2">EXC_FUNC_CODE</a>;</div>
|
||||||
|
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  }</div>
|
||||||
|
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> </div>
|
||||||
|
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="keywordflow">return</span> 0; <span class="comment">// OK, no exception code thrown</span></div>
|
||||||
|
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> }</div>
|
||||||
|
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> </div>
|
||||||
|
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <span class="keywordtype">void</span> Modbus::buildException( uint8_t u8exception ) {</div>
|
||||||
|
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  uint8_t u8func = au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a> ]; <span class="comment">// get the original FUNC code</span></div>
|
||||||
|
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> </div>
|
||||||
|
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68" title="ID field. ">ID</a> ] = u8id;</div>
|
||||||
|
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a> ] = u8func + 0x80;</div>
|
||||||
|
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  au8Buffer[ 2 ] = u8exception;</div>
|
||||||
|
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  u8BufferSize = <a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05">EXCEPTION_SIZE</a>;</div>
|
||||||
|
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> }</div>
|
||||||
|
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> </div>
|
||||||
|
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="keywordtype">void</span> Modbus::get_FC1() {</div>
|
||||||
|
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  uint8_t u8byte, i;</div>
|
||||||
|
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  u8byte = 0;</div>
|
||||||
|
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> </div>
|
||||||
|
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <span class="comment">// for (i=0; i< au8Buffer[ 2 ] /2; i++) {</span></div>
|
||||||
|
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="comment">// au16regs[ i ] = word( </span></div>
|
||||||
|
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="comment">// au8Buffer[ u8byte ],</span></div>
|
||||||
|
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="comment">// au8Buffer[ u8byte +1 ]);</span></div>
|
||||||
|
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="comment">// u8byte += 2;</span></div>
|
||||||
|
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <span class="comment">// }</span></div>
|
||||||
|
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> }</div>
|
||||||
|
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> </div>
|
||||||
|
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="keywordtype">void</span> Modbus::get_FC3() {</div>
|
||||||
|
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  uint8_t u8byte, i;</div>
|
||||||
|
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  u8byte = 3;</div>
|
||||||
|
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> </div>
|
||||||
|
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="keywordflow">for</span> (i=0; i< au8Buffer[ 2 ] /2; i++) {</div>
|
||||||
|
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  au16regs[ i ] = word( </div>
|
||||||
|
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  au8Buffer[ u8byte ],</div>
|
||||||
|
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  au8Buffer[ u8byte +1 ]);</div>
|
||||||
|
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  u8byte += 2;</div>
|
||||||
|
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  }</div>
|
||||||
|
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> }</div>
|
||||||
|
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> </div>
|
||||||
|
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> int8_t Modbus::process_FC1( uint16_t *regs, uint8_t u8size ) {</div>
|
||||||
|
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  uint8_t u8currentRegister, u8currentBit, u8bytesno, u8bitsno;</div>
|
||||||
|
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  uint8_t u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  uint16_t u16currentCoil, u16coil;</div>
|
||||||
|
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> </div>
|
||||||
|
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="comment">// get the first and last coil from the message</span></div>
|
||||||
|
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  uint16_t u16StartCoil = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  uint16_t u16Coilno = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> </div>
|
||||||
|
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="comment">// put the number of bytes in the outcoming message</span></div>
|
||||||
|
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  u8bytesno = (uint8_t) (u16Coilno / 8);</div>
|
||||||
|
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <span class="keywordflow">if</span> (u16Coilno % 8 != 0) u8bytesno ++;</div>
|
||||||
|
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ] = u8bytesno;</div>
|
||||||
|
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  u8BufferSize = <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a>;</div>
|
||||||
|
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> </div>
|
||||||
|
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="comment">// read each coil from the register map and put its value inside the outcoming message</span></div>
|
||||||
|
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  u8bitsno = 0;</div>
|
||||||
|
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> </div>
|
||||||
|
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">for</span> (u16currentCoil = 0; u16currentCoil < u16Coilno; u16currentCoil++) {</div>
|
||||||
|
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  u16coil = u16StartCoil + u16currentCoil;</div>
|
||||||
|
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  u8currentRegister = (uint8_t) (u16coil / 16);</div>
|
||||||
|
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  u8currentBit = (uint8_t) (u16coil % 16);</div>
|
||||||
|
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> </div>
|
||||||
|
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  bitWrite(</div>
|
||||||
|
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  au8Buffer[ u8BufferSize ],</div>
|
||||||
|
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  u8bitsno,</div>
|
||||||
|
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  bitRead( regs[ u8currentRegister ], u8currentBit ) );</div>
|
||||||
|
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  u8bitsno ++;</div>
|
||||||
|
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> </div>
|
||||||
|
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keywordflow">if</span> (u8bitsno > 7) {</div>
|
||||||
|
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  u8bitsno = 0;</div>
|
||||||
|
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  u8BufferSize++;</div>
|
||||||
|
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  }</div>
|
||||||
|
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  }</div>
|
||||||
|
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> </div>
|
||||||
|
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <span class="comment">// send outcoming message</span></div>
|
||||||
|
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <span class="keywordflow">if</span> (u16Coilno % 8 != 0) u8BufferSize ++;</div>
|
||||||
|
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  u8CopyBufferSize = u8BufferSize +2;</div>
|
||||||
|
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  sendTxBuffer();</div>
|
||||||
|
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">return</span> u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> }</div>
|
||||||
|
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> </div>
|
||||||
|
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> int8_t Modbus::process_FC3( uint16_t *regs, uint8_t u8size ) {</div>
|
||||||
|
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> </div>
|
||||||
|
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  uint8_t u8StartAdd = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  uint8_t u8regsno = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  uint8_t u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  uint8_t i;</div>
|
||||||
|
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> </div>
|
||||||
|
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  au8Buffer[ 2 ] = u8regsno * 2;</div>
|
||||||
|
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  u8BufferSize = 3;</div>
|
||||||
|
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div>
|
||||||
|
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <span class="keywordflow">for</span> (i = u8StartAdd; i < u8StartAdd + u8regsno; i++) {</div>
|
||||||
|
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  au8Buffer[ u8BufferSize ] = highByte(regs[i]);</div>
|
||||||
|
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  u8BufferSize++;</div>
|
||||||
|
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  au8Buffer[ u8BufferSize ] = lowByte(regs[i]);</div>
|
||||||
|
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  u8BufferSize++;</div>
|
||||||
|
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  }</div>
|
||||||
|
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  u8CopyBufferSize = u8BufferSize +2;</div>
|
||||||
|
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  sendTxBuffer();</div>
|
||||||
|
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div>
|
||||||
|
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keywordflow">return</span> u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> }</div>
|
||||||
|
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div>
|
||||||
|
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> int8_t Modbus::process_FC5( uint16_t *regs, uint8_t u8size ) {</div>
|
||||||
|
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  uint8_t u8currentRegister, u8currentBit;</div>
|
||||||
|
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  uint8_t u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  uint16_t u16coil = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> </div>
|
||||||
|
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="comment">// point to the register and its bit</span></div>
|
||||||
|
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  u8currentRegister = (uint8_t) (u16coil / 16);</div>
|
||||||
|
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  u8currentBit = (uint8_t) (u16coil % 16);</div>
|
||||||
|
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div>
|
||||||
|
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="comment">// write to coil</span></div>
|
||||||
|
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  bitWrite(</div>
|
||||||
|
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  regs[ u8currentRegister ],</div>
|
||||||
|
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  u8currentBit,</div>
|
||||||
|
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ] == 0xff );</div>
|
||||||
|
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> </div>
|
||||||
|
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> </div>
|
||||||
|
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <span class="comment">// send answer to master</span></div>
|
||||||
|
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  u8BufferSize = 6;</div>
|
||||||
|
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  u8CopyBufferSize = u8BufferSize +2;</div>
|
||||||
|
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  sendTxBuffer();</div>
|
||||||
|
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> </div>
|
||||||
|
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keywordflow">return</span> u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> }</div>
|
||||||
|
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div>
|
||||||
|
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> int8_t Modbus::process_FC6( uint16_t *regs, uint8_t u8size ) {</div>
|
||||||
|
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> </div>
|
||||||
|
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  uint8_t u8add = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  uint8_t u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  uint16_t u16val = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> </div>
|
||||||
|
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  regs[ u8add ] = u16val;</div>
|
||||||
|
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> </div>
|
||||||
|
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  <span class="comment">// keep the same header</span></div>
|
||||||
|
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  u8BufferSize = <a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b">RESPONSE_SIZE</a>;</div>
|
||||||
|
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> </div>
|
||||||
|
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  u8CopyBufferSize = u8BufferSize +2;</div>
|
||||||
|
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  sendTxBuffer();</div>
|
||||||
|
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> </div>
|
||||||
|
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="keywordflow">return</span> u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> }</div>
|
||||||
|
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> </div>
|
||||||
|
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> int8_t Modbus::process_FC15( uint16_t *regs, uint8_t u8size ) {</div>
|
||||||
|
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  uint8_t u8currentRegister, u8currentBit, u8frameByte, u8bitsno;</div>
|
||||||
|
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  uint8_t u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  uint16_t u16currentCoil, u16coil;</div>
|
||||||
|
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  <span class="keywordtype">boolean</span> bTemp;</div>
|
||||||
|
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> </div>
|
||||||
|
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="comment">// get the first and last coil from the message</span></div>
|
||||||
|
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  uint16_t u16StartCoil = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  uint16_t u16Coilno = word( au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ], au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] );</div>
|
||||||
|
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> </div>
|
||||||
|
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> </div>
|
||||||
|
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="comment">// read each coil from the register map and put its value inside the outcoming message</span></div>
|
||||||
|
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  u8bitsno = 0;</div>
|
||||||
|
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  u8frameByte = 7;</div>
|
||||||
|
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  <span class="keywordflow">for</span> (u16currentCoil = 0; u16currentCoil < u16Coilno; u16currentCoil++) {</div>
|
||||||
|
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> </div>
|
||||||
|
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  u16coil = u16StartCoil + u16currentCoil;</div>
|
||||||
|
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  u8currentRegister = (uint8_t) (u16coil / 16);</div>
|
||||||
|
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  u8currentBit = (uint8_t) (u16coil % 16);</div>
|
||||||
|
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> </div>
|
||||||
|
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  bTemp = bitRead(</div>
|
||||||
|
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  au8Buffer[ u8frameByte ],</div>
|
||||||
|
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  u8bitsno );</div>
|
||||||
|
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> </div>
|
||||||
|
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  bitWrite(</div>
|
||||||
|
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  regs[ u8currentRegister ],</div>
|
||||||
|
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  u8currentBit,</div>
|
||||||
|
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  bTemp );</div>
|
||||||
|
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> </div>
|
||||||
|
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  u8bitsno ++;</div>
|
||||||
|
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> </div>
|
||||||
|
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <span class="keywordflow">if</span> (u8bitsno > 7) {</div>
|
||||||
|
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  u8bitsno = 0;</div>
|
||||||
|
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  u8frameByte++;</div>
|
||||||
|
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  }</div>
|
||||||
|
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  }</div>
|
||||||
|
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> </div>
|
||||||
|
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  <span class="comment">// send outcoming message</span></div>
|
||||||
|
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  <span class="comment">// it's just a copy of the incomping frame until 6th byte</span></div>
|
||||||
|
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  u8BufferSize = 6;</div>
|
||||||
|
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  u8CopyBufferSize = u8BufferSize +2;</div>
|
||||||
|
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  sendTxBuffer();</div>
|
||||||
|
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keywordflow">return</span> u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> }</div>
|
||||||
|
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> </div>
|
||||||
|
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> int8_t Modbus::process_FC16( uint16_t *regs, uint8_t u8size ) {</div>
|
||||||
|
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  uint8_t u8func = au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af" title="Function code position. ">FUNC</a> ]; <span class="comment">// get the original FUNC code</span></div>
|
||||||
|
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  uint8_t u8StartAdd = au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c" title="Address high byte. ">ADD_HI</a> ] << 8 | au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c" title="Address low byte. ">ADD_LO</a> ];</div>
|
||||||
|
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  uint8_t u8regsno = au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ] << 8 | au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ];</div>
|
||||||
|
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  uint8_t u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  uint8_t i;</div>
|
||||||
|
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  uint16_t temp;</div>
|
||||||
|
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> </div>
|
||||||
|
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  <span class="comment">// build header</span></div>
|
||||||
|
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6" title="Number of coils or registers high byte. ">NB_HI</a> ] = 0;</div>
|
||||||
|
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  au8Buffer[ <a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f" title="Number of coils or registers low byte. ">NB_LO</a> ] = u8regsno;</div>
|
||||||
|
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  u8BufferSize = <a class="code" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b">RESPONSE_SIZE</a>;</div>
|
||||||
|
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> </div>
|
||||||
|
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  <span class="comment">// write registers</span></div>
|
||||||
|
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  <span class="keywordflow">for</span> (i = 0; i < u8regsno; i++) {</div>
|
||||||
|
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  temp = word(</div>
|
||||||
|
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>  au8Buffer[ (<a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892" title="byte counter ">BYTE_CNT</a> + 1) + i * 2 ],</div>
|
||||||
|
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  au8Buffer[ (<a class="code" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892" title="byte counter ">BYTE_CNT</a> + 2) + i * 2 ]);</div>
|
||||||
|
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> </div>
|
||||||
|
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  regs[ u8StartAdd + i ] = temp;</div>
|
||||||
|
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  }</div>
|
||||||
|
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  u8CopyBufferSize = u8BufferSize +2;</div>
|
||||||
|
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  sendTxBuffer();</div>
|
||||||
|
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span> </div>
|
||||||
|
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  <span class="keywordflow">return</span> u8CopyBufferSize;</div>
|
||||||
|
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> }</div>
|
||||||
|
</div><!-- fragment --></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,67 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Class List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Class List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
|
||||||
|
<table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="class_modbus.html" target="_self">Modbus</a></td><td class="desc">Arduino class library for communicating with <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> devices over USB/RS232/485 (via RTU protocol) </td></tr>
|
||||||
|
<tr id="row_1_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structmodbus__t.html" target="_self">modbus_t</a></td><td class="desc">Master query structure: This includes all the necessary fields to make the Master generate a <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> query. A Master may keep several of these structures and send them cyclically or use them according to program needs </td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 676 B |
After Width: | Height: | Size: 147 B |
@ -0,0 +1,83 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modbus Member List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>This is the complete list of members for <a class="el" href="class_modbus.html">Modbus</a>, including all inherited members.</p>
|
||||||
|
<table class="directory">
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0">begin</a>(long u32speed)</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099">begin</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="class_modbus.html#a0d80101b650344c712a085c4bb005c4c">end</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0">getErrCnt</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce">getID</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a">getInCnt</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="group__buffer.html#gace7f726db13adc8feeceab987b719531">getLastError</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0">getOutCnt</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="group__buffer.html#ga2f39717d957a929af488c9120488fcdc">getState</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1">getTimeOut</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="group__loop.html#gaf6dd413191ed8a833022046873e0a063">getTimeOutState</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4">Modbus</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="class_modbus.html#afbbf7c81565d8e1ea1cd5890a96e7507">Modbus</a>(uint8_t u8id, uint8_t u8serno)</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="class_modbus.html#a5e23a7b669d0c2d5be1c0054c7c54dca">Modbus</a>(uint8_t u8id, uint8_t u8serno, uint8_t u8txenpin)</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d">poll</a>()</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="group__loop.html#gab3ef20562fc8cee14fc85f7e276890b5">poll</a>(uint16_t *regs, uint8_t u8size)</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54">query</a>(modbus_t telegram)</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0">setID</a>(uint8_t u8id)</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e">setTimeOut</a>(uint16_t u16timeout)</td><td class="entry"><a class="el" href="class_modbus.html">Modbus</a></td><td class="entry"></td></tr>
|
||||||
|
</table></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,248 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Modbus Class Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-methods">Public Member Functions</a> |
|
||||||
|
<a href="class_modbus-members.html">List of all members</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modbus Class Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>Arduino class library for communicating with <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> devices over USB/RS232/485 (via RTU protocol).
|
||||||
|
<a href="class_modbus.html#details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <<a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>></code></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
||||||
|
Public Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:ga101809cdd4734537bab58dc315a840b4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4">Modbus</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga101809cdd4734537bab58dc315a840b4"><td class="mdescLeft"> </td><td class="mdescRight">Default Constructor for Master through Serial. <a href="group__setup.html#ga101809cdd4734537bab58dc315a840b4">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga101809cdd4734537bab58dc315a840b4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:afbbf7c81565d8e1ea1cd5890a96e7507"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_modbus.html#afbbf7c81565d8e1ea1cd5890a96e7507">Modbus</a> (uint8_t u8id, uint8_t u8serno)</td></tr>
|
||||||
|
<tr class="separator:afbbf7c81565d8e1ea1cd5890a96e7507"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a5e23a7b669d0c2d5be1c0054c7c54dca"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_modbus.html#a5e23a7b669d0c2d5be1c0054c7c54dca">Modbus</a> (uint8_t u8id, uint8_t u8serno, uint8_t u8txenpin)</td></tr>
|
||||||
|
<tr class="separator:a5e23a7b669d0c2d5be1c0054c7c54dca"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga475a4fa0fac491307b10c4529ad6d2a0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0">begin</a> (long u32speed)</td></tr>
|
||||||
|
<tr class="memdesc:ga475a4fa0fac491307b10c4529ad6d2a0"><td class="mdescLeft"> </td><td class="mdescRight">Initialize class object. <a href="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga475a4fa0fac491307b10c4529ad6d2a0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a4f9673a3d113c49af69cb87b030ef099"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099">begin</a> ()</td></tr>
|
||||||
|
<tr class="separator:a4f9673a3d113c49af69cb87b030ef099"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:gaf828190ebe24efb1b3b1957429f3872e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e">setTimeOut</a> (uint16_t u16timeout)</td></tr>
|
||||||
|
<tr class="memdesc:gaf828190ebe24efb1b3b1957429f3872e"><td class="mdescLeft"> </td><td class="mdescRight">write communication watch-dog timer <a href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:gaf828190ebe24efb1b3b1957429f3872e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ac860024db3117a2ef907d0325b2fb7a1"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1">getTimeOut</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ac860024db3117a2ef907d0325b2fb7a1"><td class="mdescLeft"> </td><td class="mdescRight">get communication watch-dog timer value <a href="#ac860024db3117a2ef907d0325b2fb7a1">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ac860024db3117a2ef907d0325b2fb7a1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:gaf6dd413191ed8a833022046873e0a063"><td class="memItemLeft" align="right" valign="top">boolean </td><td class="memItemRight" valign="bottom"><a class="el" href="group__loop.html#gaf6dd413191ed8a833022046873e0a063">getTimeOutState</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:gaf6dd413191ed8a833022046873e0a063"><td class="mdescLeft"> </td><td class="mdescRight">get communication watch-dog timer state <a href="group__loop.html#gaf6dd413191ed8a833022046873e0a063">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:gaf6dd413191ed8a833022046873e0a063"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga19398cabed57b6d085d014af6c149f54"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54">query</a> (<a class="el" href="structmodbus__t.html">modbus_t</a> telegram)</td></tr>
|
||||||
|
<tr class="memdesc:ga19398cabed57b6d085d014af6c149f54"><td class="mdescLeft"> </td><td class="mdescRight">only for master <a href="group__loop.html#ga19398cabed57b6d085d014af6c149f54">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga19398cabed57b6d085d014af6c149f54"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga53bde78490c1cd8e3c070a676bdcfb0d"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d">poll</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga53bde78490c1cd8e3c070a676bdcfb0d"><td class="mdescLeft"> </td><td class="mdescRight">cyclic poll for master <a href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga53bde78490c1cd8e3c070a676bdcfb0d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:gab3ef20562fc8cee14fc85f7e276890b5"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__loop.html#gab3ef20562fc8cee14fc85f7e276890b5">poll</a> (uint16_t *regs, uint8_t u8size)</td></tr>
|
||||||
|
<tr class="memdesc:gab3ef20562fc8cee14fc85f7e276890b5"><td class="mdescLeft"> </td><td class="mdescRight">cyclic poll for slave <a href="group__loop.html#gab3ef20562fc8cee14fc85f7e276890b5">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:gab3ef20562fc8cee14fc85f7e276890b5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga4fa6ede8df85b7cc70b1282b9547378a"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a">getInCnt</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga4fa6ede8df85b7cc70b1282b9547378a"><td class="mdescLeft"> </td><td class="mdescRight">number of incoming messages <a href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga4fa6ede8df85b7cc70b1282b9547378a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga6f831ecaf3678c27dafb663a28bf81f0"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0">getOutCnt</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga6f831ecaf3678c27dafb663a28bf81f0"><td class="mdescLeft"> </td><td class="mdescRight">number of outcoming messages <a href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga6f831ecaf3678c27dafb663a28bf81f0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga6883c7f3ff12f084ed56d559d4e06ed0"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0">getErrCnt</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga6883c7f3ff12f084ed56d559d4e06ed0"><td class="mdescLeft"> </td><td class="mdescRight">error counter <a href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga6883c7f3ff12f084ed56d559d4e06ed0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga6449894306ff8cc5d4caff09b1b0d1ce"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce">getID</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga6449894306ff8cc5d4caff09b1b0d1ce"><td class="mdescLeft"> </td><td class="mdescRight">get slave ID between 1 and 247 <a href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga6449894306ff8cc5d4caff09b1b0d1ce"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga2f39717d957a929af488c9120488fcdc"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#ga2f39717d957a929af488c9120488fcdc">getState</a> ()</td></tr>
|
||||||
|
<tr class="separator:ga2f39717d957a929af488c9120488fcdc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:gace7f726db13adc8feeceab987b719531"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#gace7f726db13adc8feeceab987b719531">getLastError</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:gace7f726db13adc8feeceab987b719531"><td class="mdescLeft"> </td><td class="mdescRight">get last error message <a href="group__buffer.html#gace7f726db13adc8feeceab987b719531">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:gace7f726db13adc8feeceab987b719531"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga9bd497e97ac1777d4f0d4171078d60e0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0">setID</a> (uint8_t u8id)</td></tr>
|
||||||
|
<tr class="memdesc:ga9bd497e97ac1777d4f0d4171078d60e0"><td class="mdescLeft"> </td><td class="mdescRight">write new ID for the slave <a href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga9bd497e97ac1777d4f0d4171078d60e0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a0d80101b650344c712a085c4bb005c4c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_modbus.html#a0d80101b650344c712a085c4bb005c4c">end</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a0d80101b650344c712a085c4bb005c4c"><td class="mdescLeft"> </td><td class="mdescRight">finish any communication and release serial communication port <a href="#a0d80101b650344c712a085c4bb005c4c">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:a0d80101b650344c712a085c4bb005c4c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Arduino class library for communicating with <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> devices over USB/RS232/485 (via RTU protocol). </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00141">141</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
||||||
|
<a class="anchor" id="afbbf7c81565d8e1ea1cd5890a96e7507"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">Modbus::Modbus </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">uint8_t </td>
|
||||||
|
<td class="paramname"><em>u8id</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">uint8_t </td>
|
||||||
|
<td class="paramname"><em>u8serno</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00218">218</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a5e23a7b669d0c2d5be1c0054c7c54dca"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">Modbus::Modbus </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">uint8_t </td>
|
||||||
|
<td class="paramname"><em>u8id</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">uint8_t </td>
|
||||||
|
<td class="paramname"><em>u8serno</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">uint8_t </td>
|
||||||
|
<td class="paramname"><em>u8txenpin</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00234">234</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Member Function Documentation</h2>
|
||||||
|
<a class="anchor" id="a4f9673a3d113c49af69cb87b030ef099"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void Modbus::begin </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00299">299</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a0d80101b650344c712a085c4bb005c4c"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void Modbus::end </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>finish any communication and release serial communication port </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ac860024db3117a2ef907d0325b2fb7a1"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint16_t Modbus::getTimeOut </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>get communication watch-dog timer value </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
|
<li><a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,70 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Class Index</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li class="current"><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Class Index</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="qindex"><a class="qindex" href="#letter_M">M</a></div>
|
||||||
|
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||||
|
<tr><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  M  </div></td></tr></table>
|
||||||
|
</td><td valign="top"><a class="el" href="structmodbus__t.html">modbus_t</a>   </td><td></td></tr>
|
||||||
|
<tr><td></td><td></td></tr>
|
||||||
|
<tr><td valign="top"><a class="el" href="class_modbus.html">Modbus</a>   </td><td></td><td></td></tr>
|
||||||
|
<tr><td></td><td></td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
<div class="qindex"><a class="qindex" href="#letter_M">M</a></div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 132 B |
After Width: | Height: | Size: 3.7 KiB |
@ -0,0 +1,97 @@
|
|||||||
|
function toggleVisibility(linkObj)
|
||||||
|
{
|
||||||
|
var base = $(linkObj).attr('id');
|
||||||
|
var summary = $('#'+base+'-summary');
|
||||||
|
var content = $('#'+base+'-content');
|
||||||
|
var trigger = $('#'+base+'-trigger');
|
||||||
|
var src=$(trigger).attr('src');
|
||||||
|
if (content.is(':visible')===true) {
|
||||||
|
content.hide();
|
||||||
|
summary.show();
|
||||||
|
$(linkObj).addClass('closed').removeClass('opened');
|
||||||
|
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||||
|
} else {
|
||||||
|
content.show();
|
||||||
|
summary.hide();
|
||||||
|
$(linkObj).removeClass('closed').addClass('opened');
|
||||||
|
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateStripes()
|
||||||
|
{
|
||||||
|
$('table.directory tr').
|
||||||
|
removeClass('even').filter(':visible:even').addClass('even');
|
||||||
|
}
|
||||||
|
function toggleLevel(level)
|
||||||
|
{
|
||||||
|
$('table.directory tr').each(function(){
|
||||||
|
var l = this.id.split('_').length-1;
|
||||||
|
var i = $('#img'+this.id.substring(3));
|
||||||
|
var a = $('#arr'+this.id.substring(3));
|
||||||
|
if (l<level+1) {
|
||||||
|
i.attr('src','ftv2folderopen.png');
|
||||||
|
a.attr('src','ftv2mnode.png');
|
||||||
|
$(this).show();
|
||||||
|
} else if (l==level+1) {
|
||||||
|
i.attr('src','ftv2folderclosed.png');
|
||||||
|
a.attr('src','ftv2pnode.png');
|
||||||
|
$(this).show();
|
||||||
|
} else {
|
||||||
|
$(this).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
updateStripes();
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleFolder(id)
|
||||||
|
{
|
||||||
|
//The clicked row
|
||||||
|
var currentRow = $('#row_'+id);
|
||||||
|
var currentRowImages = currentRow.find("img");
|
||||||
|
|
||||||
|
//All rows after the clicked row
|
||||||
|
var rows = currentRow.nextAll("tr");
|
||||||
|
|
||||||
|
//Only match elements AFTER this one (can't hide elements before)
|
||||||
|
var childRows = rows.filter(function() {
|
||||||
|
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||||
|
return this.id.match(re);
|
||||||
|
});
|
||||||
|
|
||||||
|
//First row is visible we are HIDING
|
||||||
|
if (childRows.filter(':first').is(':visible')===true) {
|
||||||
|
currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
|
||||||
|
currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
|
||||||
|
rows.filter("[id^=row_"+id+"]").hide();
|
||||||
|
} else { //We are SHOWING
|
||||||
|
//All sub images
|
||||||
|
var childImages = childRows.find("img");
|
||||||
|
var childImg = childImages.filter("[id^=img]");
|
||||||
|
var childArr = childImages.filter("[id^=arr]");
|
||||||
|
|
||||||
|
currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
|
||||||
|
currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
|
||||||
|
childImg.attr('src','ftv2folderclosed.png'); //children closed
|
||||||
|
childArr.attr('src','ftv2pnode.png'); //children closed
|
||||||
|
childRows.show(); //show all children
|
||||||
|
}
|
||||||
|
updateStripes();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function toggleInherit(id)
|
||||||
|
{
|
||||||
|
var rows = $('tr.inherit.'+id);
|
||||||
|
var img = $('tr.inherit_header.'+id+' img');
|
||||||
|
var src = $(img).attr('src');
|
||||||
|
if (rows.filter(':first').is(':visible')===true) {
|
||||||
|
rows.css('display','none');
|
||||||
|
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||||
|
} else {
|
||||||
|
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||||
|
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,65 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: File List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">File List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
|
||||||
|
<table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="_modbus_rtu_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="_modbus_rtu_8h.html" target="_self">ModbusRtu.h</a></td><td class="desc"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 453 B |
After Width: | Height: | Size: 746 B |
After Width: | Height: | Size: 616 B |
After Width: | Height: | Size: 597 B |
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 746 B |
After Width: | Height: | Size: 246 B |
After Width: | Height: | Size: 246 B |
After Width: | Height: | Size: 403 B |
After Width: | Height: | Size: 86 B |
After Width: | Height: | Size: 388 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 314 B |
After Width: | Height: | Size: 86 B |
@ -0,0 +1,126 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Class Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div><ul>
|
||||||
|
<li>au16reg
|
||||||
|
: <a class="el" href="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
<li>begin()
|
||||||
|
: <a class="el" href="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>end()
|
||||||
|
: <a class="el" href="class_modbus.html#a0d80101b650344c712a085c4bb005c4c">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getErrCnt()
|
||||||
|
: <a class="el" href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getID()
|
||||||
|
: <a class="el" href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getInCnt()
|
||||||
|
: <a class="el" href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getLastError()
|
||||||
|
: <a class="el" href="group__buffer.html#gace7f726db13adc8feeceab987b719531">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getOutCnt()
|
||||||
|
: <a class="el" href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getState()
|
||||||
|
: <a class="el" href="group__buffer.html#ga2f39717d957a929af488c9120488fcdc">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getTimeOut()
|
||||||
|
: <a class="el" href="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getTimeOutState()
|
||||||
|
: <a class="el" href="group__loop.html#gaf6dd413191ed8a833022046873e0a063">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>Modbus()
|
||||||
|
: <a class="el" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>poll()
|
||||||
|
: <a class="el" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>query()
|
||||||
|
: <a class="el" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>setID()
|
||||||
|
: <a class="el" href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>setTimeOut()
|
||||||
|
: <a class="el" href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>u16CoilsNo
|
||||||
|
: <a class="el" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
<li>u16RegAdd
|
||||||
|
: <a class="el" href="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
<li>u8fct
|
||||||
|
: <a class="el" href="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
<li>u8id
|
||||||
|
: <a class="el" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,111 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Class Members - Functions</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>begin()
|
||||||
|
: <a class="el" href="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>end()
|
||||||
|
: <a class="el" href="class_modbus.html#a0d80101b650344c712a085c4bb005c4c">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getErrCnt()
|
||||||
|
: <a class="el" href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getID()
|
||||||
|
: <a class="el" href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getInCnt()
|
||||||
|
: <a class="el" href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getLastError()
|
||||||
|
: <a class="el" href="group__buffer.html#gace7f726db13adc8feeceab987b719531">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getOutCnt()
|
||||||
|
: <a class="el" href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getState()
|
||||||
|
: <a class="el" href="group__buffer.html#ga2f39717d957a929af488c9120488fcdc">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getTimeOut()
|
||||||
|
: <a class="el" href="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>getTimeOutState()
|
||||||
|
: <a class="el" href="group__loop.html#gaf6dd413191ed8a833022046873e0a063">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>Modbus()
|
||||||
|
: <a class="el" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>poll()
|
||||||
|
: <a class="el" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>query()
|
||||||
|
: <a class="el" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>setID()
|
||||||
|
: <a class="el" href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0">Modbus</a>
|
||||||
|
</li>
|
||||||
|
<li>setTimeOut()
|
||||||
|
: <a class="el" href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e">Modbus</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,81 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Class Members - Variables</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_func.html"><span>Functions</span></a></li>
|
||||||
|
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>au16reg
|
||||||
|
: <a class="el" href="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
<li>u16CoilsNo
|
||||||
|
: <a class="el" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
<li>u16RegAdd
|
||||||
|
: <a class="el" href="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
<li>u8fct
|
||||||
|
: <a class="el" href="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
<li>u8id
|
||||||
|
: <a class="el" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c">modbus_t</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,233 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: File Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="#index_b"><span>b</span></a></li>
|
||||||
|
<li><a href="#index_c"><span>c</span></a></li>
|
||||||
|
<li><a href="#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="#index_n"><span>n</span></a></li>
|
||||||
|
<li><a href="#index_r"><span>r</span></a></li>
|
||||||
|
<li><a href="#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all file members with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>ADD_HI
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ADD_LO
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
|
||||||
|
<li>BYTE_CNT
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
|
||||||
|
<li>CHECKSUM_SIZE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>COM_IDLE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>COM_STATES
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>COM_WAITING
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
|
||||||
|
<li>ERR_BAD_CRC
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_BUFF_OVERFLOW
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_EXCEPTION
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_LIST
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_NOT_MASTER
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_POLLING
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXC_ADDR_RANGE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXC_EXECUTE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXC_FUNC_CODE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXC_REGS_QUANT
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXCEPTION_SIZE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
|
||||||
|
<li>fctsupported
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>FUNC
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
|
||||||
|
<li>ID
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||||
|
<li>MAX_BUFFER
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_NONE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_READ_COILS
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_READ_DISCRETE_INPUT
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_READ_INPUT_REGISTER
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_READ_REGISTERS
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_WRITE_COIL
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_WRITE_MULTIPLE_COILS
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_WRITE_MULTIPLE_REGISTERS
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_WRITE_REGISTER
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MESSAGE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230ba">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
|
||||||
|
<li>NB_HI
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>NB_LO
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>NO_REPLY
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
|
||||||
|
<li>RESPONSE_SIZE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
|
||||||
|
<li>T35
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,73 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: File Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>MAX_BUFFER
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>T35
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,79 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: File Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>COM_STATES
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_LIST
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MESSAGE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230ba">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,207 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: File Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="#index_b"><span>b</span></a></li>
|
||||||
|
<li><a href="#index_c"><span>c</span></a></li>
|
||||||
|
<li><a href="#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="#index_n"><span>n</span></a></li>
|
||||||
|
<li><a href="#index_r"><span>r</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>ADD_HI
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ADD_LO
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
|
||||||
|
<li>BYTE_CNT
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
|
||||||
|
<li>CHECKSUM_SIZE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>COM_IDLE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>COM_WAITING
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
|
||||||
|
<li>ERR_BAD_CRC
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_BUFF_OVERFLOW
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_EXCEPTION
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_NOT_MASTER
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ERR_POLLING
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXC_ADDR_RANGE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXC_EXECUTE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXC_FUNC_CODE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXC_REGS_QUANT
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>EXCEPTION_SIZE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
|
||||||
|
<li>FUNC
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
|
||||||
|
<li>ID
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||||
|
<li>MB_FC_NONE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_READ_COILS
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_READ_DISCRETE_INPUT
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_READ_INPUT_REGISTER
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_READ_REGISTERS
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_WRITE_COIL
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_WRITE_MULTIPLE_COILS
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_WRITE_MULTIPLE_REGISTERS
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MB_FC_WRITE_REGISTER
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
|
||||||
|
<li>NB_HI
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>NB_LO
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
<li>NO_REPLY
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
|
||||||
|
<li>RESPONSE_SIZE
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,70 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: File Members</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>File Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>fctsupported
|
||||||
|
: <a class="el" href="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0">ModbusRtu.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,184 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Modbus Buffer Management</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#func-members">Functions</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modbus Buffer Management</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||||
|
Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:ga4fa6ede8df85b7cc70b1282b9547378a"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a">Modbus::getInCnt</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga4fa6ede8df85b7cc70b1282b9547378a"><td class="mdescLeft"> </td><td class="mdescRight">number of incoming messages <a href="#ga4fa6ede8df85b7cc70b1282b9547378a">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga4fa6ede8df85b7cc70b1282b9547378a"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga6f831ecaf3678c27dafb663a28bf81f0"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0">Modbus::getOutCnt</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga6f831ecaf3678c27dafb663a28bf81f0"><td class="mdescLeft"> </td><td class="mdescRight">number of outcoming messages <a href="#ga6f831ecaf3678c27dafb663a28bf81f0">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga6f831ecaf3678c27dafb663a28bf81f0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga6883c7f3ff12f084ed56d559d4e06ed0"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0">Modbus::getErrCnt</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga6883c7f3ff12f084ed56d559d4e06ed0"><td class="mdescLeft"> </td><td class="mdescRight">error counter <a href="#ga6883c7f3ff12f084ed56d559d4e06ed0">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga6883c7f3ff12f084ed56d559d4e06ed0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga2f39717d957a929af488c9120488fcdc"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#ga2f39717d957a929af488c9120488fcdc">Modbus::getState</a> ()</td></tr>
|
||||||
|
<tr class="separator:ga2f39717d957a929af488c9120488fcdc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:gace7f726db13adc8feeceab987b719531"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__buffer.html#gace7f726db13adc8feeceab987b719531">Modbus::getLastError</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:gace7f726db13adc8feeceab987b719531"><td class="mdescLeft"> </td><td class="mdescRight">get last error message <a href="#gace7f726db13adc8feeceab987b719531">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:gace7f726db13adc8feeceab987b719531"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<h2 class="groupheader">Function Documentation</h2>
|
||||||
|
<a class="anchor" id="ga6883c7f3ff12f084ed56d559d4e06ed0"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint16_t Modbus::getErrCnt </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>error counter </p>
|
||||||
|
<p>Get errors counter value This can be useful to diagnose communication.</p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>errors counter </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00386">386</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ga4fa6ede8df85b7cc70b1282b9547378a"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint16_t Modbus::getInCnt </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>number of incoming messages </p>
|
||||||
|
<p>Get input messages counter value This can be useful to diagnose communication.</p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>input messages counter </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00362">362</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="gace7f726db13adc8feeceab987b719531"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint8_t Modbus::getLastError </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>get last error message </p>
|
||||||
|
<p>Get the last error in the protocol processor</p>
|
||||||
|
<p>NO_REPLY = 255 Time-out </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>EXC_FUNC_CODE = 1 Function code not available </dd>
|
||||||
|
<dd>
|
||||||
|
EXC_ADDR_RANGE = 2 Address beyond available space for <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> registers </dd>
|
||||||
|
<dd>
|
||||||
|
EXC_REGS_QUANT = 3 Coils or registers number beyond the available space </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00409">409</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ga6f831ecaf3678c27dafb663a28bf81f0"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint16_t Modbus::getOutCnt </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>number of outcoming messages </p>
|
||||||
|
<p>Get transmitted messages counter value This can be useful to diagnose communication.</p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>transmitted messages counter </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00374">374</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ga2f39717d957a929af488c9120488fcdc"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint8_t Modbus::getState </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Get modbus master state</p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>= 0 IDLE, = 1 WAITING FOR ANSWER </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00396">396</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,55 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Modbus Function Codes for Discrete Coils/Inputs</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modbus Function Codes for Discrete Coils/Inputs</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,186 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Modbus Object Management</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#func-members">Functions</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modbus Object Management</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||||
|
Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:gaf6dd413191ed8a833022046873e0a063"><td class="memItemLeft" align="right" valign="top">boolean </td><td class="memItemRight" valign="bottom"><a class="el" href="group__loop.html#gaf6dd413191ed8a833022046873e0a063">Modbus::getTimeOutState</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:gaf6dd413191ed8a833022046873e0a063"><td class="mdescLeft"> </td><td class="mdescRight">get communication watch-dog timer state <a href="#gaf6dd413191ed8a833022046873e0a063">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:gaf6dd413191ed8a833022046873e0a063"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga19398cabed57b6d085d014af6c149f54"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54">Modbus::query</a> (<a class="el" href="structmodbus__t.html">modbus_t</a> telegram)</td></tr>
|
||||||
|
<tr class="memdesc:ga19398cabed57b6d085d014af6c149f54"><td class="mdescLeft"> </td><td class="mdescRight">only for master <a href="#ga19398cabed57b6d085d014af6c149f54">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga19398cabed57b6d085d014af6c149f54"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga53bde78490c1cd8e3c070a676bdcfb0d"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d">Modbus::poll</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga53bde78490c1cd8e3c070a676bdcfb0d"><td class="mdescLeft"> </td><td class="mdescRight">cyclic poll for master <a href="#ga53bde78490c1cd8e3c070a676bdcfb0d">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga53bde78490c1cd8e3c070a676bdcfb0d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:gab3ef20562fc8cee14fc85f7e276890b5"><td class="memItemLeft" align="right" valign="top">int8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__loop.html#gab3ef20562fc8cee14fc85f7e276890b5">Modbus::poll</a> (uint16_t *regs, uint8_t u8size)</td></tr>
|
||||||
|
<tr class="memdesc:gab3ef20562fc8cee14fc85f7e276890b5"><td class="mdescLeft"> </td><td class="mdescRight">cyclic poll for slave <a href="#gab3ef20562fc8cee14fc85f7e276890b5">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:gab3ef20562fc8cee14fc85f7e276890b5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<h2 class="groupheader">Function Documentation</h2>
|
||||||
|
<a class="anchor" id="gaf6dd413191ed8a833022046873e0a063"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">boolean Modbus::getTimeOutState </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>get communication watch-dog timer state </p>
|
||||||
|
<p>Return communication Watchdog state. It could be usefull to reset outputs if the watchdog is fired.</p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>TRUE if millis() > u32timeOut </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00350">350</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ga53bde78490c1cd8e3c070a676bdcfb0d"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int8_t Modbus::poll </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>cyclic poll for master </p>
|
||||||
|
<p>*** Only for <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> Master *** This method checks if there is any incoming answer if pending. If there is no answer, it would change Master state to COM_IDLE. This method must be called only at loop section. Avoid any delay() function.</p>
|
||||||
|
<p>Any incoming data would be redirected to au16regs pointer, as defined in its <a class="el" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a> query telegram.</p>
|
||||||
|
<p>nothing </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>errors counter </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00513">513</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="gab3ef20562fc8cee14fc85f7e276890b5"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int8_t Modbus::poll </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">uint16_t * </td>
|
||||||
|
<td class="paramname"><em>regs</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">uint8_t </td>
|
||||||
|
<td class="paramname"><em>u8size</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>cyclic poll for slave </p>
|
||||||
|
<p>*** Only for <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> Slave *** This method checks if there is any incoming query Afterwards, it would shoot a validation routine plus a register query Avoid any delay() function !!!! After a successful frame between the Master and the Slave, the time-out timer is reset.</p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">*regs</td><td>register table for communication exchange </td></tr>
|
||||||
|
<tr><td class="paramname">u8size</td><td>size of the register table </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>0 if no query, 1..4 if communication error, >4 if correct query processed </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00588">588</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ga19398cabed57b6d085d014af6c149f54"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int8_t Modbus::query </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="structmodbus__t.html">modbus_t</a> </td>
|
||||||
|
<td class="paramname"><em>telegram</em>)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>only for master </p>
|
||||||
|
<p>*** Only <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> Master *** Generate a query to an slave with a <a class="el" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a> telegram structure The Master must be in COM_IDLE mode. After it, its state would be COM_WAITING. This method has to be called only in loop() section.</p>
|
||||||
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a> </dd></dl>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname"><a class="el" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a></td><td>modbus telegram structure (id, fct, ...)</td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>finish function 15 </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00425">425</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,55 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Modbus Function Codes for Holding/Input Registers</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modbus Function Codes for Holding/Input Registers</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,201 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Modbus Object Instantiation/Initialization</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#func-members">Functions</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modbus Object Instantiation/Initialization</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||||
|
Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:ga101809cdd4734537bab58dc315a840b4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#ga101809cdd4734537bab58dc315a840b4">Modbus::Modbus</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga101809cdd4734537bab58dc315a840b4"><td class="mdescLeft"> </td><td class="mdescRight">Default Constructor for Master through Serial. <a href="#ga101809cdd4734537bab58dc315a840b4">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga101809cdd4734537bab58dc315a840b4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga475a4fa0fac491307b10c4529ad6d2a0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0">Modbus::begin</a> (long u32speed)</td></tr>
|
||||||
|
<tr class="memdesc:ga475a4fa0fac491307b10c4529ad6d2a0"><td class="mdescLeft"> </td><td class="mdescRight">Initialize class object. <a href="#ga475a4fa0fac491307b10c4529ad6d2a0">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga475a4fa0fac491307b10c4529ad6d2a0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga9bd497e97ac1777d4f0d4171078d60e0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0">Modbus::setID</a> (uint8_t u8id)</td></tr>
|
||||||
|
<tr class="memdesc:ga9bd497e97ac1777d4f0d4171078d60e0"><td class="mdescLeft"> </td><td class="mdescRight">write new ID for the slave <a href="#ga9bd497e97ac1777d4f0d4171078d60e0">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga9bd497e97ac1777d4f0d4171078d60e0"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:ga6449894306ff8cc5d4caff09b1b0d1ce"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce">Modbus::getID</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ga6449894306ff8cc5d4caff09b1b0d1ce"><td class="mdescLeft"> </td><td class="mdescRight">get slave ID between 1 and 247 <a href="#ga6449894306ff8cc5d4caff09b1b0d1ce">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:ga6449894306ff8cc5d4caff09b1b0d1ce"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:gaf828190ebe24efb1b3b1957429f3872e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e">Modbus::setTimeOut</a> (uint16_t u16timeout)</td></tr>
|
||||||
|
<tr class="memdesc:gaf828190ebe24efb1b3b1957429f3872e"><td class="mdescLeft"> </td><td class="mdescRight">write communication watch-dog timer <a href="#gaf828190ebe24efb1b3b1957429f3872e">More...</a><br/></td></tr>
|
||||||
|
<tr class="separator:gaf828190ebe24efb1b3b1957429f3872e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<h2 class="groupheader">Function Documentation</h2>
|
||||||
|
<a class="anchor" id="ga475a4fa0fac491307b10c4529ad6d2a0"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void Modbus::begin </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">long </td>
|
||||||
|
<td class="paramname"><em>u32speed</em>)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Initialize class object. </p>
|
||||||
|
<p>Sets up the serial port using specified baud rate. Call once class has been instantiated, typically within setup().</p>
|
||||||
|
<dl class="section see"><dt>See Also</dt><dd><a href="http://arduino.cc/en/Serial/Begin#.Uy4CJ6aKlHY">http://arduino.cc/en/Serial/Begin#.Uy4CJ6aKlHY</a> </dd></dl>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">speed</td><td>baud rate, in standard increments (300..115200) </td></tr>
|
||||||
|
<tr><td class="paramname">config</td><td>data frame settings (data length, parity and stop bits) </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00250">250</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ga6449894306ff8cc5d4caff09b1b0d1ce"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint8_t Modbus::getID </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>get slave ID between 1 and 247 </p>
|
||||||
|
<p>Method to read current slave ID address.</p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>u8id current slave address between 1 and 247 </dd></dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00323">323</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ga101809cdd4734537bab58dc315a840b4"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">Modbus::Modbus </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname">)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Default Constructor for Master through Serial. </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00204">204</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ga9bd497e97ac1777d4f0d4171078d60e0"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void Modbus::setID </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">uint8_t </td>
|
||||||
|
<td class="paramname"><em>u8id</em>)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>write new ID for the slave </p>
|
||||||
|
<p>Method to write a new slave ID address.</p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">u8id</td><td>new slave address between 1 and 247 </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00310">310</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="gaf828190ebe24efb1b3b1957429f3872e"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void Modbus::setTimeOut </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">uint16_t </td>
|
||||||
|
<td class="paramname"><em>u16timeOut</em>)</td><td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>write communication watch-dog timer </p>
|
||||||
|
<p>Initialize time-out parameter.</p>
|
||||||
|
<p>Call once class has been instantiated, typically within setup(). The time-out timer is reset each time that there is a successful communication between Master and Slave. It works for both.</p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">time-out</td><td>value (ms) </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00338">338</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,178 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||||
|
<HTML><HEAD></HEAD><BODY>
|
||||||
|
<OBJECT type="text/site properties">
|
||||||
|
<param name="FrameName" value="right">
|
||||||
|
</OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Todo List"><param name="Local" value="todo.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modules"><param name="Local" value="modules.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus Object Instantiation/Initialization"><param name="Local" value="group__setup.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="begin"><param name="Local" value="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getID"><param name="Local" value="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="group__setup.html#ga101809cdd4734537bab58dc315a840b4"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="setID"><param name="Local" value="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="setTimeOut"><param name="Local" value="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus Object Management"><param name="Local" value="group__loop.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getTimeOutState"><param name="Local" value="group__loop.html#gaf6dd413191ed8a833022046873e0a063"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="poll"><param name="Local" value="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="poll"><param name="Local" value="group__loop.html#gab3ef20562fc8cee14fc85f7e276890b5"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="query"><param name="Local" value="group__loop.html#ga19398cabed57b6d085d014af6c149f54"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus Buffer Management"><param name="Local" value="group__buffer.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getErrCnt"><param name="Local" value="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getInCnt"><param name="Local" value="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getLastError"><param name="Local" value="group__buffer.html#gace7f726db13adc8feeceab987b719531"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getOutCnt"><param name="Local" value="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getState"><param name="Local" value="group__buffer.html#ga2f39717d957a929af488c9120488fcdc"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus Function Codes for Discrete Coils/Inputs"><param name="Local" value="group__discrete.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus Function Codes for Holding/Input Registers"><param name="Local" value="group__register.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Classes"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class List"><param name="Local" value="annotated.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="class_modbus.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="group__setup.html#ga101809cdd4734537bab58dc315a840b4"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="class_modbus.html#afbbf7c81565d8e1ea1cd5890a96e7507"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="class_modbus.html#a5e23a7b669d0c2d5be1c0054c7c54dca"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="begin"><param name="Local" value="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="begin"><param name="Local" value="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="end"><param name="Local" value="class_modbus.html#a0d80101b650344c712a085c4bb005c4c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getErrCnt"><param name="Local" value="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getID"><param name="Local" value="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getInCnt"><param name="Local" value="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getLastError"><param name="Local" value="group__buffer.html#gace7f726db13adc8feeceab987b719531"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getOutCnt"><param name="Local" value="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getState"><param name="Local" value="group__buffer.html#ga2f39717d957a929af488c9120488fcdc"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getTimeOut"><param name="Local" value="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getTimeOutState"><param name="Local" value="group__loop.html#gaf6dd413191ed8a833022046873e0a063"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="poll"><param name="Local" value="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="poll"><param name="Local" value="group__loop.html#gab3ef20562fc8cee14fc85f7e276890b5"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="query"><param name="Local" value="group__loop.html#ga19398cabed57b6d085d014af6c149f54"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="setID"><param name="Local" value="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="setTimeOut"><param name="Local" value="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="modbus_t"><param name="Local" value="structmodbus__t.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="au16reg"><param name="Local" value="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="u16CoilsNo"><param name="Local" value="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="u16RegAdd"><param name="Local" value="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="u8fct"><param name="Local" value="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="u8id"><param name="Local" value="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class Index"><param name="Local" value="classes.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class Members"><param name="Local" value="functions.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="All"><param name="Local" value="functions.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Functions"><param name="Local" value="functions_func.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Variables"><param name="Local" value="functions_vars.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Files"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="File List"><param name="Local" value="files.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ModbusRtu.h"><param name="Local" value="_modbus_rtu_8h.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="modbus_t"><param name="Local" value="structmodbus__t.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="au16reg"><param name="Local" value="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="u16CoilsNo"><param name="Local" value="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="u16RegAdd"><param name="Local" value="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="u8fct"><param name="Local" value="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="u8id"><param name="Local" value="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="class_modbus.html"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="group__setup.html#ga101809cdd4734537bab58dc315a840b4"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="class_modbus.html#afbbf7c81565d8e1ea1cd5890a96e7507"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Modbus"><param name="Local" value="class_modbus.html#a5e23a7b669d0c2d5be1c0054c7c54dca"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="begin"><param name="Local" value="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="begin"><param name="Local" value="class_modbus.html#a4f9673a3d113c49af69cb87b030ef099"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="end"><param name="Local" value="class_modbus.html#a0d80101b650344c712a085c4bb005c4c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getErrCnt"><param name="Local" value="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getID"><param name="Local" value="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getInCnt"><param name="Local" value="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getLastError"><param name="Local" value="group__buffer.html#gace7f726db13adc8feeceab987b719531"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getOutCnt"><param name="Local" value="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getState"><param name="Local" value="group__buffer.html#ga2f39717d957a929af488c9120488fcdc"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getTimeOut"><param name="Local" value="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="getTimeOutState"><param name="Local" value="group__loop.html#gaf6dd413191ed8a833022046873e0a063"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="poll"><param name="Local" value="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="poll"><param name="Local" value="group__loop.html#gab3ef20562fc8cee14fc85f7e276890b5"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="query"><param name="Local" value="group__loop.html#ga19398cabed57b6d085d014af6c149f54"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="setID"><param name="Local" value="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="setTimeOut"><param name="Local" value="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MAX_BUFFER"><param name="Local" value="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="T35"><param name="Local" value="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="RESPONSE_SIZE"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="EXCEPTION_SIZE"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="CHECKSUM_SIZE"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="NO_REPLY"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="EXC_FUNC_CODE"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="EXC_ADDR_RANGE"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="EXC_REGS_QUANT"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="EXC_EXECUTE"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="COM_STATES"><param name="Local" value="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="COM_IDLE"><param name="Local" value="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="COM_WAITING"><param name="Local" value="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ERR_LIST"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ERR_NOT_MASTER"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ERR_POLLING"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ERR_BUFF_OVERFLOW"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ERR_BAD_CRC"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ERR_EXCEPTION"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_NONE"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_READ_COILS"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_READ_DISCRETE_INPUT"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_READ_REGISTERS"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_READ_INPUT_REGISTER"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_WRITE_COIL"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_WRITE_REGISTER"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_WRITE_MULTIPLE_COILS"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MB_FC_WRITE_MULTIPLE_REGISTERS"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="MESSAGE"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230ba"><param name="ImageNumber" value="1"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ID"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="FUNC"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ADD_HI"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="ADD_LO"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="NB_HI"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="NB_LO"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="BYTE_CNT"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="fctsupported"><param name="Local" value="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="File Members"><param name="Local" value="globals.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="All"><param name="Local" value="globals.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Variables"><param name="Local" value="globals_vars.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Enumerations"><param name="Local" value="globals_enum.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Enumerator"><param name="Local" value="globals_eval.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Name" value="Macros"><param name="Local" value="globals_defs.html"><param name="ImageNumber" value="11"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
@ -0,0 +1,203 @@
|
|||||||
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||||
|
<HTML><HEAD></HEAD><BODY>
|
||||||
|
<OBJECT type="text/site properties">
|
||||||
|
<param name="FrameName" value="right">
|
||||||
|
</OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c"><param name="Name" value="ADD_HI"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c"><param name="Name" value="ADD_LO"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be"><param name="Name" value="au16reg"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0"><param name="Name" value="begin"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0"><param name="Name" value="setup"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html"><param name="Name" value="buffer"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0"><param name="Name" value="getErrCnt"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a"><param name="Name" value="getInCnt"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#gace7f726db13adc8feeceab987b719531"><param name="Name" value="getLastError"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0"><param name="Name" value="getOutCnt"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga2f39717d957a929af488c9120488fcdc"><param name="Name" value="getState"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892"><param name="Name" value="BYTE_CNT"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332"><param name="Name" value="CHECKSUM_SIZE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20"><param name="Name" value="COM_IDLE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b"><param name="Name" value="COM_WAITING"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#a0d80101b650344c712a085c4bb005c4c"><param name="Name" value="end"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0"><param name="Name" value="ERR_BAD_CRC"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b"><param name="Name" value="ERR_BUFF_OVERFLOW"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a"><param name="Name" value="ERR_EXCEPTION"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04"><param name="Name" value="ERR_NOT_MASTER"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901"><param name="Name" value="ERR_POLLING"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280"><param name="Name" value="EXC_ADDR_RANGE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89"><param name="Name" value="EXC_EXECUTE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2"><param name="Name" value="EXC_FUNC_CODE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920"><param name="Name" value="EXC_REGS_QUANT"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05"><param name="Name" value="EXCEPTION_SIZE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0"><param name="Name" value="fctsupported"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af"><param name="Name" value="FUNC"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0"><param name="Name" value="getErrCnt"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0"><param name="Name" value="buffer"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga6883c7f3ff12f084ed56d559d4e06ed0"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce"><param name="Name" value="getID"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce"><param name="Name" value="setup"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a"><param name="Name" value="getInCnt"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a"><param name="Name" value="buffer"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga4fa6ede8df85b7cc70b1282b9547378a"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#gace7f726db13adc8feeceab987b719531"><param name="Name" value="getLastError"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#gace7f726db13adc8feeceab987b719531"><param name="Name" value="buffer"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#gace7f726db13adc8feeceab987b719531"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0"><param name="Name" value="getOutCnt"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0"><param name="Name" value="buffer"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga6f831ecaf3678c27dafb663a28bf81f0"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga2f39717d957a929af488c9120488fcdc"><param name="Name" value="getState"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga2f39717d957a929af488c9120488fcdc"><param name="Name" value="buffer"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html#ga2f39717d957a929af488c9120488fcdc"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1"><param name="Name" value="getTimeOut"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#gaf6dd413191ed8a833022046873e0a063"><param name="Name" value="getTimeOutState"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#gaf6dd413191ed8a833022046873e0a063"><param name="Name" value="loop"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#gaf6dd413191ed8a833022046873e0a063"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68"><param name="Name" value="ID"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html"><param name="Name" value="loop"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#gaf6dd413191ed8a833022046873e0a063"><param name="Name" value="getTimeOutState"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d"><param name="Name" value="poll"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#ga19398cabed57b6d085d014af6c149f54"><param name="Name" value="query"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c"><param name="Name" value="MAX_BUFFER"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9"><param name="Name" value="MB_FC_NONE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0"><param name="Name" value="MB_FC_READ_COILS"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e"><param name="Name" value="MB_FC_READ_DISCRETE_INPUT"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07"><param name="Name" value="MB_FC_READ_INPUT_REGISTER"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f"><param name="Name" value="MB_FC_READ_REGISTERS"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7"><param name="Name" value="MB_FC_WRITE_COIL"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304"><param name="Name" value="MB_FC_WRITE_MULTIPLE_COILS"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb"><param name="Name" value="MB_FC_WRITE_MULTIPLE_REGISTERS"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f"><param name="Name" value="MB_FC_WRITE_REGISTER"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__buffer.html"><param name="Name" value="Modbus Buffer Management"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__discrete.html"><param name="Name" value="Modbus Function Codes for Discrete Coils/Inputs"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__register.html"><param name="Name" value="Modbus Function Codes for Holding/Input Registers"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html"><param name="Name" value="Modbus Object Instantiation/Initialization"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html"><param name="Name" value="Modbus Object Management"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga475a4fa0fac491307b10c4529ad6d2a0"><param name="Name" value="begin"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#a0d80101b650344c712a085c4bb005c4c"><param name="Name" value="end"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga6883c7f3ff12f084ed56d559d4e06ed0"><param name="Name" value="getErrCnt"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga6449894306ff8cc5d4caff09b1b0d1ce"><param name="Name" value="getID"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga4fa6ede8df85b7cc70b1282b9547378a"><param name="Name" value="getInCnt"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#gace7f726db13adc8feeceab987b719531"><param name="Name" value="getLastError"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga6f831ecaf3678c27dafb663a28bf81f0"><param name="Name" value="getOutCnt"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga2f39717d957a929af488c9120488fcdc"><param name="Name" value="getState"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ac860024db3117a2ef907d0325b2fb7a1"><param name="Name" value="getTimeOut"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#gaf6dd413191ed8a833022046873e0a063"><param name="Name" value="getTimeOutState"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga101809cdd4734537bab58dc315a840b4"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga53bde78490c1cd8e3c070a676bdcfb0d"><param name="Name" value="poll"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga19398cabed57b6d085d014af6c149f54"><param name="Name" value="query"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#ga9bd497e97ac1777d4f0d4171078d60e0"><param name="Name" value="setID"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="class_modbus.html#gaf828190ebe24efb1b3b1957429f3872e"><param name="Name" value="setTimeOut"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga101809cdd4734537bab58dc315a840b4"><param name="Name" value="setup"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html"><param name="Name" value="modbus_t"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be"><param name="Name" value="au16reg"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43"><param name="Name" value="u16CoilsNo"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c"><param name="Name" value="u16RegAdd"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc"><param name="Name" value="u8fct"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c"><param name="Name" value="u8id"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html"><param name="Name" value="ModbusRtu.h"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c"><param name="Name" value="ADD_HI"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c"><param name="Name" value="ADD_LO"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892"><param name="Name" value="BYTE_CNT"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332"><param name="Name" value="CHECKSUM_SIZE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20"><param name="Name" value="COM_IDLE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b"><param name="Name" value="COM_WAITING"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0"><param name="Name" value="ERR_BAD_CRC"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b"><param name="Name" value="ERR_BUFF_OVERFLOW"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a"><param name="Name" value="ERR_EXCEPTION"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04"><param name="Name" value="ERR_NOT_MASTER"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901"><param name="Name" value="ERR_POLLING"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280"><param name="Name" value="EXC_ADDR_RANGE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89"><param name="Name" value="EXC_EXECUTE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2"><param name="Name" value="EXC_FUNC_CODE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920"><param name="Name" value="EXC_REGS_QUANT"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05"><param name="Name" value="EXCEPTION_SIZE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aede21762dc4aa80a14df8dd40ef105f0"><param name="Name" value="fctsupported"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af"><param name="Name" value="FUNC"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68"><param name="Name" value="ID"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a1d5dab30b404fab91608086105afc78c"><param name="Name" value="MAX_BUFFER"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9"><param name="Name" value="MB_FC_NONE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0"><param name="Name" value="MB_FC_READ_COILS"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e"><param name="Name" value="MB_FC_READ_DISCRETE_INPUT"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07"><param name="Name" value="MB_FC_READ_INPUT_REGISTER"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f"><param name="Name" value="MB_FC_READ_REGISTERS"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7"><param name="Name" value="MB_FC_WRITE_COIL"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304"><param name="Name" value="MB_FC_WRITE_MULTIPLE_COILS"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb"><param name="Name" value="MB_FC_WRITE_MULTIPLE_REGISTERS"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f"><param name="Name" value="MB_FC_WRITE_REGISTER"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6"><param name="Name" value="NB_HI"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f"><param name="Name" value="NB_LO"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae"><param name="Name" value="NO_REPLY"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b"><param name="Name" value="RESPONSE_SIZE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac"><param name="Name" value="T35"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6"><param name="Name" value="NB_HI"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f"><param name="Name" value="NB_LO"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae"><param name="Name" value="NO_REPLY"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d"><param name="Name" value="poll"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d"><param name="Name" value="loop"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#ga53bde78490c1cd8e3c070a676bdcfb0d"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#ga19398cabed57b6d085d014af6c149f54"><param name="Name" value="query"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#ga19398cabed57b6d085d014af6c149f54"><param name="Name" value="loop"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__loop.html#ga19398cabed57b6d085d014af6c149f54"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b"><param name="Name" value="RESPONSE_SIZE"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0"><param name="Name" value="setID"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0"><param name="Name" value="setup"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e"><param name="Name" value="setTimeOut"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e"><param name="Name" value="setup"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html"><param name="Name" value="setup"></OBJECT>
|
||||||
|
<UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga475a4fa0fac491307b10c4529ad6d2a0"><param name="Name" value="begin"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga6449894306ff8cc5d4caff09b1b0d1ce"><param name="Name" value="getID"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga101809cdd4734537bab58dc315a840b4"><param name="Name" value="Modbus"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#ga9bd497e97ac1777d4f0d4171078d60e0"><param name="Name" value="setID"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="group__setup.html#gaf828190ebe24efb1b3b1957429f3872e"><param name="Name" value="setTimeOut"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="_modbus_rtu_8h.html#ac5a7c6ee8dea0ccb09dfc611bd08a0ac"><param name="Name" value="T35"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="todo.html"><param name="Name" value="Todo List"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43"><param name="Name" value="u16CoilsNo"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c"><param name="Name" value="u16RegAdd"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc"><param name="Name" value="u8fct"></OBJECT>
|
||||||
|
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c"><param name="Name" value="u8id"></OBJECT>
|
||||||
|
</UL>
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
@ -0,0 +1,69 @@
|
|||||||
|
[OPTIONS]
|
||||||
|
Compatibility=1.1
|
||||||
|
Full-text search=Yes
|
||||||
|
Contents file=index.hhc
|
||||||
|
Default Window=main
|
||||||
|
Default topic=index.html
|
||||||
|
Index file=index.hhk
|
||||||
|
Language=0x409 English (United States)
|
||||||
|
Title=Modbus Master and Slave for Arduino
|
||||||
|
|
||||||
|
[WINDOWS]
|
||||||
|
main="Modbus Master and Slave for Arduino","index.hhc","index.hhk","index.html","index.html",,,,,0x23520,,0x10387e,,,,,,,,0
|
||||||
|
|
||||||
|
[FILES]
|
||||||
|
_modbus_rtu_8h_source.html
|
||||||
|
_modbus_rtu_8h.html
|
||||||
|
todo.html
|
||||||
|
group__setup.html
|
||||||
|
group__loop.html
|
||||||
|
group__buffer.html
|
||||||
|
group__discrete.html
|
||||||
|
group__register.html
|
||||||
|
class_modbus.html
|
||||||
|
class_modbus-members.html
|
||||||
|
structmodbus__t.html
|
||||||
|
structmodbus__t-members.html
|
||||||
|
index.html
|
||||||
|
pages.html
|
||||||
|
modules.html
|
||||||
|
annotated.html
|
||||||
|
classes.html
|
||||||
|
functions.html
|
||||||
|
functions_func.html
|
||||||
|
functions_vars.html
|
||||||
|
files.html
|
||||||
|
globals.html
|
||||||
|
globals_vars.html
|
||||||
|
globals_enum.html
|
||||||
|
globals_eval.html
|
||||||
|
globals_defs.html
|
||||||
|
tab_a.png
|
||||||
|
tab_b.png
|
||||||
|
tab_h.png
|
||||||
|
tab_s.png
|
||||||
|
nav_h.png
|
||||||
|
nav_f.png
|
||||||
|
bc_s.png
|
||||||
|
doxygen.png
|
||||||
|
closed.png
|
||||||
|
open.png
|
||||||
|
bdwn.png
|
||||||
|
sync_on.png
|
||||||
|
sync_off.png
|
||||||
|
ftv2blank.png
|
||||||
|
ftv2doc.png
|
||||||
|
ftv2folderclosed.png
|
||||||
|
ftv2folderopen.png
|
||||||
|
ftv2ns.png
|
||||||
|
ftv2mo.png
|
||||||
|
ftv2cl.png
|
||||||
|
ftv2lastnode.png
|
||||||
|
ftv2link.png
|
||||||
|
ftv2mlastnode.png
|
||||||
|
ftv2mnode.png
|
||||||
|
ftv2node.png
|
||||||
|
ftv2plastnode.png
|
||||||
|
ftv2pnode.png
|
||||||
|
ftv2vertline.png
|
||||||
|
ftv2splitbar.png
|
@ -0,0 +1,54 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Main Page</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modbus Master and Slave for Arduino Documentation</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,63 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Modules</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li class="current"><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Modules</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all modules:</div><div class="directory">
|
||||||
|
<table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__setup.html" target="_self">Modbus Object Instantiation/Initialization</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__loop.html" target="_self">Modbus Object Management</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__buffer.html" target="_self">Modbus Buffer Management</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__discrete.html" target="_self">Modbus Function Codes for Discrete Coils/Inputs</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_4_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group__register.html" target="_self">Modbus Function Codes for Holding/Input Registers</a></td><td class="desc"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 153 B |
After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 98 B |
After Width: | Height: | Size: 123 B |
@ -0,0 +1,59 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Related Pages</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Related Pages</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
|
||||||
|
<table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="todo.html" target="_self">Todo List</a></td><td class="desc"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,69 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">modbus_t Member List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>This is the complete list of members for <a class="el" href="structmodbus__t.html">modbus_t</a>, including all inherited members.</p>
|
||||||
|
<table class="directory">
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be">au16reg</a></td><td class="entry"><a class="el" href="structmodbus__t.html">modbus_t</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a></td><td class="entry"><a class="el" href="structmodbus__t.html">modbus_t</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c">u16RegAdd</a></td><td class="entry"><a class="el" href="structmodbus__t.html">modbus_t</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc">u8fct</a></td><td class="entry"><a class="el" href="structmodbus__t.html">modbus_t</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c">u8id</a></td><td class="entry"><a class="el" href="structmodbus__t.html">modbus_t</a></td><td class="entry"></td></tr>
|
||||||
|
</table></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,166 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: modbus_t Struct Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="classes.html"><span>Class Index</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-attribs">Public Attributes</a> |
|
||||||
|
<a href="structmodbus__t-members.html">List of all members</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">modbus_t Struct Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>Master query structure: This includes all the necessary fields to make the Master generate a <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> query. A Master may keep several of these structures and send them cyclically or use them according to program needs.
|
||||||
|
<a href="structmodbus__t.html#details">More...</a></p>
|
||||||
|
|
||||||
|
<p><code>#include <<a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>></code></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||||||
|
Public Attributes</h2></td></tr>
|
||||||
|
<tr class="memitem:af78ad11f93e63022a1c279de7206358c"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmodbus__t.html#af78ad11f93e63022a1c279de7206358c">u8id</a></td></tr>
|
||||||
|
<tr class="separator:af78ad11f93e63022a1c279de7206358c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a57d1630d4548e5d50d79e206a48b09bc"><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmodbus__t.html#a57d1630d4548e5d50d79e206a48b09bc">u8fct</a></td></tr>
|
||||||
|
<tr class="separator:a57d1630d4548e5d50d79e206a48b09bc"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a224ead9ff72467696e94fba9cf06bd3c"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmodbus__t.html#a224ead9ff72467696e94fba9cf06bd3c">u16RegAdd</a></td></tr>
|
||||||
|
<tr class="separator:a224ead9ff72467696e94fba9cf06bd3c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a5b9cee9c1a9415d927543f6cf054eb43"><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmodbus__t.html#a5b9cee9c1a9415d927543f6cf054eb43">u16CoilsNo</a></td></tr>
|
||||||
|
<tr class="separator:a5b9cee9c1a9415d927543f6cf054eb43"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a36212dd6316cbffb8ea31b2a2f5ae1be"><td class="memItemLeft" align="right" valign="top">uint16_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmodbus__t.html#a36212dd6316cbffb8ea31b2a2f5ae1be">au16reg</a></td></tr>
|
||||||
|
<tr class="separator:a36212dd6316cbffb8ea31b2a2f5ae1be"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Master query structure: This includes all the necessary fields to make the Master generate a <a class="el" href="class_modbus.html" title="Arduino class library for communicating with Modbus devices over USB/RS232/485 (via RTU protocol)...">Modbus</a> query. A Master may keep several of these structures and send them cyclically or use them according to program needs. </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00048">48</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
</div><h2 class="groupheader">Member Data Documentation</h2>
|
||||||
|
<a class="anchor" id="a36212dd6316cbffb8ea31b2a2f5ae1be"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint16_t* modbus_t::au16reg</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Pointer to memory image in master </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00053">53</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a5b9cee9c1a9415d927543f6cf054eb43"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint16_t modbus_t::u16CoilsNo</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Number of coils or registers to access </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00052">52</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a224ead9ff72467696e94fba9cf06bd3c"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint16_t modbus_t::u16RegAdd</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Address of the first register to access at slave/s </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00051">51</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a57d1630d4548e5d50d79e206a48b09bc"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint8_t modbus_t::u8fct</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Function code: 1, 2, 3, 4, 5, 6, 15 or 16 </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00050">50</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="af78ad11f93e63022a1c279de7206358c"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">uint8_t modbus_t::u8id</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
<p>Slave address between 1 and 247. 0 means broadcast </p>
|
||||||
|
|
||||||
|
<p>Definition at line <a class="el" href="_modbus_rtu_8h_source.html#l00049">49</a> of file <a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this struct was generated from the following file:<ul>
|
||||||
|
<li><a class="el" href="_modbus_rtu_8h_source.html">ModbusRtu.h</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 853 B |
After Width: | Height: | Size: 845 B |
After Width: | Height: | Size: 142 B |
After Width: | Height: | Size: 169 B |
After Width: | Height: | Size: 177 B |
After Width: | Height: | Size: 184 B |
@ -0,0 +1,60 @@
|
|||||||
|
.tabs, .tabs2, .tabs3 {
|
||||||
|
background-image: url('tab_b.png');
|
||||||
|
width: 100%;
|
||||||
|
z-index: 101;
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs2 {
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
.tabs3 {
|
||||||
|
font-size: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist li {
|
||||||
|
float: left;
|
||||||
|
display: table-cell;
|
||||||
|
background-image: url('tab_b.png');
|
||||||
|
line-height: 36px;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist a {
|
||||||
|
display: block;
|
||||||
|
padding: 0 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-image:url('tab_s.png');
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:right;
|
||||||
|
color: #283A5D;
|
||||||
|
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabs3 .tablist a {
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist a:hover {
|
||||||
|
background-image: url('tab_h.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tablist li.current a {
|
||||||
|
background-image: url('tab_a.png');
|
||||||
|
background-repeat:repeat-x;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.4"/>
|
||||||
|
<title>Modbus Master and Slave for Arduino: Todo List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Modbus Master and Slave for Arduino
|
||||||
|
 <span id="projectnumber">1.2</span>
|
||||||
|
</div>
|
||||||
|
<div id="projectbrief">Arduino library for implementing a Modbus Master or Slave through Serial port</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.4 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Todo List </div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><dl class="reflist">
|
||||||
|
<dt><a class="anchor" id="_todo000001"></a>Member <a class="el" href="group__loop.html#ga19398cabed57b6d085d014af6c149f54">Modbus::query</a> (<a class="el" href="structmodbus__t.html" title="Master query structure: This includes all the necessary fields to make the Master generate a Modbus q...">modbus_t</a> telegram)</dt>
|
||||||
|
<dd>finish function 15 </dd>
|
||||||
|
</dl>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.4
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,21 @@
|
|||||||
|
all: refman.pdf
|
||||||
|
|
||||||
|
pdf: refman.pdf
|
||||||
|
|
||||||
|
refman.pdf: clean refman.tex
|
||||||
|
pdflatex refman
|
||||||
|
makeindex refman.idx
|
||||||
|
pdflatex refman
|
||||||
|
latex_count=5 ; \
|
||||||
|
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
|
||||||
|
do \
|
||||||
|
echo "Rerunning latex...." ;\
|
||||||
|
pdflatex refman ;\
|
||||||
|
latex_count=`expr $$latex_count - 1` ;\
|
||||||
|
done
|
||||||
|
makeindex refman.idx
|
||||||
|
pdflatex refman
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
|
@ -0,0 +1,291 @@
|
|||||||
|
\hypertarget{_modbus_rtu_8h}{\section{Modbus\-Rtu.\-h File Reference}
|
||||||
|
\label{_modbus_rtu_8h}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}
|
||||||
|
}
|
||||||
|
\subsection*{Classes}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
struct \hyperlink{structmodbus__t}{modbus\-\_\-t}
|
||||||
|
\begin{DoxyCompactList}\small\item\em Master query structure\-: This includes all the necessary fields to make the Master generate a \hyperlink{class_modbus}{Modbus} query. A Master may keep several of these structures and send them cyclically or use them according to program needs. \end{DoxyCompactList}\item
|
||||||
|
class \hyperlink{class_modbus}{Modbus}
|
||||||
|
\begin{DoxyCompactList}\small\item\em Arduino class library for communicating with \hyperlink{class_modbus}{Modbus} devices over U\-S\-B/\-R\-S232/485 (via R\-T\-U protocol). \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||||
|
\subsection*{Macros}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
\#define \hyperlink{_modbus_rtu_8h_ac5a7c6ee8dea0ccb09dfc611bd08a0ac}{T35}~5
|
||||||
|
\item
|
||||||
|
\#define \hyperlink{_modbus_rtu_8h_a1d5dab30b404fab91608086105afc78c}{M\-A\-X\-\_\-\-B\-U\-F\-F\-E\-R}~64
|
||||||
|
\begin{DoxyCompactList}\small\item\em maximum size for the communication buffer in bytes \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||||
|
\subsection*{Enumerations}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
enum \{ \hyperlink{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b}{R\-E\-S\-P\-O\-N\-S\-E\-\_\-\-S\-I\-Z\-E} = 6,
|
||||||
|
\hyperlink{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05}{E\-X\-C\-E\-P\-T\-I\-O\-N\-\_\-\-S\-I\-Z\-E} = 3,
|
||||||
|
\hyperlink{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332}{C\-H\-E\-C\-K\-S\-U\-M\-\_\-\-S\-I\-Z\-E} = 2
|
||||||
|
\}
|
||||||
|
\item
|
||||||
|
enum \hyperlink{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230ba}{M\-E\-S\-S\-A\-G\-E} \{ \\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68}{I\-D} = 0,
|
||||||
|
\hyperlink{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af}{F\-U\-N\-C},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c}{A\-D\-D\-\_\-\-H\-I},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c}{A\-D\-D\-\_\-\-L\-O},
|
||||||
|
\\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6}{N\-B\-\_\-\-H\-I},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f}{N\-B\-\_\-\-L\-O},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892}{B\-Y\-T\-E\-\_\-\-C\-N\-T}
|
||||||
|
\}
|
||||||
|
\begin{DoxyCompactList}\small\item\em Indexes to telegram frame positions. \end{DoxyCompactList}\item
|
||||||
|
enum \hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6}{M\-B\-\_\-\-F\-C} \{ \\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9}{M\-B\-\_\-\-F\-C\-\_\-\-N\-O\-N\-E} = 0,
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0}{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-C\-O\-I\-L\-S} = 1,
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e}{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-D\-I\-S\-C\-R\-E\-T\-E\-\_\-\-I\-N\-P\-U\-T} = 2,
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f}{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S} = 3,
|
||||||
|
\\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07}{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-I\-N\-P\-U\-T\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R} = 4,
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7}{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-C\-O\-I\-L} = 5,
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f}{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R} = 6,
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304}{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-C\-O\-I\-L\-S} = 15,
|
||||||
|
\\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb}{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S} = 16
|
||||||
|
\}
|
||||||
|
\begin{DoxyCompactList}\small\item\em \hyperlink{class_modbus}{Modbus} function codes summary. These are the implement function codes either for Master or for Slave. \end{DoxyCompactList}\item
|
||||||
|
enum \hyperlink{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982}{C\-O\-M\-\_\-\-S\-T\-A\-T\-E\-S} \{ \hyperlink{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20}{C\-O\-M\-\_\-\-I\-D\-L\-E} = 0,
|
||||||
|
\hyperlink{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b}{C\-O\-M\-\_\-\-W\-A\-I\-T\-I\-N\-G} = 1
|
||||||
|
\}
|
||||||
|
\item
|
||||||
|
enum \hyperlink{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1}{E\-R\-R\-\_\-\-L\-I\-S\-T} \{ \\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04}{E\-R\-R\-\_\-\-N\-O\-T\-\_\-\-M\-A\-S\-T\-E\-R} = -\/1,
|
||||||
|
\hyperlink{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901}{E\-R\-R\-\_\-\-P\-O\-L\-L\-I\-N\-G} = -\/2,
|
||||||
|
\hyperlink{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b}{E\-R\-R\-\_\-\-B\-U\-F\-F\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W} = -\/3,
|
||||||
|
\hyperlink{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0}{E\-R\-R\-\_\-\-B\-A\-D\-\_\-\-C\-R\-C} = -\/4,
|
||||||
|
\\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a}{E\-R\-R\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N} = -\/5
|
||||||
|
\}
|
||||||
|
\item
|
||||||
|
enum \{ \\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae}{N\-O\-\_\-\-R\-E\-P\-L\-Y} = 255,
|
||||||
|
\hyperlink{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2}{E\-X\-C\-\_\-\-F\-U\-N\-C\-\_\-\-C\-O\-D\-E} = 1,
|
||||||
|
\hyperlink{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280}{E\-X\-C\-\_\-\-A\-D\-D\-R\-\_\-\-R\-A\-N\-G\-E} = 2,
|
||||||
|
\hyperlink{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920}{E\-X\-C\-\_\-\-R\-E\-G\-S\-\_\-\-Q\-U\-A\-N\-T} = 3,
|
||||||
|
\\*
|
||||||
|
\hyperlink{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89}{E\-X\-C\-\_\-\-E\-X\-E\-C\-U\-T\-E} = 4
|
||||||
|
\}
|
||||||
|
\end{DoxyCompactItemize}
|
||||||
|
\subsection*{Variables}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
const unsigned char \hyperlink{_modbus_rtu_8h_aede21762dc4aa80a14df8dd40ef105f0}{fctsupported} \mbox{[}$\,$\mbox{]}
|
||||||
|
\end{DoxyCompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Detailed Description}
|
||||||
|
\begin{DoxyVersion}{Version}
|
||||||
|
1.\-2
|
||||||
|
\end{DoxyVersion}
|
||||||
|
\begin{DoxyDate}{Date}
|
||||||
|
2014.\-09.\-09
|
||||||
|
\end{DoxyDate}
|
||||||
|
\begin{DoxyAuthor}{Author}
|
||||||
|
Samuel Marco i Armengol \href{mailto:sammarcoarmengol@gmail.com}{\tt sammarcoarmengol@gmail.\-com}
|
||||||
|
\end{DoxyAuthor}
|
||||||
|
Arduino library for communicating with \hyperlink{class_modbus}{Modbus} devices over R\-S232/\-U\-S\-B/485 via R\-T\-U protocol.
|
||||||
|
|
||||||
|
Further information\-: \href{http://modbus.org/}{\tt http\-://modbus.\-org/} \href{http://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf}{\tt http\-://modbus.\-org/docs/\-Modbus\-\_\-over\-\_\-serial\-\_\-line\-\_\-\-V1\-\_\-02.\-pdf}
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or modify it under the terms of the G\-N\-U Lesser General Public License as published by the Free Software Foundation; version 2.\-1 of the License.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful, but W\-I\-T\-H\-O\-U\-T A\-N\-Y W\-A\-R\-R\-A\-N\-T\-Y; without even the implied warranty of M\-E\-R\-C\-H\-A\-N\-T\-A\-B\-I\-L\-I\-T\-Y or F\-I\-T\-N\-E\-S\-S F\-O\-R A P\-A\-R\-T\-I\-C\-U\-L\-A\-R P\-U\-R\-P\-O\-S\-E. See the G\-N\-U Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the G\-N\-U Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, M\-A 02110-\/1301 U\-S\-A
|
||||||
|
|
||||||
|
Definition in file \hyperlink{_modbus_rtu_8h_source}{Modbus\-Rtu.\-h}.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Macro Definition Documentation}
|
||||||
|
\hypertarget{_modbus_rtu_8h_a1d5dab30b404fab91608086105afc78c}{\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-A\-X\-\_\-\-B\-U\-F\-F\-E\-R@{M\-A\-X\-\_\-\-B\-U\-F\-F\-E\-R}}
|
||||||
|
\index{M\-A\-X\-\_\-\-B\-U\-F\-F\-E\-R@{M\-A\-X\-\_\-\-B\-U\-F\-F\-E\-R}!ModbusRtu.h@{Modbus\-Rtu.\-h}}
|
||||||
|
\subsubsection[{M\-A\-X\-\_\-\-B\-U\-F\-F\-E\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\-A\-X\-\_\-\-B\-U\-F\-F\-E\-R~64}}\label{_modbus_rtu_8h_a1d5dab30b404fab91608086105afc78c}
|
||||||
|
|
||||||
|
|
||||||
|
maximum size for the communication buffer in bytes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 133 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{_modbus_rtu_8h_ac5a7c6ee8dea0ccb09dfc611bd08a0ac}{\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!T35@{T35}}
|
||||||
|
\index{T35@{T35}!ModbusRtu.h@{Modbus\-Rtu.\-h}}
|
||||||
|
\subsubsection[{T35}]{\setlength{\rightskip}{0pt plus 5cm}\#define T35~5}}\label{_modbus_rtu_8h_ac5a7c6ee8dea0ccb09dfc611bd08a0ac}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 132 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Enumeration Type Documentation}
|
||||||
|
\hypertarget{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55b}{\subsubsection[{anonymous enum}]{\setlength{\rightskip}{0pt plus 5cm}anonymous enum}}\label{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55b}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Enumerator]\par
|
||||||
|
\begin{description}
|
||||||
|
\index{R\-E\-S\-P\-O\-N\-S\-E\-\_\-\-S\-I\-Z\-E@{R\-E\-S\-P\-O\-N\-S\-E\-\_\-\-S\-I\-Z\-E}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!R\-E\-S\-P\-O\-N\-S\-E\-\_\-\-S\-I\-Z\-E@{R\-E\-S\-P\-O\-N\-S\-E\-\_\-\-S\-I\-Z\-E}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b}{R\-E\-S\-P\-O\-N\-S\-E\-\_\-\-S\-I\-Z\-E}\label{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55bad1acb34c5312efc75c4a007eae09433b}
|
||||||
|
}]\index{E\-X\-C\-E\-P\-T\-I\-O\-N\-\_\-\-S\-I\-Z\-E@{E\-X\-C\-E\-P\-T\-I\-O\-N\-\_\-\-S\-I\-Z\-E}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-X\-C\-E\-P\-T\-I\-O\-N\-\_\-\-S\-I\-Z\-E@{E\-X\-C\-E\-P\-T\-I\-O\-N\-\_\-\-S\-I\-Z\-E}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05}{E\-X\-C\-E\-P\-T\-I\-O\-N\-\_\-\-S\-I\-Z\-E}\label{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55ba4bf89c487b3f7e29d56eb3fe657d6c05}
|
||||||
|
}]\index{C\-H\-E\-C\-K\-S\-U\-M\-\_\-\-S\-I\-Z\-E@{C\-H\-E\-C\-K\-S\-U\-M\-\_\-\-S\-I\-Z\-E}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!C\-H\-E\-C\-K\-S\-U\-M\-\_\-\-S\-I\-Z\-E@{C\-H\-E\-C\-K\-S\-U\-M\-\_\-\-S\-I\-Z\-E}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332}{C\-H\-E\-C\-K\-S\-U\-M\-\_\-\-S\-I\-Z\-E}\label{_modbus_rtu_8h_a06fc87d81c62e9abb8790b6e5713c55baefcc8f6d8d181aaef9d131a357b1a332}
|
||||||
|
}]\end{description}
|
||||||
|
\end{Desc}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 57 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7}{\subsubsection[{anonymous enum}]{\setlength{\rightskip}{0pt plus 5cm}anonymous enum}}\label{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Enumerator]\par
|
||||||
|
\begin{description}
|
||||||
|
\index{N\-O\-\_\-\-R\-E\-P\-L\-Y@{N\-O\-\_\-\-R\-E\-P\-L\-Y}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!N\-O\-\_\-\-R\-E\-P\-L\-Y@{N\-O\-\_\-\-R\-E\-P\-L\-Y}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae}{N\-O\-\_\-\-R\-E\-P\-L\-Y}\label{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7aa04c58a8cc2e7777f6f781e8d51524ae}
|
||||||
|
}]\index{E\-X\-C\-\_\-\-F\-U\-N\-C\-\_\-\-C\-O\-D\-E@{E\-X\-C\-\_\-\-F\-U\-N\-C\-\_\-\-C\-O\-D\-E}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-X\-C\-\_\-\-F\-U\-N\-C\-\_\-\-C\-O\-D\-E@{E\-X\-C\-\_\-\-F\-U\-N\-C\-\_\-\-C\-O\-D\-E}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2}{E\-X\-C\-\_\-\-F\-U\-N\-C\-\_\-\-C\-O\-D\-E}\label{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7ad82ec66545269170f1401af6e418e8f2}
|
||||||
|
}]\index{E\-X\-C\-\_\-\-A\-D\-D\-R\-\_\-\-R\-A\-N\-G\-E@{E\-X\-C\-\_\-\-A\-D\-D\-R\-\_\-\-R\-A\-N\-G\-E}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-X\-C\-\_\-\-A\-D\-D\-R\-\_\-\-R\-A\-N\-G\-E@{E\-X\-C\-\_\-\-A\-D\-D\-R\-\_\-\-R\-A\-N\-G\-E}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280}{E\-X\-C\-\_\-\-A\-D\-D\-R\-\_\-\-R\-A\-N\-G\-E}\label{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7ad3899b13b2069997f5db7f18e9978280}
|
||||||
|
}]\index{E\-X\-C\-\_\-\-R\-E\-G\-S\-\_\-\-Q\-U\-A\-N\-T@{E\-X\-C\-\_\-\-R\-E\-G\-S\-\_\-\-Q\-U\-A\-N\-T}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-X\-C\-\_\-\-R\-E\-G\-S\-\_\-\-Q\-U\-A\-N\-T@{E\-X\-C\-\_\-\-R\-E\-G\-S\-\_\-\-Q\-U\-A\-N\-T}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920}{E\-X\-C\-\_\-\-R\-E\-G\-S\-\_\-\-Q\-U\-A\-N\-T}\label{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7a062e13fdfefabb1d620506a526be3920}
|
||||||
|
}]\index{E\-X\-C\-\_\-\-E\-X\-E\-C\-U\-T\-E@{E\-X\-C\-\_\-\-E\-X\-E\-C\-U\-T\-E}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-X\-C\-\_\-\-E\-X\-E\-C\-U\-T\-E@{E\-X\-C\-\_\-\-E\-X\-E\-C\-U\-T\-E}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89}{E\-X\-C\-\_\-\-E\-X\-E\-C\-U\-T\-E}\label{_modbus_rtu_8h_adf764cbdea00d65edcd07bb9953ad2b7a00e93edc9146c12fd21490d1a0d15f89}
|
||||||
|
}]\end{description}
|
||||||
|
\end{Desc}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 113 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982}{\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!C\-O\-M\-\_\-\-S\-T\-A\-T\-E\-S@{C\-O\-M\-\_\-\-S\-T\-A\-T\-E\-S}}
|
||||||
|
\index{C\-O\-M\-\_\-\-S\-T\-A\-T\-E\-S@{C\-O\-M\-\_\-\-S\-T\-A\-T\-E\-S}!ModbusRtu.h@{Modbus\-Rtu.\-h}}
|
||||||
|
\subsubsection[{C\-O\-M\-\_\-\-S\-T\-A\-T\-E\-S}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf C\-O\-M\-\_\-\-S\-T\-A\-T\-E\-S}}}\label{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Enumerator]\par
|
||||||
|
\begin{description}
|
||||||
|
\index{C\-O\-M\-\_\-\-I\-D\-L\-E@{C\-O\-M\-\_\-\-I\-D\-L\-E}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!C\-O\-M\-\_\-\-I\-D\-L\-E@{C\-O\-M\-\_\-\-I\-D\-L\-E}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20}{C\-O\-M\-\_\-\-I\-D\-L\-E}\label{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982a3e262bfb13968e43ab8ea55a03ba8b20}
|
||||||
|
}]\index{C\-O\-M\-\_\-\-W\-A\-I\-T\-I\-N\-G@{C\-O\-M\-\_\-\-W\-A\-I\-T\-I\-N\-G}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!C\-O\-M\-\_\-\-W\-A\-I\-T\-I\-N\-G@{C\-O\-M\-\_\-\-W\-A\-I\-T\-I\-N\-G}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b}{C\-O\-M\-\_\-\-W\-A\-I\-T\-I\-N\-G}\label{_modbus_rtu_8h_a4f165b5bd333856a84635b2594013982ad70b4cc84cc2f21d8b46f73f186dae6b}
|
||||||
|
}]\end{description}
|
||||||
|
\end{Desc}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 99 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1}{\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-R\-R\-\_\-\-L\-I\-S\-T@{E\-R\-R\-\_\-\-L\-I\-S\-T}}
|
||||||
|
\index{E\-R\-R\-\_\-\-L\-I\-S\-T@{E\-R\-R\-\_\-\-L\-I\-S\-T}!ModbusRtu.h@{Modbus\-Rtu.\-h}}
|
||||||
|
\subsubsection[{E\-R\-R\-\_\-\-L\-I\-S\-T}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf E\-R\-R\-\_\-\-L\-I\-S\-T}}}\label{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Enumerator]\par
|
||||||
|
\begin{description}
|
||||||
|
\index{E\-R\-R\-\_\-\-N\-O\-T\-\_\-\-M\-A\-S\-T\-E\-R@{E\-R\-R\-\_\-\-N\-O\-T\-\_\-\-M\-A\-S\-T\-E\-R}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-R\-R\-\_\-\-N\-O\-T\-\_\-\-M\-A\-S\-T\-E\-R@{E\-R\-R\-\_\-\-N\-O\-T\-\_\-\-M\-A\-S\-T\-E\-R}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04}{E\-R\-R\-\_\-\-N\-O\-T\-\_\-\-M\-A\-S\-T\-E\-R}\label{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a12a9ad0aaae512b253a9da9ea19f2b04}
|
||||||
|
}]\index{E\-R\-R\-\_\-\-P\-O\-L\-L\-I\-N\-G@{E\-R\-R\-\_\-\-P\-O\-L\-L\-I\-N\-G}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-R\-R\-\_\-\-P\-O\-L\-L\-I\-N\-G@{E\-R\-R\-\_\-\-P\-O\-L\-L\-I\-N\-G}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901}{E\-R\-R\-\_\-\-P\-O\-L\-L\-I\-N\-G}\label{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a7d2c6c1b333f4b566c613e52b62ab901}
|
||||||
|
}]\index{E\-R\-R\-\_\-\-B\-U\-F\-F\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W@{E\-R\-R\-\_\-\-B\-U\-F\-F\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-R\-R\-\_\-\-B\-U\-F\-F\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W@{E\-R\-R\-\_\-\-B\-U\-F\-F\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b}{E\-R\-R\-\_\-\-B\-U\-F\-F\-\_\-\-O\-V\-E\-R\-F\-L\-O\-W}\label{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1aafd42890a0ce129e23977fc1aca4044b}
|
||||||
|
}]\index{E\-R\-R\-\_\-\-B\-A\-D\-\_\-\-C\-R\-C@{E\-R\-R\-\_\-\-B\-A\-D\-\_\-\-C\-R\-C}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-R\-R\-\_\-\-B\-A\-D\-\_\-\-C\-R\-C@{E\-R\-R\-\_\-\-B\-A\-D\-\_\-\-C\-R\-C}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0}{E\-R\-R\-\_\-\-B\-A\-D\-\_\-\-C\-R\-C}\label{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1a918477ee2e5e31f01b03a83f472b63b0}
|
||||||
|
}]\index{E\-R\-R\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N@{E\-R\-R\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!E\-R\-R\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N@{E\-R\-R\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a}{E\-R\-R\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N}\label{_modbus_rtu_8h_a792f00821300f1c7c768db990db646c1ab4be9b5f7e8905633a3c045157f1dd0a}
|
||||||
|
}]\end{description}
|
||||||
|
\end{Desc}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 105 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6}{\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C@{M\-B\-\_\-\-F\-C}}
|
||||||
|
\index{M\-B\-\_\-\-F\-C@{M\-B\-\_\-\-F\-C}!ModbusRtu.h@{Modbus\-Rtu.\-h}}
|
||||||
|
\subsubsection[{M\-B\-\_\-\-F\-C}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf M\-B\-\_\-\-F\-C}}}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6}
|
||||||
|
|
||||||
|
|
||||||
|
\hyperlink{class_modbus}{Modbus} function codes summary. These are the implement function codes either for Master or for Slave.
|
||||||
|
|
||||||
|
\begin{DoxySeeAlso}{See Also}
|
||||||
|
also \hyperlink{_modbus_rtu_8h_aede21762dc4aa80a14df8dd40ef105f0}{fctsupported}
|
||||||
|
|
||||||
|
also \hyperlink{structmodbus__t}{modbus\-\_\-t}
|
||||||
|
\end{DoxySeeAlso}
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Enumerator]\par
|
||||||
|
\begin{description}
|
||||||
|
\index{M\-B\-\_\-\-F\-C\-\_\-\-N\-O\-N\-E@{M\-B\-\_\-\-F\-C\-\_\-\-N\-O\-N\-E}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-N\-O\-N\-E@{M\-B\-\_\-\-F\-C\-\_\-\-N\-O\-N\-E}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9}{M\-B\-\_\-\-F\-C\-\_\-\-N\-O\-N\-E}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a513dc96919a5d5c75f129c1b5b2afea9}
|
||||||
|
}]null operator \index{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-C\-O\-I\-L\-S@{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-C\-O\-I\-L\-S}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-C\-O\-I\-L\-S@{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-C\-O\-I\-L\-S}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0}{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-C\-O\-I\-L\-S}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0}
|
||||||
|
}]F\-C\-T=1 -\/$>$ read coils or digital outputs \index{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-D\-I\-S\-C\-R\-E\-T\-E\-\_\-\-I\-N\-P\-U\-T@{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-D\-I\-S\-C\-R\-E\-T\-E\-\_\-\-I\-N\-P\-U\-T}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-D\-I\-S\-C\-R\-E\-T\-E\-\_\-\-I\-N\-P\-U\-T@{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-D\-I\-S\-C\-R\-E\-T\-E\-\_\-\-I\-N\-P\-U\-T}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e}{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-D\-I\-S\-C\-R\-E\-T\-E\-\_\-\-I\-N\-P\-U\-T}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e}
|
||||||
|
}]F\-C\-T=2 -\/$>$ read digital inputs \index{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S@{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S@{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f}{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f}
|
||||||
|
}]F\-C\-T=3 -\/$>$ read registers or analog outputs \index{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-I\-N\-P\-U\-T\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R@{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-I\-N\-P\-U\-T\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-I\-N\-P\-U\-T\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R@{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-I\-N\-P\-U\-T\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07}{M\-B\-\_\-\-F\-C\-\_\-\-R\-E\-A\-D\-\_\-\-I\-N\-P\-U\-T\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07}
|
||||||
|
}]F\-C\-T=4 -\/$>$ read analog inputs \index{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-C\-O\-I\-L@{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-C\-O\-I\-L}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-C\-O\-I\-L@{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-C\-O\-I\-L}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7}{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-C\-O\-I\-L}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7}
|
||||||
|
}]F\-C\-T=5 -\/$>$ write single coil or output \index{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R@{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R@{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f}{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f}
|
||||||
|
}]F\-C\-T=6 -\/$>$ write single register \index{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-C\-O\-I\-L\-S@{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-C\-O\-I\-L\-S}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-C\-O\-I\-L\-S@{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-C\-O\-I\-L\-S}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304}{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-C\-O\-I\-L\-S}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304}
|
||||||
|
}]F\-C\-T=15 -\/$>$ write multiple coils or outputs \index{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S@{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S@{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb}{M\-B\-\_\-\-F\-C\-\_\-\-W\-R\-I\-T\-E\-\_\-\-M\-U\-L\-T\-I\-P\-L\-E\-\_\-\-R\-E\-G\-I\-S\-T\-E\-R\-S}\label{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb}
|
||||||
|
}]F\-C\-T=16 -\/$>$ write multiple registers \end{description}
|
||||||
|
\end{Desc}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 87 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230ba}{\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!M\-E\-S\-S\-A\-G\-E@{M\-E\-S\-S\-A\-G\-E}}
|
||||||
|
\index{M\-E\-S\-S\-A\-G\-E@{M\-E\-S\-S\-A\-G\-E}!ModbusRtu.h@{Modbus\-Rtu.\-h}}
|
||||||
|
\subsubsection[{M\-E\-S\-S\-A\-G\-E}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf M\-E\-S\-S\-A\-G\-E}}}\label{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230ba}
|
||||||
|
|
||||||
|
|
||||||
|
Indexes to telegram frame positions.
|
||||||
|
|
||||||
|
\begin{Desc}
|
||||||
|
\item[Enumerator]\par
|
||||||
|
\begin{description}
|
||||||
|
\index{I\-D@{I\-D}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!I\-D@{I\-D}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68}{I\-D}\label{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa001479a58fb44c39a29b20d565081a68}
|
||||||
|
}]I\-D field. \index{F\-U\-N\-C@{F\-U\-N\-C}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!F\-U\-N\-C@{F\-U\-N\-C}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af}{F\-U\-N\-C}\label{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa389e03ce61ac2d93fd54069187ab58af}
|
||||||
|
}]Function code position. \index{A\-D\-D\-\_\-\-H\-I@{A\-D\-D\-\_\-\-H\-I}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!A\-D\-D\-\_\-\-H\-I@{A\-D\-D\-\_\-\-H\-I}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c}{A\-D\-D\-\_\-\-H\-I}\label{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baad19e7653c9276b91fb590af017de192c}
|
||||||
|
}]Address high byte. \index{A\-D\-D\-\_\-\-L\-O@{A\-D\-D\-\_\-\-L\-O}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!A\-D\-D\-\_\-\-L\-O@{A\-D\-D\-\_\-\-L\-O}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c}{A\-D\-D\-\_\-\-L\-O}\label{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa2cbdff2e20e58233096845bf42acc97c}
|
||||||
|
}]Address low byte. \index{N\-B\-\_\-\-H\-I@{N\-B\-\_\-\-H\-I}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!N\-B\-\_\-\-H\-I@{N\-B\-\_\-\-H\-I}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6}{N\-B\-\_\-\-H\-I}\label{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa61f961bb4614db2fc51125331f79a9d6}
|
||||||
|
}]Number of coils or registers high byte. \index{N\-B\-\_\-\-L\-O@{N\-B\-\_\-\-L\-O}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!N\-B\-\_\-\-L\-O@{N\-B\-\_\-\-L\-O}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f}{N\-B\-\_\-\-L\-O}\label{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baa22b2a3a58501a5bbe69ef569aa7fb30f}
|
||||||
|
}]Number of coils or registers low byte. \index{B\-Y\-T\-E\-\_\-\-C\-N\-T@{B\-Y\-T\-E\-\_\-\-C\-N\-T}!Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}}\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!B\-Y\-T\-E\-\_\-\-C\-N\-T@{B\-Y\-T\-E\-\_\-\-C\-N\-T}}\item[{\em
|
||||||
|
\hypertarget{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892}{B\-Y\-T\-E\-\_\-\-C\-N\-T}\label{_modbus_rtu_8h_aa9996e8b4648c78acf6cde2401e230baaf84036e1dd68a2e160c3394fc083e892}
|
||||||
|
}]byte counter \end{description}
|
||||||
|
\end{Desc}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 68 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Variable Documentation}
|
||||||
|
\hypertarget{_modbus_rtu_8h_aede21762dc4aa80a14df8dd40ef105f0}{\index{Modbus\-Rtu.\-h@{Modbus\-Rtu.\-h}!fctsupported@{fctsupported}}
|
||||||
|
\index{fctsupported@{fctsupported}!ModbusRtu.h@{Modbus\-Rtu.\-h}}
|
||||||
|
\subsubsection[{fctsupported}]{\setlength{\rightskip}{0pt plus 5cm}const unsigned char fctsupported\mbox{[}$\,$\mbox{]}}}\label{_modbus_rtu_8h_aede21762dc4aa80a14df8dd40ef105f0}
|
||||||
|
{\bfseries Initial value\-:}
|
||||||
|
\begin{DoxyCode}
|
||||||
|
= \{
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a0b2250567e3e0e43522a64cdce637ce0}{MB\_FC\_READ\_COILS},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6ac2b52680d6c0bbe3d3e0e9ec7a88fc2e}{MB\_FC\_READ\_DISCRETE\_INPUT},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a0c6066cf0a67a1bb349da35ef31e4e8f}{MB\_FC\_READ\_REGISTERS},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a9b2d4a3fb96e4af559d5330ad0c01c07}{MB\_FC\_READ\_INPUT\_REGISTER},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a90126d6c25fb5711c103e819ccda01c7}{MB\_FC\_WRITE\_COIL},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a74e1ffd48177f0e7e33c2c968a1bd86f}{MB\_FC\_WRITE\_REGISTER},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6ac69c42d25cbc0ef303de57bd3d0e2304}{MB\_FC\_WRITE\_MULTIPLE\_COILS},
|
||||||
|
\hyperlink{_modbus_rtu_8h_aff1341ea5077cc6097a0d7db89be4cf6a2ccdcde4f07865ffb47fbea0a01026bb}{MB\_FC\_WRITE\_MULTIPLE\_REGISTERS}
|
||||||
|
\}
|
||||||
|
\end{DoxyCode}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 121 of file Modbus\-Rtu.\-h.
|
||||||
|
|
@ -0,0 +1,5 @@
|
|||||||
|
\section{Class List}
|
||||||
|
Here are the classes, structs, unions and interfaces with brief descriptions\-:\begin{DoxyCompactList}
|
||||||
|
\item\contentsline{section}{\hyperlink{class_modbus}{Modbus} \\*Arduino class library for communicating with \hyperlink{class_modbus}{Modbus} devices over U\-S\-B/\-R\-S232/485 (via R\-T\-U protocol) }{\pageref{class_modbus}}{}
|
||||||
|
\item\contentsline{section}{\hyperlink{structmodbus__t}{modbus\-\_\-t} \\*Master query structure\-: This includes all the necessary fields to make the Master generate a \hyperlink{class_modbus}{Modbus} query. A Master may keep several of these structures and send them cyclically or use them according to program needs }{\pageref{structmodbus__t}}{}
|
||||||
|
\end{DoxyCompactList}
|
@ -0,0 +1,129 @@
|
|||||||
|
\hypertarget{class_modbus}{\section{Modbus Class Reference}
|
||||||
|
\label{class_modbus}\index{Modbus@{Modbus}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Arduino class library for communicating with \hyperlink{class_modbus}{Modbus} devices over U\-S\-B/\-R\-S232/485 (via R\-T\-U protocol).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{\ttfamily \#include $<$Modbus\-Rtu.\-h$>$}
|
||||||
|
|
||||||
|
\subsection*{Public Member Functions}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
\hyperlink{group__setup_ga101809cdd4734537bab58dc315a840b4}{Modbus} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em Default Constructor for Master through Serial. \end{DoxyCompactList}\item
|
||||||
|
\hyperlink{class_modbus_afbbf7c81565d8e1ea1cd5890a96e7507}{Modbus} (uint8\-\_\-t u8id, uint8\-\_\-t u8serno)
|
||||||
|
\item
|
||||||
|
\hyperlink{class_modbus_a5e23a7b669d0c2d5be1c0054c7c54dca}{Modbus} (uint8\-\_\-t u8id, uint8\-\_\-t u8serno, uint8\-\_\-t u8txenpin)
|
||||||
|
\item
|
||||||
|
void \hyperlink{group__setup_ga475a4fa0fac491307b10c4529ad6d2a0}{begin} (long u32speed)
|
||||||
|
\begin{DoxyCompactList}\small\item\em Initialize class object. \end{DoxyCompactList}\item
|
||||||
|
void \hyperlink{class_modbus_a4f9673a3d113c49af69cb87b030ef099}{begin} ()
|
||||||
|
\item
|
||||||
|
void \hyperlink{group__setup_gaf828190ebe24efb1b3b1957429f3872e}{set\-Time\-Out} (uint16\-\_\-t u16timeout)
|
||||||
|
\begin{DoxyCompactList}\small\item\em write communication watch-\/dog timer \end{DoxyCompactList}\item
|
||||||
|
uint16\-\_\-t \hyperlink{class_modbus_ac860024db3117a2ef907d0325b2fb7a1}{get\-Time\-Out} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em get communication watch-\/dog timer value \end{DoxyCompactList}\item
|
||||||
|
boolean \hyperlink{group__loop_gaf6dd413191ed8a833022046873e0a063}{get\-Time\-Out\-State} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em get communication watch-\/dog timer state \end{DoxyCompactList}\item
|
||||||
|
int8\-\_\-t \hyperlink{group__loop_ga19398cabed57b6d085d014af6c149f54}{query} (\hyperlink{structmodbus__t}{modbus\-\_\-t} telegram)
|
||||||
|
\begin{DoxyCompactList}\small\item\em only for master \end{DoxyCompactList}\item
|
||||||
|
int8\-\_\-t \hyperlink{group__loop_ga53bde78490c1cd8e3c070a676bdcfb0d}{poll} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em cyclic poll for master \end{DoxyCompactList}\item
|
||||||
|
int8\-\_\-t \hyperlink{group__loop_gab3ef20562fc8cee14fc85f7e276890b5}{poll} (uint16\-\_\-t $\ast$regs, uint8\-\_\-t u8size)
|
||||||
|
\begin{DoxyCompactList}\small\item\em cyclic poll for slave \end{DoxyCompactList}\item
|
||||||
|
uint16\-\_\-t \hyperlink{group__buffer_ga4fa6ede8df85b7cc70b1282b9547378a}{get\-In\-Cnt} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em number of incoming messages \end{DoxyCompactList}\item
|
||||||
|
uint16\-\_\-t \hyperlink{group__buffer_ga6f831ecaf3678c27dafb663a28bf81f0}{get\-Out\-Cnt} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em number of outcoming messages \end{DoxyCompactList}\item
|
||||||
|
uint16\-\_\-t \hyperlink{group__buffer_ga6883c7f3ff12f084ed56d559d4e06ed0}{get\-Err\-Cnt} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em error counter \end{DoxyCompactList}\item
|
||||||
|
uint8\-\_\-t \hyperlink{group__setup_ga6449894306ff8cc5d4caff09b1b0d1ce}{get\-I\-D} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em get slave I\-D between 1 and 247 \end{DoxyCompactList}\item
|
||||||
|
uint8\-\_\-t \hyperlink{group__buffer_ga2f39717d957a929af488c9120488fcdc}{get\-State} ()
|
||||||
|
\item
|
||||||
|
uint8\-\_\-t \hyperlink{group__buffer_gace7f726db13adc8feeceab987b719531}{get\-Last\-Error} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em get last error message \end{DoxyCompactList}\item
|
||||||
|
void \hyperlink{group__setup_ga9bd497e97ac1777d4f0d4171078d60e0}{set\-I\-D} (uint8\-\_\-t u8id)
|
||||||
|
\begin{DoxyCompactList}\small\item\em write new I\-D for the slave \end{DoxyCompactList}\item
|
||||||
|
void \hyperlink{class_modbus_a0d80101b650344c712a085c4bb005c4c}{end} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em finish any communication and release serial communication port \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Detailed Description}
|
||||||
|
Arduino class library for communicating with \hyperlink{class_modbus}{Modbus} devices over U\-S\-B/\-R\-S232/485 (via R\-T\-U protocol).
|
||||||
|
|
||||||
|
Definition at line 141 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Constructor \& Destructor Documentation}
|
||||||
|
\hypertarget{class_modbus_afbbf7c81565d8e1ea1cd5890a96e7507}{\index{Modbus@{Modbus}!Modbus@{Modbus}}
|
||||||
|
\index{Modbus@{Modbus}!Modbus@{Modbus}}
|
||||||
|
\subsubsection[{Modbus}]{\setlength{\rightskip}{0pt plus 5cm}Modbus\-::\-Modbus (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
\item[{uint8\-\_\-t}]{u8id, }
|
||||||
|
\item[{uint8\-\_\-t}]{u8serno}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{class_modbus_afbbf7c81565d8e1ea1cd5890a96e7507}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 218 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{class_modbus_a5e23a7b669d0c2d5be1c0054c7c54dca}{\index{Modbus@{Modbus}!Modbus@{Modbus}}
|
||||||
|
\index{Modbus@{Modbus}!Modbus@{Modbus}}
|
||||||
|
\subsubsection[{Modbus}]{\setlength{\rightskip}{0pt plus 5cm}Modbus\-::\-Modbus (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
\item[{uint8\-\_\-t}]{u8id, }
|
||||||
|
\item[{uint8\-\_\-t}]{u8serno, }
|
||||||
|
\item[{uint8\-\_\-t}]{u8txenpin}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{class_modbus_a5e23a7b669d0c2d5be1c0054c7c54dca}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 234 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Member Function Documentation}
|
||||||
|
\hypertarget{class_modbus_a4f9673a3d113c49af69cb87b030ef099}{\index{Modbus@{Modbus}!begin@{begin}}
|
||||||
|
\index{begin@{begin}!Modbus@{Modbus}}
|
||||||
|
\subsubsection[{begin}]{\setlength{\rightskip}{0pt plus 5cm}void Modbus\-::begin (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{class_modbus_a4f9673a3d113c49af69cb87b030ef099}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 299 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{class_modbus_a0d80101b650344c712a085c4bb005c4c}{\index{Modbus@{Modbus}!end@{end}}
|
||||||
|
\index{end@{end}!Modbus@{Modbus}}
|
||||||
|
\subsubsection[{end}]{\setlength{\rightskip}{0pt plus 5cm}void Modbus\-::end (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{class_modbus_a0d80101b650344c712a085c4bb005c4c}
|
||||||
|
|
||||||
|
|
||||||
|
finish any communication and release serial communication port
|
||||||
|
|
||||||
|
\hypertarget{class_modbus_ac860024db3117a2ef907d0325b2fb7a1}{\index{Modbus@{Modbus}!get\-Time\-Out@{get\-Time\-Out}}
|
||||||
|
\index{get\-Time\-Out@{get\-Time\-Out}!Modbus@{Modbus}}
|
||||||
|
\subsubsection[{get\-Time\-Out}]{\setlength{\rightskip}{0pt plus 5cm}uint16\-\_\-t Modbus\-::get\-Time\-Out (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{class_modbus_ac860024db3117a2ef907d0325b2fb7a1}
|
||||||
|
|
||||||
|
|
||||||
|
get communication watch-\/dog timer value
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
\hyperlink{_modbus_rtu_8h}{Modbus\-Rtu.\-h}\end{DoxyCompactItemize}
|
@ -0,0 +1,464 @@
|
|||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{doxygen}
|
||||||
|
|
||||||
|
% Packages used by this style file
|
||||||
|
\RequirePackage{alltt}
|
||||||
|
\RequirePackage{array}
|
||||||
|
\RequirePackage{calc}
|
||||||
|
\RequirePackage{float}
|
||||||
|
\RequirePackage{ifthen}
|
||||||
|
\RequirePackage{verbatim}
|
||||||
|
\RequirePackage[table]{xcolor}
|
||||||
|
\RequirePackage{xtab}
|
||||||
|
|
||||||
|
%---------- Internal commands used in this style file ----------------
|
||||||
|
|
||||||
|
\newcommand{\ensurespace}[1]{%
|
||||||
|
\begingroup%
|
||||||
|
\setlength{\dimen@}{#1}%
|
||||||
|
\vskip\z@\@plus\dimen@%
|
||||||
|
\penalty -100\vskip\z@\@plus -\dimen@%
|
||||||
|
\vskip\dimen@%
|
||||||
|
\penalty 9999%
|
||||||
|
\vskip -\dimen@%
|
||||||
|
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
|
||||||
|
\endgroup%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\DoxyLabelFont}{}
|
||||||
|
\newcommand{\entrylabel}[1]{%
|
||||||
|
{%
|
||||||
|
\parbox[b]{\labelwidth-4pt}{%
|
||||||
|
\makebox[0pt][l]{\DoxyLabelFont#1}%
|
||||||
|
\vspace{1.5\baselineskip}%
|
||||||
|
}%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newenvironment{DoxyDesc}[1]{%
|
||||||
|
\ensurespace{4\baselineskip}%
|
||||||
|
\begin{list}{}{%
|
||||||
|
\settowidth{\labelwidth}{20pt}%
|
||||||
|
\setlength{\parsep}{0pt}%
|
||||||
|
\setlength{\itemsep}{0pt}%
|
||||||
|
\setlength{\leftmargin}{\labelwidth+\labelsep}%
|
||||||
|
\renewcommand{\makelabel}{\entrylabel}%
|
||||||
|
}%
|
||||||
|
\item[#1]%
|
||||||
|
}{%
|
||||||
|
\end{list}%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newsavebox{\xrefbox}
|
||||||
|
\newlength{\xreflength}
|
||||||
|
\newcommand{\xreflabel}[1]{%
|
||||||
|
\sbox{\xrefbox}{#1}%
|
||||||
|
\setlength{\xreflength}{\wd\xrefbox}%
|
||||||
|
\ifthenelse{\xreflength>\labelwidth}{%
|
||||||
|
\begin{minipage}{\textwidth}%
|
||||||
|
\setlength{\parindent}{0pt}%
|
||||||
|
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
|
||||||
|
\end{minipage}%
|
||||||
|
}{%
|
||||||
|
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
|
||||||
|
%---------- Commands used by doxygen LaTeX output generator ----------
|
||||||
|
|
||||||
|
% Used by <pre> ... </pre>
|
||||||
|
\newenvironment{DoxyPre}{%
|
||||||
|
\small%
|
||||||
|
\begin{alltt}%
|
||||||
|
}{%
|
||||||
|
\end{alltt}%
|
||||||
|
\normalsize%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @code ... @endcode
|
||||||
|
\newenvironment{DoxyCode}{%
|
||||||
|
\par%
|
||||||
|
\scriptsize%
|
||||||
|
\begin{alltt}%
|
||||||
|
}{%
|
||||||
|
\end{alltt}%
|
||||||
|
\normalsize%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @example, @include, @includelineno and @dontinclude
|
||||||
|
\newenvironment{DoxyCodeInclude}{%
|
||||||
|
\DoxyCode%
|
||||||
|
}{%
|
||||||
|
\endDoxyCode%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @verbatim ... @endverbatim
|
||||||
|
\newenvironment{DoxyVerb}{%
|
||||||
|
\footnotesize%
|
||||||
|
\verbatim%
|
||||||
|
}{%
|
||||||
|
\endverbatim%
|
||||||
|
\normalsize%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @verbinclude
|
||||||
|
\newenvironment{DoxyVerbInclude}{%
|
||||||
|
\DoxyVerb%
|
||||||
|
}{%
|
||||||
|
\endDoxyVerb%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by numbered lists (using '-#' or <ol> ... </ol>)
|
||||||
|
\newenvironment{DoxyEnumerate}{%
|
||||||
|
\enumerate%
|
||||||
|
}{%
|
||||||
|
\endenumerate%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
|
||||||
|
\newenvironment{DoxyItemize}{%
|
||||||
|
\itemize%
|
||||||
|
}{%
|
||||||
|
\enditemize%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by description lists (using <dl> ... </dl>)
|
||||||
|
\newenvironment{DoxyDescription}{%
|
||||||
|
\description%
|
||||||
|
}{%
|
||||||
|
\enddescription%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||||
|
% (only if caption is specified)
|
||||||
|
\newenvironment{DoxyImage}{%
|
||||||
|
\begin{figure}[H]%
|
||||||
|
\begin{center}%
|
||||||
|
}{%
|
||||||
|
\end{center}%
|
||||||
|
\end{figure}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
|
||||||
|
% (only if no caption is specified)
|
||||||
|
\newenvironment{DoxyImageNoCaption}{%
|
||||||
|
}{%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @attention
|
||||||
|
\newenvironment{DoxyAttention}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @author and @authors
|
||||||
|
\newenvironment{DoxyAuthor}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @date
|
||||||
|
\newenvironment{DoxyDate}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @invariant
|
||||||
|
\newenvironment{DoxyInvariant}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @note
|
||||||
|
\newenvironment{DoxyNote}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @post
|
||||||
|
\newenvironment{DoxyPostcond}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @pre
|
||||||
|
\newenvironment{DoxyPrecond}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @copyright
|
||||||
|
\newenvironment{DoxyCopyright}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @remark
|
||||||
|
\newenvironment{DoxyRemark}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @return and @returns
|
||||||
|
\newenvironment{DoxyReturn}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @since
|
||||||
|
\newenvironment{DoxySince}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @see
|
||||||
|
\newenvironment{DoxySeeAlso}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @version
|
||||||
|
\newenvironment{DoxyVersion}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @warning
|
||||||
|
\newenvironment{DoxyWarning}[1]{%
|
||||||
|
\begin{DoxyDesc}{#1}%
|
||||||
|
}{%
|
||||||
|
\end{DoxyDesc}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @internal
|
||||||
|
\newenvironment{DoxyInternal}[1]{%
|
||||||
|
\paragraph*{#1}%
|
||||||
|
}{%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @par and @paragraph
|
||||||
|
\newenvironment{DoxyParagraph}[1]{%
|
||||||
|
\begin{list}{}{%
|
||||||
|
\settowidth{\labelwidth}{40pt}%
|
||||||
|
\setlength{\leftmargin}{\labelwidth}%
|
||||||
|
\setlength{\parsep}{0pt}%
|
||||||
|
\setlength{\itemsep}{-4pt}%
|
||||||
|
\renewcommand{\makelabel}{\entrylabel}%
|
||||||
|
}%
|
||||||
|
\item[#1]%
|
||||||
|
}{%
|
||||||
|
\end{list}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by parameter lists
|
||||||
|
\newenvironment{DoxyParams}[2][]{%
|
||||||
|
\par%
|
||||||
|
\tabletail{\hline}%
|
||||||
|
\tablelasttail{\hline}%
|
||||||
|
\tablefirsthead{}%
|
||||||
|
\tablehead{}%
|
||||||
|
\ifthenelse{\equal{#1}{}}%
|
||||||
|
{\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
|
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
|
||||||
|
p{0.805\textwidth}|}}%
|
||||||
|
{\ifthenelse{\equal{#1}{1}}%
|
||||||
|
{\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
|
||||||
|
\begin{xtabular}{|>{\centering}p{0.10\textwidth}|%
|
||||||
|
>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
|
||||||
|
p{0.678\textwidth}|}}%
|
||||||
|
{\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]}%
|
||||||
|
\begin{xtabular}{|>{\centering}p{0.10\textwidth}|%
|
||||||
|
>{\centering\hspace{0pt}}p{0.15\textwidth}|%
|
||||||
|
>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
|
||||||
|
p{0.501\textwidth}|}}%
|
||||||
|
}\hline%
|
||||||
|
}{%
|
||||||
|
\end{xtabular}%
|
||||||
|
\tablefirsthead{}%
|
||||||
|
\vspace{6pt}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used for fields of simple structs
|
||||||
|
\newenvironment{DoxyFields}[1]{%
|
||||||
|
\par%
|
||||||
|
\tabletail{\hline}%
|
||||||
|
\tablelasttail{\hline}%
|
||||||
|
\tablehead{}%
|
||||||
|
\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
|
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|%
|
||||||
|
p{0.15\textwidth}|%
|
||||||
|
p{0.63\textwidth}|}%
|
||||||
|
\hline%
|
||||||
|
}{%
|
||||||
|
\end{xtabular}%
|
||||||
|
\tablefirsthead{}%
|
||||||
|
\vspace{6pt}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used for parameters within a detailed function description
|
||||||
|
\newenvironment{DoxyParamCaption}{%
|
||||||
|
\renewcommand{\item}[2][]{##1 {\em ##2}}%
|
||||||
|
}{%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by return value lists
|
||||||
|
\newenvironment{DoxyRetVals}[1]{%
|
||||||
|
\par%
|
||||||
|
\tabletail{\hline}%
|
||||||
|
\tablelasttail{\hline}%
|
||||||
|
\tablehead{}%
|
||||||
|
\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
|
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
|
||||||
|
p{0.705\textwidth}|}%
|
||||||
|
\hline%
|
||||||
|
}{%
|
||||||
|
\end{xtabular}%
|
||||||
|
\tablefirsthead{}%
|
||||||
|
\vspace{6pt}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by exception lists
|
||||||
|
\newenvironment{DoxyExceptions}[1]{%
|
||||||
|
\par%
|
||||||
|
\tabletail{\hline}%
|
||||||
|
\tablelasttail{\hline}%
|
||||||
|
\tablehead{}%
|
||||||
|
\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
|
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
|
||||||
|
p{0.705\textwidth}|}%
|
||||||
|
\hline%
|
||||||
|
}{%
|
||||||
|
\end{xtabular}%
|
||||||
|
\tablefirsthead{}%
|
||||||
|
\vspace{6pt}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by template parameter lists
|
||||||
|
\newenvironment{DoxyTemplParams}[1]{%
|
||||||
|
\par%
|
||||||
|
\tabletail{\hline}%
|
||||||
|
\tablelasttail{\hline}%
|
||||||
|
\tablehead{}%
|
||||||
|
\tablefirsthead{\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]}%
|
||||||
|
\begin{xtabular}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|%
|
||||||
|
p{0.705\textwidth}|}%
|
||||||
|
\hline%
|
||||||
|
}{%
|
||||||
|
\end{xtabular}%
|
||||||
|
\tablefirsthead{}%
|
||||||
|
\vspace{6pt}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used for member lists
|
||||||
|
\newenvironment{DoxyCompactItemize}{%
|
||||||
|
\begin{itemize}%
|
||||||
|
\setlength{\itemsep}{-3pt}%
|
||||||
|
\setlength{\parsep}{0pt}%
|
||||||
|
\setlength{\topsep}{0pt}%
|
||||||
|
\setlength{\partopsep}{0pt}%
|
||||||
|
}{%
|
||||||
|
\end{itemize}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used for member descriptions
|
||||||
|
\newenvironment{DoxyCompactList}{%
|
||||||
|
\begin{list}{}{%
|
||||||
|
\setlength{\leftmargin}{0.5cm}%
|
||||||
|
\setlength{\itemsep}{0pt}%
|
||||||
|
\setlength{\parsep}{0pt}%
|
||||||
|
\setlength{\topsep}{0pt}%
|
||||||
|
\renewcommand{\makelabel}{\hfill}%
|
||||||
|
}%
|
||||||
|
}{%
|
||||||
|
\end{list}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used for reference lists (@bug, @deprecated, @todo, etc.)
|
||||||
|
\newenvironment{DoxyRefList}{%
|
||||||
|
\begin{list}{}{%
|
||||||
|
\setlength{\labelwidth}{10pt}%
|
||||||
|
\setlength{\leftmargin}{\labelwidth}%
|
||||||
|
\addtolength{\leftmargin}{\labelsep}%
|
||||||
|
\renewcommand{\makelabel}{\xreflabel}%
|
||||||
|
}%
|
||||||
|
}{%
|
||||||
|
\end{list}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by @bug, @deprecated, @todo, etc.
|
||||||
|
\newenvironment{DoxyRefDesc}[1]{%
|
||||||
|
\begin{list}{}{%
|
||||||
|
\renewcommand\makelabel[1]{\textbf{##1}}%
|
||||||
|
\settowidth\labelwidth{\makelabel{#1}}%
|
||||||
|
\setlength\leftmargin{\labelwidth+\labelsep}%
|
||||||
|
}%
|
||||||
|
}{%
|
||||||
|
\end{list}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by parameter lists and simple sections
|
||||||
|
\newenvironment{Desc}
|
||||||
|
{\begin{list}{}{%
|
||||||
|
\settowidth{\labelwidth}{40pt}%
|
||||||
|
\setlength{\leftmargin}{\labelwidth}%
|
||||||
|
\setlength{\parsep}{0pt}%
|
||||||
|
\setlength{\itemsep}{-4pt}%
|
||||||
|
\renewcommand{\makelabel}{\entrylabel}%
|
||||||
|
}
|
||||||
|
}{%
|
||||||
|
\end{list}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used by tables
|
||||||
|
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
|
||||||
|
\newlength{\tmplength}%
|
||||||
|
\newenvironment{TabularC}[1]%
|
||||||
|
{%
|
||||||
|
\setlength{\tmplength}%
|
||||||
|
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}%
|
||||||
|
\par\begin{xtabular*}{\linewidth}%
|
||||||
|
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}%
|
||||||
|
}%
|
||||||
|
{\end{xtabular*}\par}%
|
||||||
|
|
||||||
|
% Used for member group headers
|
||||||
|
\newenvironment{Indent}{%
|
||||||
|
\begin{list}{}{%
|
||||||
|
\setlength{\leftmargin}{0.5cm}%
|
||||||
|
}%
|
||||||
|
\item[]\ignorespaces%
|
||||||
|
}{%
|
||||||
|
\unskip%
|
||||||
|
\end{list}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used when hyperlinks are turned off
|
||||||
|
\newcommand{\doxyref}[3]{%
|
||||||
|
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Used for syntax highlighting
|
||||||
|
\definecolor{comment}{rgb}{0.5,0.0,0.0}
|
||||||
|
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
|
||||||
|
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
|
||||||
|
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
|
||||||
|
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
|
||||||
|
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
|
||||||
|
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
|
||||||
|
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
|
||||||
|
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
|
||||||
|
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
|
||||||
|
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
|
@ -0,0 +1,4 @@
|
|||||||
|
\section{File List}
|
||||||
|
Here is a list of all files with brief descriptions\-:\begin{DoxyCompactList}
|
||||||
|
\item\contentsline{section}{\hyperlink{_modbus_rtu_8h}{Modbus\-Rtu.\-h} }{\pageref{_modbus_rtu_8h}}{}
|
||||||
|
\end{DoxyCompactList}
|
@ -0,0 +1,122 @@
|
|||||||
|
\hypertarget{group__buffer}{\section{Modbus Buffer Management}
|
||||||
|
\label{group__buffer}\index{Modbus Buffer Management@{Modbus Buffer Management}}
|
||||||
|
}
|
||||||
|
\subsection*{Functions}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
uint16\-\_\-t \hyperlink{group__buffer_ga4fa6ede8df85b7cc70b1282b9547378a}{Modbus\-::get\-In\-Cnt} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em number of incoming messages \end{DoxyCompactList}\item
|
||||||
|
uint16\-\_\-t \hyperlink{group__buffer_ga6f831ecaf3678c27dafb663a28bf81f0}{Modbus\-::get\-Out\-Cnt} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em number of outcoming messages \end{DoxyCompactList}\item
|
||||||
|
uint16\-\_\-t \hyperlink{group__buffer_ga6883c7f3ff12f084ed56d559d4e06ed0}{Modbus\-::get\-Err\-Cnt} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em error counter \end{DoxyCompactList}\item
|
||||||
|
uint8\-\_\-t \hyperlink{group__buffer_ga2f39717d957a929af488c9120488fcdc}{Modbus\-::get\-State} ()
|
||||||
|
\item
|
||||||
|
uint8\-\_\-t \hyperlink{group__buffer_gace7f726db13adc8feeceab987b719531}{Modbus\-::get\-Last\-Error} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em get last error message \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Detailed Description}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Function Documentation}
|
||||||
|
\hypertarget{group__buffer_ga6883c7f3ff12f084ed56d559d4e06ed0}{\index{Modbus Buffer Management@{Modbus Buffer Management}!get\-Err\-Cnt@{get\-Err\-Cnt}}
|
||||||
|
\index{get\-Err\-Cnt@{get\-Err\-Cnt}!Modbus Buffer Management@{Modbus Buffer Management}}
|
||||||
|
\subsubsection[{get\-Err\-Cnt}]{\setlength{\rightskip}{0pt plus 5cm}uint16\-\_\-t Modbus\-::get\-Err\-Cnt (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__buffer_ga6883c7f3ff12f084ed56d559d4e06ed0}
|
||||||
|
|
||||||
|
|
||||||
|
error counter
|
||||||
|
|
||||||
|
Get errors counter value This can be useful to diagnose communication.
|
||||||
|
|
||||||
|
\begin{DoxyReturn}{Returns}
|
||||||
|
errors counter
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 386 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__buffer_ga4fa6ede8df85b7cc70b1282b9547378a}{\index{Modbus Buffer Management@{Modbus Buffer Management}!get\-In\-Cnt@{get\-In\-Cnt}}
|
||||||
|
\index{get\-In\-Cnt@{get\-In\-Cnt}!Modbus Buffer Management@{Modbus Buffer Management}}
|
||||||
|
\subsubsection[{get\-In\-Cnt}]{\setlength{\rightskip}{0pt plus 5cm}uint16\-\_\-t Modbus\-::get\-In\-Cnt (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__buffer_ga4fa6ede8df85b7cc70b1282b9547378a}
|
||||||
|
|
||||||
|
|
||||||
|
number of incoming messages
|
||||||
|
|
||||||
|
Get input messages counter value This can be useful to diagnose communication.
|
||||||
|
|
||||||
|
\begin{DoxyReturn}{Returns}
|
||||||
|
input messages counter
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 362 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__buffer_gace7f726db13adc8feeceab987b719531}{\index{Modbus Buffer Management@{Modbus Buffer Management}!get\-Last\-Error@{get\-Last\-Error}}
|
||||||
|
\index{get\-Last\-Error@{get\-Last\-Error}!Modbus Buffer Management@{Modbus Buffer Management}}
|
||||||
|
\subsubsection[{get\-Last\-Error}]{\setlength{\rightskip}{0pt plus 5cm}uint8\-\_\-t Modbus\-::get\-Last\-Error (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__buffer_gace7f726db13adc8feeceab987b719531}
|
||||||
|
|
||||||
|
|
||||||
|
get last error message
|
||||||
|
|
||||||
|
Get the last error in the protocol processor
|
||||||
|
|
||||||
|
N\-O\-\_\-\-R\-E\-P\-L\-Y = 255 Time-\/out \begin{DoxyReturn}{Returns}
|
||||||
|
E\-X\-C\-\_\-\-F\-U\-N\-C\-\_\-\-C\-O\-D\-E = 1 Function code not available
|
||||||
|
|
||||||
|
E\-X\-C\-\_\-\-A\-D\-D\-R\-\_\-\-R\-A\-N\-G\-E = 2 Address beyond available space for \hyperlink{class_modbus}{Modbus} registers
|
||||||
|
|
||||||
|
E\-X\-C\-\_\-\-R\-E\-G\-S\-\_\-\-Q\-U\-A\-N\-T = 3 Coils or registers number beyond the available space
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 409 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__buffer_ga6f831ecaf3678c27dafb663a28bf81f0}{\index{Modbus Buffer Management@{Modbus Buffer Management}!get\-Out\-Cnt@{get\-Out\-Cnt}}
|
||||||
|
\index{get\-Out\-Cnt@{get\-Out\-Cnt}!Modbus Buffer Management@{Modbus Buffer Management}}
|
||||||
|
\subsubsection[{get\-Out\-Cnt}]{\setlength{\rightskip}{0pt plus 5cm}uint16\-\_\-t Modbus\-::get\-Out\-Cnt (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__buffer_ga6f831ecaf3678c27dafb663a28bf81f0}
|
||||||
|
|
||||||
|
|
||||||
|
number of outcoming messages
|
||||||
|
|
||||||
|
Get transmitted messages counter value This can be useful to diagnose communication.
|
||||||
|
|
||||||
|
\begin{DoxyReturn}{Returns}
|
||||||
|
transmitted messages counter
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 374 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__buffer_ga2f39717d957a929af488c9120488fcdc}{\index{Modbus Buffer Management@{Modbus Buffer Management}!get\-State@{get\-State}}
|
||||||
|
\index{get\-State@{get\-State}!Modbus Buffer Management@{Modbus Buffer Management}}
|
||||||
|
\subsubsection[{get\-State}]{\setlength{\rightskip}{0pt plus 5cm}uint8\-\_\-t Modbus\-::get\-State (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__buffer_ga2f39717d957a929af488c9120488fcdc}
|
||||||
|
Get modbus master state
|
||||||
|
|
||||||
|
\begin{DoxyReturn}{Returns}
|
||||||
|
= 0 I\-D\-L\-E, = 1 W\-A\-I\-T\-I\-N\-G F\-O\-R A\-N\-S\-W\-E\-R
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 396 of file Modbus\-Rtu.\-h.
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
\hypertarget{group__discrete}{\section{Modbus Function Codes for Discrete Coils/\-Inputs}
|
||||||
|
\label{group__discrete}\index{Modbus Function Codes for Discrete Coils/\-Inputs@{Modbus Function Codes for Discrete Coils/\-Inputs}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Detailed Description}
|
@ -0,0 +1,117 @@
|
|||||||
|
\hypertarget{group__loop}{\section{Modbus Object Management}
|
||||||
|
\label{group__loop}\index{Modbus Object Management@{Modbus Object Management}}
|
||||||
|
}
|
||||||
|
\subsection*{Functions}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
boolean \hyperlink{group__loop_gaf6dd413191ed8a833022046873e0a063}{Modbus\-::get\-Time\-Out\-State} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em get communication watch-\/dog timer state \end{DoxyCompactList}\item
|
||||||
|
int8\-\_\-t \hyperlink{group__loop_ga19398cabed57b6d085d014af6c149f54}{Modbus\-::query} (\hyperlink{structmodbus__t}{modbus\-\_\-t} telegram)
|
||||||
|
\begin{DoxyCompactList}\small\item\em only for master \end{DoxyCompactList}\item
|
||||||
|
int8\-\_\-t \hyperlink{group__loop_ga53bde78490c1cd8e3c070a676bdcfb0d}{Modbus\-::poll} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em cyclic poll for master \end{DoxyCompactList}\item
|
||||||
|
int8\-\_\-t \hyperlink{group__loop_gab3ef20562fc8cee14fc85f7e276890b5}{Modbus\-::poll} (uint16\-\_\-t $\ast$regs, uint8\-\_\-t u8size)
|
||||||
|
\begin{DoxyCompactList}\small\item\em cyclic poll for slave \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Detailed Description}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Function Documentation}
|
||||||
|
\hypertarget{group__loop_gaf6dd413191ed8a833022046873e0a063}{\index{Modbus Object Management@{Modbus Object Management}!get\-Time\-Out\-State@{get\-Time\-Out\-State}}
|
||||||
|
\index{get\-Time\-Out\-State@{get\-Time\-Out\-State}!Modbus Object Management@{Modbus Object Management}}
|
||||||
|
\subsubsection[{get\-Time\-Out\-State}]{\setlength{\rightskip}{0pt plus 5cm}boolean Modbus\-::get\-Time\-Out\-State (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__loop_gaf6dd413191ed8a833022046873e0a063}
|
||||||
|
|
||||||
|
|
||||||
|
get communication watch-\/dog timer state
|
||||||
|
|
||||||
|
Return communication Watchdog state. It could be usefull to reset outputs if the watchdog is fired.
|
||||||
|
|
||||||
|
\begin{DoxyReturn}{Returns}
|
||||||
|
T\-R\-U\-E if millis() $>$ u32time\-Out
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 350 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__loop_ga53bde78490c1cd8e3c070a676bdcfb0d}{\index{Modbus Object Management@{Modbus Object Management}!poll@{poll}}
|
||||||
|
\index{poll@{poll}!Modbus Object Management@{Modbus Object Management}}
|
||||||
|
\subsubsection[{poll}]{\setlength{\rightskip}{0pt plus 5cm}int8\-\_\-t Modbus\-::poll (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__loop_ga53bde78490c1cd8e3c070a676bdcfb0d}
|
||||||
|
|
||||||
|
|
||||||
|
cyclic poll for master
|
||||||
|
|
||||||
|
$\ast$$\ast$$\ast$ Only for \hyperlink{class_modbus}{Modbus} Master $\ast$$\ast$$\ast$ This method checks if there is any incoming answer if pending. If there is no answer, it would change Master state to C\-O\-M\-\_\-\-I\-D\-L\-E. This method must be called only at loop section. Avoid any delay() function.
|
||||||
|
|
||||||
|
Any incoming data would be redirected to au16regs pointer, as defined in its \hyperlink{structmodbus__t}{modbus\-\_\-t} query telegram.
|
||||||
|
|
||||||
|
nothing \begin{DoxyReturn}{Returns}
|
||||||
|
errors counter
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 513 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__loop_gab3ef20562fc8cee14fc85f7e276890b5}{\index{Modbus Object Management@{Modbus Object Management}!poll@{poll}}
|
||||||
|
\index{poll@{poll}!Modbus Object Management@{Modbus Object Management}}
|
||||||
|
\subsubsection[{poll}]{\setlength{\rightskip}{0pt plus 5cm}int8\-\_\-t Modbus\-::poll (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
\item[{uint16\-\_\-t $\ast$}]{regs, }
|
||||||
|
\item[{uint8\-\_\-t}]{u8size}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__loop_gab3ef20562fc8cee14fc85f7e276890b5}
|
||||||
|
|
||||||
|
|
||||||
|
cyclic poll for slave
|
||||||
|
|
||||||
|
$\ast$$\ast$$\ast$ Only for \hyperlink{class_modbus}{Modbus} Slave $\ast$$\ast$$\ast$ This method checks if there is any incoming query Afterwards, it would shoot a validation routine plus a register query Avoid any delay() function !!!! After a successful frame between the Master and the Slave, the time-\/out timer is reset.
|
||||||
|
|
||||||
|
|
||||||
|
\begin{DoxyParams}{Parameters}
|
||||||
|
{\em $\ast$regs} & register table for communication exchange \\
|
||||||
|
\hline
|
||||||
|
{\em u8size} & size of the register table \\
|
||||||
|
\hline
|
||||||
|
\end{DoxyParams}
|
||||||
|
\begin{DoxyReturn}{Returns}
|
||||||
|
0 if no query, 1..4 if communication error, $>$4 if correct query processed
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 588 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__loop_ga19398cabed57b6d085d014af6c149f54}{\index{Modbus Object Management@{Modbus Object Management}!query@{query}}
|
||||||
|
\index{query@{query}!Modbus Object Management@{Modbus Object Management}}
|
||||||
|
\subsubsection[{query}]{\setlength{\rightskip}{0pt plus 5cm}int8\-\_\-t Modbus\-::query (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
\item[{{\bf modbus\-\_\-t}}]{telegram}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__loop_ga19398cabed57b6d085d014af6c149f54}
|
||||||
|
|
||||||
|
|
||||||
|
only for master
|
||||||
|
|
||||||
|
$\ast$$\ast$$\ast$ Only \hyperlink{class_modbus}{Modbus} Master $\ast$$\ast$$\ast$ Generate a query to an slave with a \hyperlink{structmodbus__t}{modbus\-\_\-t} telegram structure The Master must be in C\-O\-M\-\_\-\-I\-D\-L\-E mode. After it, its state would be C\-O\-M\-\_\-\-W\-A\-I\-T\-I\-N\-G. This method has to be called only in loop() section.
|
||||||
|
|
||||||
|
\begin{DoxySeeAlso}{See Also}
|
||||||
|
\hyperlink{structmodbus__t}{modbus\-\_\-t}
|
||||||
|
\end{DoxySeeAlso}
|
||||||
|
|
||||||
|
\begin{DoxyParams}{Parameters}
|
||||||
|
{\em \hyperlink{structmodbus__t}{modbus\-\_\-t}} & modbus telegram structure (id, fct, ...)\\
|
||||||
|
\hline
|
||||||
|
\end{DoxyParams}
|
||||||
|
\begin{DoxyRefDesc}{Todo}
|
||||||
|
\item[\hyperlink{todo__todo000001}{Todo}]finish function 15 \end{DoxyRefDesc}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 425 of file Modbus\-Rtu.\-h.
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
\hypertarget{group__register}{\section{Modbus Function Codes for Holding/\-Input Registers}
|
||||||
|
\label{group__register}\index{Modbus Function Codes for Holding/\-Input Registers@{Modbus Function Codes for Holding/\-Input Registers}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Detailed Description}
|
@ -0,0 +1,130 @@
|
|||||||
|
\hypertarget{group__setup}{\section{Modbus Object Instantiation/\-Initialization}
|
||||||
|
\label{group__setup}\index{Modbus Object Instantiation/\-Initialization@{Modbus Object Instantiation/\-Initialization}}
|
||||||
|
}
|
||||||
|
\subsection*{Functions}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
\hyperlink{group__setup_ga101809cdd4734537bab58dc315a840b4}{Modbus\-::\-Modbus} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em Default Constructor for Master through Serial. \end{DoxyCompactList}\item
|
||||||
|
void \hyperlink{group__setup_ga475a4fa0fac491307b10c4529ad6d2a0}{Modbus\-::begin} (long u32speed)
|
||||||
|
\begin{DoxyCompactList}\small\item\em Initialize class object. \end{DoxyCompactList}\item
|
||||||
|
void \hyperlink{group__setup_ga9bd497e97ac1777d4f0d4171078d60e0}{Modbus\-::set\-I\-D} (uint8\-\_\-t u8id)
|
||||||
|
\begin{DoxyCompactList}\small\item\em write new I\-D for the slave \end{DoxyCompactList}\item
|
||||||
|
uint8\-\_\-t \hyperlink{group__setup_ga6449894306ff8cc5d4caff09b1b0d1ce}{Modbus\-::get\-I\-D} ()
|
||||||
|
\begin{DoxyCompactList}\small\item\em get slave I\-D between 1 and 247 \end{DoxyCompactList}\item
|
||||||
|
void \hyperlink{group__setup_gaf828190ebe24efb1b3b1957429f3872e}{Modbus\-::set\-Time\-Out} (uint16\-\_\-t u16timeout)
|
||||||
|
\begin{DoxyCompactList}\small\item\em write communication watch-\/dog timer \end{DoxyCompactList}\end{DoxyCompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Detailed Description}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Function Documentation}
|
||||||
|
\hypertarget{group__setup_ga475a4fa0fac491307b10c4529ad6d2a0}{\index{Modbus Object Instantiation/\-Initialization@{Modbus Object Instantiation/\-Initialization}!begin@{begin}}
|
||||||
|
\index{begin@{begin}!Modbus Object Instantiation/Initialization@{Modbus Object Instantiation/\-Initialization}}
|
||||||
|
\subsubsection[{begin}]{\setlength{\rightskip}{0pt plus 5cm}void Modbus\-::begin (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
\item[{long}]{u32speed}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__setup_ga475a4fa0fac491307b10c4529ad6d2a0}
|
||||||
|
|
||||||
|
|
||||||
|
Initialize class object.
|
||||||
|
|
||||||
|
Sets up the serial port using specified baud rate. Call once class has been instantiated, typically within setup().
|
||||||
|
|
||||||
|
\begin{DoxySeeAlso}{See Also}
|
||||||
|
\href{http://arduino.cc/en/Serial/Begin#.Uy4CJ6aKlHY}{\tt http\-://arduino.\-cc/en/\-Serial/\-Begin\#.\-Uy4\-C\-J6a\-Kl\-H\-Y}
|
||||||
|
\end{DoxySeeAlso}
|
||||||
|
|
||||||
|
\begin{DoxyParams}{Parameters}
|
||||||
|
{\em speed} & baud rate, in standard increments (300..115200) \\
|
||||||
|
\hline
|
||||||
|
{\em config} & data frame settings (data length, parity and stop bits) \\
|
||||||
|
\hline
|
||||||
|
\end{DoxyParams}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 250 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__setup_ga6449894306ff8cc5d4caff09b1b0d1ce}{\index{Modbus Object Instantiation/\-Initialization@{Modbus Object Instantiation/\-Initialization}!get\-I\-D@{get\-I\-D}}
|
||||||
|
\index{get\-I\-D@{get\-I\-D}!Modbus Object Instantiation/Initialization@{Modbus Object Instantiation/\-Initialization}}
|
||||||
|
\subsubsection[{get\-I\-D}]{\setlength{\rightskip}{0pt plus 5cm}uint8\-\_\-t Modbus\-::get\-I\-D (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__setup_ga6449894306ff8cc5d4caff09b1b0d1ce}
|
||||||
|
|
||||||
|
|
||||||
|
get slave I\-D between 1 and 247
|
||||||
|
|
||||||
|
Method to read current slave I\-D address.
|
||||||
|
|
||||||
|
\begin{DoxyReturn}{Returns}
|
||||||
|
u8id current slave address between 1 and 247
|
||||||
|
\end{DoxyReturn}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 323 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__setup_ga101809cdd4734537bab58dc315a840b4}{\index{Modbus Object Instantiation/\-Initialization@{Modbus Object Instantiation/\-Initialization}!Modbus@{Modbus}}
|
||||||
|
\index{Modbus@{Modbus}!Modbus Object Instantiation/Initialization@{Modbus Object Instantiation/\-Initialization}}
|
||||||
|
\subsubsection[{Modbus}]{\setlength{\rightskip}{0pt plus 5cm}Modbus\-::\-Modbus (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
{}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__setup_ga101809cdd4734537bab58dc315a840b4}
|
||||||
|
|
||||||
|
|
||||||
|
Default Constructor for Master through Serial.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 204 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__setup_ga9bd497e97ac1777d4f0d4171078d60e0}{\index{Modbus Object Instantiation/\-Initialization@{Modbus Object Instantiation/\-Initialization}!set\-I\-D@{set\-I\-D}}
|
||||||
|
\index{set\-I\-D@{set\-I\-D}!Modbus Object Instantiation/Initialization@{Modbus Object Instantiation/\-Initialization}}
|
||||||
|
\subsubsection[{set\-I\-D}]{\setlength{\rightskip}{0pt plus 5cm}void Modbus\-::set\-I\-D (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
\item[{uint8\-\_\-t}]{u8id}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__setup_ga9bd497e97ac1777d4f0d4171078d60e0}
|
||||||
|
|
||||||
|
|
||||||
|
write new I\-D for the slave
|
||||||
|
|
||||||
|
Method to write a new slave I\-D address.
|
||||||
|
|
||||||
|
|
||||||
|
\begin{DoxyParams}{Parameters}
|
||||||
|
{\em u8id} & new slave address between 1 and 247 \\
|
||||||
|
\hline
|
||||||
|
\end{DoxyParams}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 310 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{group__setup_gaf828190ebe24efb1b3b1957429f3872e}{\index{Modbus Object Instantiation/\-Initialization@{Modbus Object Instantiation/\-Initialization}!set\-Time\-Out@{set\-Time\-Out}}
|
||||||
|
\index{set\-Time\-Out@{set\-Time\-Out}!Modbus Object Instantiation/Initialization@{Modbus Object Instantiation/\-Initialization}}
|
||||||
|
\subsubsection[{set\-Time\-Out}]{\setlength{\rightskip}{0pt plus 5cm}void Modbus\-::set\-Time\-Out (
|
||||||
|
\begin{DoxyParamCaption}
|
||||||
|
\item[{uint16\-\_\-t}]{u16time\-Out}
|
||||||
|
\end{DoxyParamCaption}
|
||||||
|
)}}\label{group__setup_gaf828190ebe24efb1b3b1957429f3872e}
|
||||||
|
|
||||||
|
|
||||||
|
write communication watch-\/dog timer
|
||||||
|
|
||||||
|
Initialize time-\/out parameter.
|
||||||
|
|
||||||
|
Call once class has been instantiated, typically within setup(). The time-\/out timer is reset each time that there is a successful communication between Master and Slave. It works for both.
|
||||||
|
|
||||||
|
|
||||||
|
\begin{DoxyParams}{Parameters}
|
||||||
|
{\em time-\/out} & value (ms) \\
|
||||||
|
\hline
|
||||||
|
\end{DoxyParams}
|
||||||
|
|
||||||
|
|
||||||
|
Definition at line 338 of file Modbus\-Rtu.\-h.
|
||||||
|
|
@ -0,0 +1,8 @@
|
|||||||
|
\section{Modules}
|
||||||
|
Here is a list of all modules\-:\begin{DoxyCompactList}
|
||||||
|
\item \contentsline{section}{Modbus Object Instantiation/\-Initialization}{\pageref{group__setup}}{}
|
||||||
|
\item \contentsline{section}{Modbus Object Management}{\pageref{group__loop}}{}
|
||||||
|
\item \contentsline{section}{Modbus Buffer Management}{\pageref{group__buffer}}{}
|
||||||
|
\item \contentsline{section}{Modbus Function Codes for Discrete Coils/\-Inputs}{\pageref{group__discrete}}{}
|
||||||
|
\item \contentsline{section}{Modbus Function Codes for Holding/\-Input Registers}{\pageref{group__register}}{}
|
||||||
|
\end{DoxyCompactList}
|
@ -0,0 +1,162 @@
|
|||||||
|
\documentclass[twoside]{book}
|
||||||
|
|
||||||
|
% Packages required by doxygen
|
||||||
|
\usepackage{calc}
|
||||||
|
\usepackage{doxygen}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage{makeidx}
|
||||||
|
\usepackage{multicol}
|
||||||
|
\usepackage{multirow}
|
||||||
|
\usepackage{textcomp}
|
||||||
|
\usepackage[table]{xcolor}
|
||||||
|
|
||||||
|
% Font selection
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage{mathptmx}
|
||||||
|
\usepackage[scaled=.90]{helvet}
|
||||||
|
\usepackage{courier}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
\usepackage{sectsty}
|
||||||
|
\renewcommand{\familydefault}{\sfdefault}
|
||||||
|
\allsectionsfont{%
|
||||||
|
\fontseries{bc}\selectfont%
|
||||||
|
\color{darkgray}%
|
||||||
|
}
|
||||||
|
\renewcommand{\DoxyLabelFont}{%
|
||||||
|
\fontseries{bc}\selectfont%
|
||||||
|
\color{darkgray}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Page & text layout
|
||||||
|
\usepackage{geometry}
|
||||||
|
\geometry{%
|
||||||
|
a4paper,%
|
||||||
|
top=2.5cm,%
|
||||||
|
bottom=2.5cm,%
|
||||||
|
left=2.5cm,%
|
||||||
|
right=2.5cm%
|
||||||
|
}
|
||||||
|
\tolerance=750
|
||||||
|
\hfuzz=15pt
|
||||||
|
\hbadness=750
|
||||||
|
\setlength{\emergencystretch}{15pt}
|
||||||
|
\setlength{\parindent}{0cm}
|
||||||
|
\setlength{\parskip}{0.2cm}
|
||||||
|
\makeatletter
|
||||||
|
\renewcommand{\paragraph}{%
|
||||||
|
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
|
||||||
|
\normalfont\normalsize\bfseries\SS@parafont%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
\renewcommand{\subparagraph}{%
|
||||||
|
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
|
||||||
|
\normalfont\normalsize\bfseries\SS@subparafont%
|
||||||
|
}%
|
||||||
|
}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
% Headers & footers
|
||||||
|
\usepackage{fancyhdr}
|
||||||
|
\pagestyle{fancyplain}
|
||||||
|
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
|
||||||
|
\fancyhead[CE]{\fancyplain{}{}}
|
||||||
|
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
|
||||||
|
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
|
||||||
|
\fancyhead[CO]{\fancyplain{}{}}
|
||||||
|
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
|
||||||
|
\fancyfoot[LE]{\fancyplain{}{}}
|
||||||
|
\fancyfoot[CE]{\fancyplain{}{}}
|
||||||
|
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by Doxygen }}
|
||||||
|
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated on Tue Sep 9 2014 21:52:15 for Modbus Master and Slave for Arduino by Doxygen }}
|
||||||
|
\fancyfoot[CO]{\fancyplain{}{}}
|
||||||
|
\fancyfoot[RO]{\fancyplain{}{}}
|
||||||
|
\renewcommand{\footrulewidth}{0.4pt}
|
||||||
|
\renewcommand{\chaptermark}[1]{%
|
||||||
|
\markboth{#1}{}%
|
||||||
|
}
|
||||||
|
\renewcommand{\sectionmark}[1]{%
|
||||||
|
\markright{\thesection\ #1}%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Indices & bibliography
|
||||||
|
\usepackage{natbib}
|
||||||
|
\usepackage[titles]{tocloft}
|
||||||
|
\setcounter{tocdepth}{3}
|
||||||
|
\setcounter{secnumdepth}{5}
|
||||||
|
\makeindex
|
||||||
|
|
||||||
|
% Hyperlinks (required, but should be loaded last)
|
||||||
|
\usepackage{ifpdf}
|
||||||
|
\ifpdf
|
||||||
|
\usepackage[pdftex,pagebackref=true]{hyperref}
|
||||||
|
\else
|
||||||
|
\usepackage[ps2pdf,pagebackref=true]{hyperref}
|
||||||
|
\fi
|
||||||
|
\hypersetup{%
|
||||||
|
colorlinks=true,%
|
||||||
|
linkcolor=blue,%
|
||||||
|
citecolor=blue,%
|
||||||
|
unicode%
|
||||||
|
}
|
||||||
|
|
||||||
|
% Custom commands
|
||||||
|
\newcommand{\clearemptydoublepage}{%
|
||||||
|
\newpage{\pagestyle{empty}\cleardoublepage}%
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%===== C O N T E N T S =====
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
% Titlepage & ToC
|
||||||
|
\hypersetup{pageanchor=false}
|
||||||
|
\pagenumbering{roman}
|
||||||
|
\begin{titlepage}
|
||||||
|
\vspace*{7cm}
|
||||||
|
\begin{center}%
|
||||||
|
{\Large Modbus Master and Slave for Arduino \\[1ex]\large 1.\-2 }\\
|
||||||
|
\vspace*{1cm}
|
||||||
|
{\large Generated by Doxygen 1.8.4}\\
|
||||||
|
\vspace*{0.5cm}
|
||||||
|
{\small Tue Sep 9 2014 21:52:15}\\
|
||||||
|
\end{center}
|
||||||
|
\end{titlepage}
|
||||||
|
\clearemptydoublepage
|
||||||
|
\tableofcontents
|
||||||
|
\clearemptydoublepage
|
||||||
|
\pagenumbering{arabic}
|
||||||
|
\hypersetup{pageanchor=true}
|
||||||
|
|
||||||
|
%--- Begin generated contents ---
|
||||||
|
\chapter{Todo List}
|
||||||
|
\label{todo}
|
||||||
|
\hypertarget{todo}{}
|
||||||
|
\input{todo}
|
||||||
|
\chapter{Module Index}
|
||||||
|
\input{modules}
|
||||||
|
\chapter{Class Index}
|
||||||
|
\input{annotated}
|
||||||
|
\chapter{File Index}
|
||||||
|
\input{files}
|
||||||
|
\chapter{Module Documentation}
|
||||||
|
\input{group__setup}
|
||||||
|
\include{group__loop}
|
||||||
|
\include{group__buffer}
|
||||||
|
\include{group__discrete}
|
||||||
|
\include{group__register}
|
||||||
|
\chapter{Class Documentation}
|
||||||
|
\input{class_modbus}
|
||||||
|
\input{structmodbus__t}
|
||||||
|
\chapter{File Documentation}
|
||||||
|
\input{_modbus_rtu_8h}
|
||||||
|
%--- End generated contents ---
|
||||||
|
|
||||||
|
% Index
|
||||||
|
\newpage
|
||||||
|
\phantomsection
|
||||||
|
\addcontentsline{toc}{part}{Index}
|
||||||
|
\printindex
|
||||||
|
|
||||||
|
\end{document}
|
@ -0,0 +1,75 @@
|
|||||||
|
\hypertarget{structmodbus__t}{\section{modbus\-\_\-t Struct Reference}
|
||||||
|
\label{structmodbus__t}\index{modbus\-\_\-t@{modbus\-\_\-t}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Master query structure\-: This includes all the necessary fields to make the Master generate a \hyperlink{class_modbus}{Modbus} query. A Master may keep several of these structures and send them cyclically or use them according to program needs.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{\ttfamily \#include $<$Modbus\-Rtu.\-h$>$}
|
||||||
|
|
||||||
|
\subsection*{Public Attributes}
|
||||||
|
\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
uint8\-\_\-t \hyperlink{structmodbus__t_af78ad11f93e63022a1c279de7206358c}{u8id}
|
||||||
|
\item
|
||||||
|
uint8\-\_\-t \hyperlink{structmodbus__t_a57d1630d4548e5d50d79e206a48b09bc}{u8fct}
|
||||||
|
\item
|
||||||
|
uint16\-\_\-t \hyperlink{structmodbus__t_a224ead9ff72467696e94fba9cf06bd3c}{u16\-Reg\-Add}
|
||||||
|
\item
|
||||||
|
uint16\-\_\-t \hyperlink{structmodbus__t_a5b9cee9c1a9415d927543f6cf054eb43}{u16\-Coils\-No}
|
||||||
|
\item
|
||||||
|
uint16\-\_\-t $\ast$ \hyperlink{structmodbus__t_a36212dd6316cbffb8ea31b2a2f5ae1be}{au16reg}
|
||||||
|
\end{DoxyCompactItemize}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Detailed Description}
|
||||||
|
Master query structure\-: This includes all the necessary fields to make the Master generate a \hyperlink{class_modbus}{Modbus} query. A Master may keep several of these structures and send them cyclically or use them according to program needs.
|
||||||
|
|
||||||
|
Definition at line 48 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Member Data Documentation}
|
||||||
|
\hypertarget{structmodbus__t_a36212dd6316cbffb8ea31b2a2f5ae1be}{\index{modbus\-\_\-t@{modbus\-\_\-t}!au16reg@{au16reg}}
|
||||||
|
\index{au16reg@{au16reg}!modbus_t@{modbus\-\_\-t}}
|
||||||
|
\subsubsection[{au16reg}]{\setlength{\rightskip}{0pt plus 5cm}uint16\-\_\-t$\ast$ modbus\-\_\-t\-::au16reg}}\label{structmodbus__t_a36212dd6316cbffb8ea31b2a2f5ae1be}
|
||||||
|
Pointer to memory image in master
|
||||||
|
|
||||||
|
Definition at line 53 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{structmodbus__t_a5b9cee9c1a9415d927543f6cf054eb43}{\index{modbus\-\_\-t@{modbus\-\_\-t}!u16\-Coils\-No@{u16\-Coils\-No}}
|
||||||
|
\index{u16\-Coils\-No@{u16\-Coils\-No}!modbus_t@{modbus\-\_\-t}}
|
||||||
|
\subsubsection[{u16\-Coils\-No}]{\setlength{\rightskip}{0pt plus 5cm}uint16\-\_\-t modbus\-\_\-t\-::u16\-Coils\-No}}\label{structmodbus__t_a5b9cee9c1a9415d927543f6cf054eb43}
|
||||||
|
Number of coils or registers to access
|
||||||
|
|
||||||
|
Definition at line 52 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{structmodbus__t_a224ead9ff72467696e94fba9cf06bd3c}{\index{modbus\-\_\-t@{modbus\-\_\-t}!u16\-Reg\-Add@{u16\-Reg\-Add}}
|
||||||
|
\index{u16\-Reg\-Add@{u16\-Reg\-Add}!modbus_t@{modbus\-\_\-t}}
|
||||||
|
\subsubsection[{u16\-Reg\-Add}]{\setlength{\rightskip}{0pt plus 5cm}uint16\-\_\-t modbus\-\_\-t\-::u16\-Reg\-Add}}\label{structmodbus__t_a224ead9ff72467696e94fba9cf06bd3c}
|
||||||
|
Address of the first register to access at slave/s
|
||||||
|
|
||||||
|
Definition at line 51 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{structmodbus__t_a57d1630d4548e5d50d79e206a48b09bc}{\index{modbus\-\_\-t@{modbus\-\_\-t}!u8fct@{u8fct}}
|
||||||
|
\index{u8fct@{u8fct}!modbus_t@{modbus\-\_\-t}}
|
||||||
|
\subsubsection[{u8fct}]{\setlength{\rightskip}{0pt plus 5cm}uint8\-\_\-t modbus\-\_\-t\-::u8fct}}\label{structmodbus__t_a57d1630d4548e5d50d79e206a48b09bc}
|
||||||
|
Function code\-: 1, 2, 3, 4, 5, 6, 15 or 16
|
||||||
|
|
||||||
|
Definition at line 50 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
\hypertarget{structmodbus__t_af78ad11f93e63022a1c279de7206358c}{\index{modbus\-\_\-t@{modbus\-\_\-t}!u8id@{u8id}}
|
||||||
|
\index{u8id@{u8id}!modbus_t@{modbus\-\_\-t}}
|
||||||
|
\subsubsection[{u8id}]{\setlength{\rightskip}{0pt plus 5cm}uint8\-\_\-t modbus\-\_\-t\-::u8id}}\label{structmodbus__t_af78ad11f93e63022a1c279de7206358c}
|
||||||
|
Slave address between 1 and 247. 0 means broadcast
|
||||||
|
|
||||||
|
Definition at line 49 of file Modbus\-Rtu.\-h.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The documentation for this struct was generated from the following file\-:\begin{DoxyCompactItemize}
|
||||||
|
\item
|
||||||
|
\hyperlink{_modbus_rtu_8h}{Modbus\-Rtu.\-h}\end{DoxyCompactItemize}
|
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
\begin{DoxyRefList}
|
||||||
|
\item[\label{todo__todo000001}%
|
||||||
|
\hypertarget{todo__todo000001}{}%
|
||||||
|
Member \hyperlink{group__loop_ga19398cabed57b6d085d014af6c149f54}{Modbus\-:\-:query} (\hyperlink{structmodbus__t}{modbus\-\_\-t} telegram)]finish function 15
|
||||||
|
\end{DoxyRefList}
|
@ -0,0 +1,35 @@
|
|||||||
|
/**
|
||||||
|
* Modbus slave example 3:
|
||||||
|
* The purpose of this example is to link a data array
|
||||||
|
* from the Arduino to an external device through RS485.
|
||||||
|
*
|
||||||
|
* Recommended Modbus Master: QModbus
|
||||||
|
* http://qmodbus.sourceforge.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ModbusRtu.h>
|
||||||
|
|
||||||
|
// assign the Arduino pin that must be connected to RE-DE RS485 transceiver
|
||||||
|
#define TXEN 4
|
||||||
|
|
||||||
|
// data array for modbus network sharing
|
||||||
|
uint16_t au16data[16] = {
|
||||||
|
3, 1415, 9265, 4, 2, 7182, 28182, 8, 0, 0, 0, 0, 0, 0, 1, -1 };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modbus object declaration
|
||||||
|
* u8id : node id = 0 for master, = 1..247 for slave
|
||||||
|
* port : serial port
|
||||||
|
* u8txenpin : 0 for RS-232 and USB-FTDI
|
||||||
|
* or any pin number > 1 for RS-485
|
||||||
|
*/
|
||||||
|
Modbus slave(1,Serial,TXEN); // this is slave @1 and RS-485
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin( 19200 ); // baud-rate at 19200
|
||||||
|
slave.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
slave.poll( au16data, 16 );
|
||||||
|
}
|
@ -0,0 +1,84 @@
|
|||||||
|
/**
|
||||||
|
* Modbus master example 2:
|
||||||
|
* The purpose of this example is to query several sets of data
|
||||||
|
* from an external Modbus slave device.
|
||||||
|
* The link media can be USB or RS232.
|
||||||
|
*
|
||||||
|
* Recommended Modbus slave:
|
||||||
|
* diagslave http://www.modbusdriver.com/diagslave.html
|
||||||
|
*
|
||||||
|
* In a Linux box, run
|
||||||
|
* "./diagslave /dev/ttyUSB0 -b 19200 -d 8 -s 1 -p none -m rtu -a 1"
|
||||||
|
* This is:
|
||||||
|
* serial port /dev/ttyUSB0 at 19200 baud 8N1
|
||||||
|
* RTU mode and address @1
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ModbusRtu.h>
|
||||||
|
|
||||||
|
uint16_t au16data[16]; //!< data array for modbus network sharing
|
||||||
|
uint8_t u8state; //!< machine state
|
||||||
|
uint8_t u8query; //!< pointer to message query
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modbus object declaration
|
||||||
|
* u8id : node id = 0 for master, = 1..247 for slave
|
||||||
|
* port : serial port
|
||||||
|
* u8txenpin : 0 for RS-232 and USB-FTDI
|
||||||
|
* or any pin number > 1 for RS-485
|
||||||
|
*/
|
||||||
|
Modbus master(0,Serial,0); // this is master and RS-232 or USB-FTDI
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is an structe which contains a query to an slave device
|
||||||
|
*/
|
||||||
|
modbus_t telegram[2];
|
||||||
|
|
||||||
|
unsigned long u32wait;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
// telegram 0: read registers
|
||||||
|
telegram[0].u8id = 1; // slave address
|
||||||
|
telegram[0].u8fct = 3; // function code (this one is registers read)
|
||||||
|
telegram[0].u16RegAdd = 0; // start address in slave
|
||||||
|
telegram[0].u16CoilsNo = 4; // number of elements (coils or registers) to read
|
||||||
|
telegram[0].au16reg = au16data; // pointer to a memory array in the Arduino
|
||||||
|
|
||||||
|
// telegram 1: write a single register
|
||||||
|
telegram[1].u8id = 1; // slave address
|
||||||
|
telegram[1].u8fct = 6; // function code (this one is write a single register)
|
||||||
|
telegram[1].u16RegAdd = 4; // start address in slave
|
||||||
|
telegram[1].u16CoilsNo = 1; // number of elements (coils or registers) to read
|
||||||
|
telegram[1].au16reg = au16data+4; // pointer to a memory array in the Arduino
|
||||||
|
|
||||||
|
Serial.begin( 19200 ); // baud-rate at 19200
|
||||||
|
master.start();
|
||||||
|
master.setTimeOut( 5000 ); // if there is no answer in 5000 ms, roll over
|
||||||
|
u32wait = millis() + 1000;
|
||||||
|
u8state = u8query = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
switch( u8state ) {
|
||||||
|
case 0:
|
||||||
|
if (millis() > u32wait) u8state++; // wait state
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
master.query( telegram[u8query] ); // send query (only once)
|
||||||
|
u8state++;
|
||||||
|
u8query++;
|
||||||
|
if (u8query > 2) u8query = 0;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
master.poll(); // check incoming messages
|
||||||
|
if (master.getState() == COM_IDLE) {
|
||||||
|
u8state = 0;
|
||||||
|
u32wait = millis() + 1000;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
au16data[4] = analogRead( 0 );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,129 @@
|
|||||||
|
/**
|
||||||
|
* Modbus slave example 2:
|
||||||
|
* The purpose of this example is to link the Arduino digital and analog
|
||||||
|
* pins to an external device.
|
||||||
|
*
|
||||||
|
* Recommended Modbus Master: QModbus
|
||||||
|
* http://qmodbus.sourceforge.net/
|
||||||
|
*
|
||||||
|
* Editado al español por LuxARTS
|
||||||
|
*/
|
||||||
|
|
||||||
|
//Incluye la librería del protocolo Modbus
|
||||||
|
#include <ModbusRtu.h>
|
||||||
|
#define ID 1
|
||||||
|
|
||||||
|
//Crear instancia
|
||||||
|
Modbus slave(ID, Serial, 0); //ID del nodo. 0 para el master, 1-247 para esclavo
|
||||||
|
//Puerto serie (0 = TX: 1 - RX: 0)
|
||||||
|
//Protocolo serie. 0 para RS-232 + USB (default), cualquier pin mayor a 1 para RS-485
|
||||||
|
boolean led;
|
||||||
|
int8_t state = 0;
|
||||||
|
unsigned long tempus;
|
||||||
|
|
||||||
|
uint16_t au16data[9]; //La tabla de registros que se desea compartir por la red
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
Configuración del programa
|
||||||
|
*********************************************************/
|
||||||
|
void setup() {
|
||||||
|
io_setup(); //configura las entradas y salidas
|
||||||
|
|
||||||
|
Serial.begin(19200); //Abre la comunicación como esclavo
|
||||||
|
slave.start();
|
||||||
|
tempus = millis() + 100; //Guarda el tiempo actual + 100ms
|
||||||
|
digitalWrite(13, HIGH ); //Prende el led del pin 13 (el de la placa)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
Inicio del programa
|
||||||
|
*********************************************************/
|
||||||
|
void loop() {
|
||||||
|
//Comprueba el buffer de entrada
|
||||||
|
state = slave.poll( au16data, 9 ); //Parámetros: Tabla de registros para el intercambio de info
|
||||||
|
// Tamaño de la tabla de registros
|
||||||
|
//Devuelve 0 si no hay pedido de datos
|
||||||
|
//Devuelve 1 al 4 si hubo error de comunicación
|
||||||
|
//Devuelve mas de 4 si se procesó correctamente el pedido
|
||||||
|
|
||||||
|
if (state > 4) { //Si es mayor a 4 = el pedido fué correcto
|
||||||
|
tempus = millis() + 50; //Tiempo actual + 50ms
|
||||||
|
digitalWrite(13, HIGH);//Prende el led
|
||||||
|
}
|
||||||
|
if (millis() > tempus) digitalWrite(13, LOW );//Apaga el led 50ms después
|
||||||
|
|
||||||
|
//Actualiza los pines de Arduino con la tabla de Modbus
|
||||||
|
io_poll();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* pin maping:
|
||||||
|
* 2 - digital input
|
||||||
|
* 3 - digital input
|
||||||
|
* 4 - digital input
|
||||||
|
* 5 - digital input
|
||||||
|
* 6 - digital output
|
||||||
|
* 7 - digital output
|
||||||
|
* 8 - digital output
|
||||||
|
* 9 - digital output
|
||||||
|
* 10 - analog output
|
||||||
|
* 11 - analog output
|
||||||
|
* 14 - analog input
|
||||||
|
* 15 - analog input
|
||||||
|
*
|
||||||
|
* pin 13 reservado para ver el estado de la comunicación
|
||||||
|
*/
|
||||||
|
void io_setup() {
|
||||||
|
pinMode(2, INPUT);
|
||||||
|
pinMode(3, INPUT);
|
||||||
|
pinMode(4, INPUT);
|
||||||
|
pinMode(5, INPUT);
|
||||||
|
pinMode(6, OUTPUT);
|
||||||
|
pinMode(7, OUTPUT);
|
||||||
|
pinMode(8, OUTPUT);
|
||||||
|
pinMode(9, OUTPUT);
|
||||||
|
pinMode(10, OUTPUT);
|
||||||
|
pinMode(11, OUTPUT);
|
||||||
|
pinMode(13, OUTPUT);
|
||||||
|
|
||||||
|
digitalWrite(6, LOW );
|
||||||
|
digitalWrite(7, LOW );
|
||||||
|
digitalWrite(8, LOW );
|
||||||
|
digitalWrite(9, LOW );
|
||||||
|
digitalWrite(13, HIGH ); //Led del pin 13 de la placa
|
||||||
|
analogWrite(10, 0 ); //PWM 0%
|
||||||
|
analogWrite(11, 0 ); //PWM 0%
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
Enlaza la tabla de registros con los pines
|
||||||
|
*********************************************************/
|
||||||
|
void io_poll() {
|
||||||
|
// digital inputs -> au16data[0]
|
||||||
|
// Lee las entradas digitales y las guarda en bits de la primera variable del vector
|
||||||
|
// (es lo mismo que hacer una máscara)
|
||||||
|
bitWrite( au16data[0], 0, digitalRead( 2 )); //Lee el pin 2 de Arduino y lo guarda en el bit 0 de la variable au16data[0]
|
||||||
|
bitWrite( au16data[0], 1, digitalRead( 3 ));
|
||||||
|
bitWrite( au16data[0], 2, digitalRead( 4 ));
|
||||||
|
bitWrite( au16data[0], 3, digitalRead( 5 ));
|
||||||
|
|
||||||
|
// digital outputs -> au16data[1]
|
||||||
|
// Lee los bits de la segunda variable y los pone en las salidas digitales
|
||||||
|
digitalWrite( 6, bitRead( au16data[1], 0 )); //Lee el bit 0 de la variable au16data[1] y lo pone en el pin 6 de Arduino
|
||||||
|
digitalWrite( 7, bitRead( au16data[1], 1 ));
|
||||||
|
digitalWrite( 8, bitRead( au16data[1], 2 ));
|
||||||
|
digitalWrite( 9, bitRead( au16data[1], 3 ));
|
||||||
|
|
||||||
|
// Cambia el valor del PWM
|
||||||
|
analogWrite( 10, au16data[2] ); //El valor de au16data[2] se escribe en la salida de PWM del pin 10 de Arduino. (siendo 0=0% y 255=100%)
|
||||||
|
analogWrite( 11, au16data[3] );
|
||||||
|
|
||||||
|
// Lee las entradas analógicas (ADC)
|
||||||
|
au16data[4] = analogRead( 0 ); //El valor analógico leido en el pin A0 se guarda en au16data[4]. (siendo 0=0v y 1023=5v)
|
||||||
|
au16data[5] = analogRead( 1 );
|
||||||
|
|
||||||
|
// Diagnóstico de la comunicación (para debug)
|
||||||
|
au16data[6] = slave.getInCnt(); //Devuelve cuantos mensajes se recibieron
|
||||||
|
au16data[7] = slave.getOutCnt(); //Devuelve cuantos mensajes se transmitieron
|
||||||
|
au16data[8] = slave.getErrCnt(); //Devuelve cuantos errores hubieron
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
/**
|
||||||
|
* Modbus master example 1:
|
||||||
|
* The purpose of this example is to query an array of data
|
||||||
|
* from an external Modbus slave device.
|
||||||
|
* The link media can be USB or RS232.
|
||||||
|
*
|
||||||
|
* Recommended Modbus slave:
|
||||||
|
* diagslave http://www.modbusdriver.com/diagslave.html
|
||||||
|
*
|
||||||
|
* In a Linux box, run
|
||||||
|
* "./diagslave /dev/ttyUSB0 -b 19200 -d 8 -s 1 -p none -m rtu -a 1"
|
||||||
|
* This is:
|
||||||
|
* serial port /dev/ttyUSB0 at 19200 baud 8N1
|
||||||
|
* RTU mode and address @1
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ModbusRtu.h>
|
||||||
|
|
||||||
|
// data array for modbus network sharing
|
||||||
|
uint16_t au16data[16];
|
||||||
|
uint8_t u8state;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modbus object declaration
|
||||||
|
* u8id : node id = 0 for master, = 1..247 for slave
|
||||||
|
* port : serial port
|
||||||
|
* u8txenpin : 0 for RS-232 and USB-FTDI
|
||||||
|
* or any pin number > 1 for RS-485
|
||||||
|
*/
|
||||||
|
Modbus master(0,Serial,0); // this is master and RS-232 or USB-FTDI
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is an structe which contains a query to an slave device
|
||||||
|
*/
|
||||||
|
modbus_t telegram;
|
||||||
|
|
||||||
|
unsigned long u32wait;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin( 19200 ); // baud-rate at 19200
|
||||||
|
master.start();
|
||||||
|
master.setTimeOut( 2000 ); // if there is no answer in 2000 ms, roll over
|
||||||
|
u32wait = millis() + 1000;
|
||||||
|
u8state = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
switch( u8state ) {
|
||||||
|
case 0:
|
||||||
|
if (millis() > u32wait) u8state++; // wait state
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
telegram.u8id = 1; // slave address
|
||||||
|
telegram.u8fct = 3; // function code (this one is registers read)
|
||||||
|
telegram.u16RegAdd = 1; // start address in slave
|
||||||
|
telegram.u16CoilsNo = 4; // number of elements (coils or registers) to read
|
||||||
|
telegram.au16reg = au16data; // pointer to a memory array in the Arduino
|
||||||
|
|
||||||
|
master.query( telegram ); // send query (only once)
|
||||||
|
u8state++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
master.poll(); // check incoming messages
|
||||||
|
if (master.getState() == COM_IDLE) {
|
||||||
|
u8state = 0;
|
||||||
|
u32wait = millis() + 100;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* Modbus slave example 1:
|
||||||
|
* The purpose of this example is to link a data array
|
||||||
|
* from the Arduino to an external device.
|
||||||
|
*
|
||||||
|
* Recommended Modbus Master: QModbus
|
||||||
|
* http://qmodbus.sourceforge.net/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ModbusRtu.h>
|
||||||
|
|
||||||
|
// data array for modbus network sharing
|
||||||
|
uint16_t au16data[16] = {
|
||||||
|
3, 1415, 9265, 4, 2, 7182, 28182, 8, 0, 0, 0, 0, 0, 0, 1, -1 };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modbus object declaration
|
||||||
|
* u8id : node id = 0 for master, = 1..247 for slave
|
||||||
|
* port : serial port
|
||||||
|
* u8txenpin : 0 for RS-232 and USB-FTDI
|
||||||
|
* or any pin number > 1 for RS-485
|
||||||
|
*/
|
||||||
|
Modbus slave(1,Serial,0); // this is slave @1 and RS-232 or USB-FTDI
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin( 19200 ); // baud-rate at 19200
|
||||||
|
slave.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
slave.poll( au16data, 16 );
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* Modbus slave example 2:
|
||||||
|
* The purpose of this example is to link a data array
|
||||||
|
* from the Arduino to an external device.
|
||||||
|
*
|
||||||
|
* Recommended Modbus Master: modpoll
|
||||||
|
* http://www.modbusdriver.com/modpoll.html
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ModbusRtu.h>
|
||||||
|
|
||||||
|
// data array for modbus network sharing
|
||||||
|
uint16_t au16data[16] = {
|
||||||
|
3, 1415, 9265, 4, 2, 7182, 28182, 8, 0, 0, 0, 0, 0, 0, 1, -1 };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modbus object declaration
|
||||||
|
* u8id : node id = 0 for master, = 1..247 for slave
|
||||||
|
* port : serial port
|
||||||
|
* u8txenpin : 0 for RS-232 and USB-FTDI
|
||||||
|
* or any pin number > 1 for RS-485
|
||||||
|
*/
|
||||||
|
Modbus slave(1,Serial,0); // this is slave @1 and RS-232 or USB-FTDI
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin( 19200, SERIAL_8E1 ); // 19200 baud, 8-bits, even, 1-bit stop
|
||||||
|
slave.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
slave.poll( au16data, 16 );
|
||||||
|
}
|
@ -0,0 +1,101 @@
|
|||||||
|
/**
|
||||||
|
* Modbus master example 2:
|
||||||
|
* The purpose of this example is to query an array of data
|
||||||
|
* from an external Modbus slave device.
|
||||||
|
* This example is similar to "simple_master", but this example
|
||||||
|
* allows you to use software serial instead of hardware serial
|
||||||
|
* in case that you want to use D1 & D2 for other purposes.
|
||||||
|
* The link media can be USB or RS232.
|
||||||
|
|
||||||
|
The circuit:
|
||||||
|
* software serial rx(D3) connect to tx pin of another device
|
||||||
|
* software serial tx(D4) connect to rx pin of another device
|
||||||
|
|
||||||
|
* In this example, we will use two important methods so that we can use
|
||||||
|
* software serial.
|
||||||
|
*
|
||||||
|
* 1. Modbus::Modbus(uint8_t u8id)
|
||||||
|
* This is a constructor for a Master/Slave through USB/RS232C via software serial
|
||||||
|
* This constructor only specifies u8id (node address) and should be only
|
||||||
|
* used if you want to use software serial instead of hardware serial.
|
||||||
|
* This method is called if you create a ModBus object with only on parameter "u8id"
|
||||||
|
* u8id is the node address of the arduino that will be programmed on,
|
||||||
|
* 0 for master and 1..247 for slave
|
||||||
|
* for example: Modbus master(0);
|
||||||
|
* If you use this constructor you have to begin ModBus object by
|
||||||
|
* using "void Modbus::begin(SoftwareSerial *softPort, long u32speed)".
|
||||||
|
*
|
||||||
|
* 2. void Modbus::begin(SoftwareSerial *sPort, long u32speed)
|
||||||
|
* Initialize class object.
|
||||||
|
* This is the method you have to use if you construct the ModBus object by using
|
||||||
|
* Modbus::Modbus(uint8_t u8id) in order to use software serial and to avoid problems.
|
||||||
|
* You have to create a SoftwareSerial object on your own, as shown in the example.
|
||||||
|
* sPort is a pointer to your SoftwareSerial object, u32speed is the baud rate, in
|
||||||
|
* standard increments (300..115200)
|
||||||
|
|
||||||
|
created long time ago
|
||||||
|
by smarmengol
|
||||||
|
modified 29 July 2016
|
||||||
|
by Helium6072
|
||||||
|
|
||||||
|
This example code is in the public domain.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <ModbusRtu.h>
|
||||||
|
#include <SoftwareSerial.h>
|
||||||
|
|
||||||
|
// data array for modbus network sharing
|
||||||
|
uint16_t au16data[16];
|
||||||
|
uint8_t u8state;
|
||||||
|
|
||||||
|
SoftwareSerial mySerial(3, 5);//Create a SoftwareSerial object so that we can use software serial. Search "software serial" on Arduino.cc to find out more details.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Modbus object declaration
|
||||||
|
* u8id : node id = 0 for master, = 1..247 for slave
|
||||||
|
* port : serial port
|
||||||
|
* u8txenpin : 0 for RS-232 and USB-FTDI
|
||||||
|
* or any pin number > 1 for RS-485
|
||||||
|
*/
|
||||||
|
Modbus master(0, mySerial); // this is master and RS-232 or USB-FTDI via software serial
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is an structe which contains a query to an slave device
|
||||||
|
*/
|
||||||
|
modbus_t telegram;
|
||||||
|
|
||||||
|
unsigned long u32wait;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
mySerial.begin(9600);//use the hardware serial if you want to connect to your computer via usb cable, etc.
|
||||||
|
master.start(); // start the ModBus object.
|
||||||
|
master.setTimeOut( 2000 ); // if there is no answer in 2000 ms, roll over
|
||||||
|
u32wait = millis() + 1000;
|
||||||
|
u8state = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
switch( u8state ) {
|
||||||
|
case 0:
|
||||||
|
if (millis() > u32wait) u8state++; // wait state
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
telegram.u8id = 104; // slave address
|
||||||
|
telegram.u8fct = 4; // function code (this one is registers read)
|
||||||
|
telegram.u16RegAdd = 3; // start address in slave
|
||||||
|
telegram.u16CoilsNo = 1; // number of elements (coils or registers) to read
|
||||||
|
telegram.au16reg = au16data; // pointer to a memory array in the Arduino
|
||||||
|
|
||||||
|
master.query( telegram ); // send query (only once)
|
||||||
|
u8state++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
master.poll(); // check incoming messages
|
||||||
|
if (master.getState() == COM_IDLE) {
|
||||||
|
u8state = 0;
|
||||||
|
u32wait = millis() + 2000;
|
||||||
|
Serial.println(au16data[0]);//Or do something else!
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
#######################################
|
||||||
|
# Syntax Coloring Map For Modbus-Master-Slave
|
||||||
|
#######################################
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Datatypes (KEYWORD1)
|
||||||
|
#######################################
|
||||||
|
modbus_t KEYWORD1
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Methods and Functions (KEYWORD2)
|
||||||
|
#######################################
|
||||||
|
begin KEYWORD2
|
||||||
|
poll KEYWORD2
|
||||||
|
getInCnt KEYWORD2
|
||||||
|
getOutCnt KEYWORD2
|
||||||
|
getErrCnt KEYWORD2
|
||||||
|
getID KEYWORD2
|
||||||
|
getState KEYWORD2
|
||||||
|
query KEYWORD2
|
||||||
|
setTimeOut KEYWORD2
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Instances (KEYWORD2)
|
||||||
|
#######################################
|
||||||
|
Modbus KEYWORD2
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# Constants (LITERAL1)
|
||||||
|
#######################################
|
1
Версия_3.0/minimalmodbus-2.1.1.dist-info/INSTALLER
Normal file
@ -0,0 +1 @@
|
|||||||
|
pip
|
177
Версия_3.0/minimalmodbus-2.1.1.dist-info/LICENSE
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
98
Версия_3.0/minimalmodbus-2.1.1.dist-info/METADATA
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
Metadata-Version: 2.1
|
||||||
|
Name: minimalmodbus
|
||||||
|
Version: 2.1.1
|
||||||
|
Summary: Easy-to-use Modbus RTU and Modbus ASCII implementation for Python
|
||||||
|
Keywords: minimalmodbus,modbus,modbus-serial,modbus-RTU,modbus-ASCII
|
||||||
|
Author: Jonas Berg
|
||||||
|
Requires-Python: >=3.8
|
||||||
|
Description-Content-Type: text/x-rst
|
||||||
|
Classifier: Development Status :: 5 - Production/Stable
|
||||||
|
Classifier: Intended Audience :: Developers
|
||||||
|
Classifier: Intended Audience :: Information Technology
|
||||||
|
Classifier: Intended Audience :: Science/Research
|
||||||
|
Classifier: Intended Audience :: Manufacturing
|
||||||
|
Classifier: License :: OSI Approved :: Apache Software License
|
||||||
|
Classifier: Natural Language :: English
|
||||||
|
Classifier: Operating System :: OS Independent
|
||||||
|
Classifier: Operating System :: POSIX
|
||||||
|
Classifier: Operating System :: Microsoft :: Windows
|
||||||
|
Classifier: Operating System :: MacOS :: MacOS X
|
||||||
|
Classifier: Programming Language :: Python
|
||||||
|
Classifier: Programming Language :: Python :: 3
|
||||||
|
Classifier: Programming Language :: Python :: 3.8
|
||||||
|
Classifier: Programming Language :: Python :: 3.9
|
||||||
|
Classifier: Programming Language :: Python :: 3.10
|
||||||
|
Classifier: Programming Language :: Python :: 3.11
|
||||||
|
Classifier: Programming Language :: Python :: 3.12
|
||||||
|
Classifier: Topic :: Communications
|
||||||
|
Classifier: Topic :: Home Automation
|
||||||
|
Classifier: Topic :: Scientific/Engineering
|
||||||
|
Classifier: Topic :: Software Development :: Libraries
|
||||||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||||
|
Classifier: Topic :: System :: Hardware :: Hardware Drivers
|
||||||
|
Classifier: Topic :: Terminals :: Serial
|
||||||
|
Requires-Dist: pyserial>=3.0
|
||||||
|
Project-URL: Changelog, https://github.com/pyhys/minimalmodbus/blob/master/HISTORY.rst
|
||||||
|
Project-URL: Documentation, https://minimalmodbus.readthedocs.io
|
||||||
|
Project-URL: Homepage, https://github.com/pyhys/minimalmodbus
|
||||||
|
|
||||||
|
===============================
|
||||||
|
MinimalModbus
|
||||||
|
===============================
|
||||||
|
|
||||||
|
.. image:: https://github.com/pyhys/minimalmodbus/actions/workflows/build.yml/badge.svg
|
||||||
|
:target: https://github.com/pyhys/minimalmodbus/actions
|
||||||
|
:alt: Build Status
|
||||||
|
|
||||||
|
.. image:: https://codecov.io/gh/pyhys/minimalmodbus/branch/master/graph/badge.svg?token=6TcwYCQJHF
|
||||||
|
:target: https://codecov.io/gh/pyhys/minimalmodbus
|
||||||
|
:alt: Test coverage report
|
||||||
|
|
||||||
|
.. image:: https://readthedocs.org/projects/minimalmodbus/badge/?version=master
|
||||||
|
:target: https://readthedocs.org/projects/minimalmodbus/?badge=master
|
||||||
|
:alt: Documentation Status
|
||||||
|
|
||||||
|
.. image:: https://img.shields.io/pypi/v/minimalmodbus.svg
|
||||||
|
:target: https://pypi.org/project/minimalmodbus/
|
||||||
|
:alt: PyPI page link
|
||||||
|
|
||||||
|
|
||||||
|
Easy-to-use Modbus RTU and Modbus ASCII implementation for Python.
|
||||||
|
|
||||||
|
Web resources
|
||||||
|
-------------
|
||||||
|
|
||||||
|
* **Documentation**: https://minimalmodbus.readthedocs.io
|
||||||
|
* Source code on **GitHub**: https://github.com/pyhys/minimalmodbus
|
||||||
|
* Python package index (PyPI) with download: https://pypi.org/project/minimalmodbus/
|
||||||
|
|
||||||
|
Other web pages:
|
||||||
|
|
||||||
|
* Readthedocs project page: https://readthedocs.org/projects/minimalmodbus/
|
||||||
|
* codecov.io project page: https://codecov.io/github/pyhys/minimalmodbus
|
||||||
|
|
||||||
|
Obsolete web pages:
|
||||||
|
|
||||||
|
* Old Travis CI build status page: https://travis-ci.org/pyhys/minimalmodbus
|
||||||
|
* Old Sourceforge documentation page: http://minimalmodbus.sourceforge.net/
|
||||||
|
* Old Sourceforge project page: https://sourceforge.net/projects/minimalmodbus
|
||||||
|
* Old Sourceforge repository: https://sourceforge.net/p/minimalmodbus/code/HEAD/tree/
|
||||||
|
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
MinimalModbus is an easy-to-use Python module for talking to instruments (slaves)
|
||||||
|
from a computer (master) using the Modbus protocol, and is intended to be running on the master.
|
||||||
|
The only dependence is the pySerial module (also pure Python).
|
||||||
|
|
||||||
|
There are convenience functions to handle floats, strings and long integers
|
||||||
|
(in different byte orders).
|
||||||
|
|
||||||
|
This software supports the 'Modbus RTU' and 'Modbus ASCII' serial communication
|
||||||
|
versions of the protocol, and is intended for use on Linux, OS X and Windows platforms.
|
||||||
|
It is open source, and has the Apache License, Version 2.0.
|
||||||
|
|
||||||
|
For Python 3.8 and later. Tested with Python 3.8, 3.9, 3.10, 3.11 and 3.12.
|
||||||
|
|
||||||
|
This package uses semantic versioning.
|
||||||
|
|
8
Версия_3.0/minimalmodbus-2.1.1.dist-info/RECORD
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
__pycache__/minimalmodbus.cpython-312.pyc,,
|
||||||
|
minimalmodbus-2.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
minimalmodbus-2.1.1.dist-info/LICENSE,sha256=q-eH1HKuIGnpNchOsT_XcFGN-wi5LV8ZDzzX_20fbzI,10100
|
||||||
|
minimalmodbus-2.1.1.dist-info/METADATA,sha256=syG35wzFfqt2fQKrj1Zu9tByQAktO-cfhpwjhY5C3q4,4082
|
||||||
|
minimalmodbus-2.1.1.dist-info/RECORD,,
|
||||||
|
minimalmodbus-2.1.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||||
|
minimalmodbus-2.1.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
||||||
|
minimalmodbus.py,sha256=ZgeO9jIAuUwzSvygc_fY4dJdj0q_Z4fp6oQEvamqnVM,134115
|
0
Версия_3.0/minimalmodbus-2.1.1.dist-info/REQUESTED
Normal file
4
Версия_3.0/minimalmodbus-2.1.1.dist-info/WHEEL
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Wheel-Version: 1.0
|
||||||
|
Generator: flit 3.9.0
|
||||||
|
Root-Is-Purelib: true
|
||||||
|
Tag: py3-none-any
|