94 lines
3.3 KiB
Markdown
94 lines
3.3 KiB
Markdown
A groovy modbus library
|
|
=======================
|
|
|
|
[](https://travis-ci.org/stephane/libmodbus)
|
|
|
|
Overview
|
|
--------
|
|
|
|
libmodbus is a free software library to send/receive data with a device which
|
|
respects the Modbus protocol. This library can use a serial port or an Ethernet
|
|
connection.
|
|
|
|
The functions included in the library have been derived from the Modicon Modbus
|
|
Protocol Reference Guide which can be obtained from [www.modbus.org](http://www.modbus.org).
|
|
|
|
The license of libmodbus is *LGPL v2.1 or later*.
|
|
|
|
The documentation is available as manual pages (`man libmodbus` to read general
|
|
description and list of available functions) or Web pages
|
|
[www.libmodbus.org/documentation/](http://libmodbus.org/documentation/). The
|
|
documentation is licensed under the Creative Commons Attribution-ShareAlike
|
|
License 3.0 (Unported) (<http://creativecommons.org/licenses/by-sa/3.0/>).
|
|
|
|
The official website is [www.libmodbus.org](http://www.libmodbus.org).
|
|
|
|
The library is written in C and designed to run on Linux, Mac OS X, FreeBSD, Embox,
|
|
QNX and Windows.
|
|
|
|
You can use the library on MCUs with Embox RTOS.
|
|
|
|
Installation
|
|
------------
|
|
|
|
You will only need to install automake, autoconf, libtool and a C compiler (gcc
|
|
or clang) to compile the library and asciidoc and xmlto to generate the
|
|
documentation (optional).
|
|
|
|
To install, just run the usual dance, `./configure && make install`. Run
|
|
`./autogen.sh` first to generate the `configure` script if required.
|
|
|
|
You can change installation directory with prefix option, eg. `./configure
|
|
--prefix=/usr/local/`. You have to check that the installation library path is
|
|
properly set up on your system (*/etc/ld.so.conf.d*) and library cache is up to
|
|
date (run `ldconfig` as root if required).
|
|
|
|
The library provides a *libmodbus.pc* file to use with `pkg-config` to ease your
|
|
program compilation and linking.
|
|
|
|
If you want to compile with Microsoft Visual Studio, you need to install
|
|
<https://github.com/chemeris/msinttypes> to fill the absence of stdint.h.
|
|
|
|
To compile under Windows, install [MinGW](http://www.mingw.org/) and MSYS then
|
|
select the common packages (gcc, automake, libtool, etc). The directory
|
|
*./src/win32/* contains a Visual C project.
|
|
|
|
To compile under OS X with [homebrew](http://mxcl.github.com/homebrew/), you
|
|
will need to install the following dependencies first: `brew install autoconf
|
|
automake libtool`.
|
|
|
|
To build under Embox, you have to use its build system.
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
The documentation is available [online](http://libmodbus.org/documentation) or
|
|
as manual pages after installation.
|
|
|
|
The documentation is based on
|
|
[AsciiDoc](http://www.methods.co.nz/asciidoc/). Only man pages are built
|
|
by default with `make` command, you can run `make htmldoc` in *doc* directory
|
|
to generate HTML files.
|
|
|
|
Testing
|
|
-------
|
|
|
|
Some tests are provided in *tests* directory, you can freely edit the source
|
|
code to fit your needs (it's Free Software :).
|
|
|
|
See *tests/README* for a description of each program.
|
|
|
|
For a quick test of libmodbus, you can run the following programs in two shells:
|
|
|
|
1. ./unit-test-server
|
|
2. ./unit-test-client
|
|
|
|
By default, all TCP unit tests will be executed (see --help for options).
|
|
|
|
It's also possible to run the unit tests with `make check`.
|
|
|
|
To report a bug or to contribute
|
|
--------------------------------
|
|
|
|
See [CONTRIBUTING](CONTRIBUTING.md) document.
|