diff -r 000000000000 -r ae252e0fd9b8 README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Sun Mar 05 00:05:46 2017 +0000 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2001-2003,2016 Mario de Sousa (msousa@fe.up.pt) + * + * This file is part of the Modbus library for Beremiz and matiec. + * + * This Modbus 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, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 Modbus library. If not, see . + * + * This code is made available on the understanding that it will not be + * used in safety-critical situations without a full and competent review. + */ + + + + Modbus Protocol Libraries + ========================= + + This directory contains the libararies that implement the modbus protocol + stack. + + This protocol has been implemented as a two layer stack. Layer two includes + the mb_master and the mb_slave protocols. Layer one is composed of + the mb_rtu, mb_ascii and mb_tcp protocols. + + Layer1 protocols all implement the same interface, defined in mb_layer1.h + Layer2 protocols implement different interfaces, defined in mb_master.h + and mb_slave.h + + Which layer1 protocol that will be used by the program will depend on which + layer1 protocol implementation is linked to the final binary/executable. + It is not possible to define during run-time which layer1 protocol is to + be used. Each compiled program can only support a single layer1 protocol. + + Users of these libraries should only use functions defined in the layer2 + protocol header files (i.e. mb_master.h and mb_slave.h) + + If writing a program that will simultaneously be a master and a slave, + then only use the mb_slave_and_master.h header file! + In this case, do not forget to link the final binary to both the + master and slave protocol implementations (as well as the chosen + layer1 protocol implementation). + + + + ------------------------------------------ + | | | + layer 2 | mb_master.h | mb_slave.h | + | mb_master.c | mb_slave.c | + | | | + |----------------------------------------| + | mb_layer1.h | + Layer 1 | | | | + | mb_rtu.c | mb_ascii.c | mb_tcp.c | + | | | | + ------------------------------------------