liblightmodbus  2.0
A lightweight, cross-platform Modbus RTU library
mbcoils.h
Go to the documentation of this file.
1 /*
2  liblightmodbus - a lightweight, multiplatform Modbus library
3  Copyright (C) 2017 Jacek Wieczorek <mrjjot@gmail.com>
4 
5  This file is part of liblightmodbus.
6 
7  Liblightmodbus is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  Liblightmodbus is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
26 #ifndef LIGHTMODBUS_MBCOILS_H
27 #define LIGHTMODBUS_MBCOILS_H
28 
29 #include <inttypes.h>
30 #include "../libconf.h"
31 #include "../lightmodbus.h"
32 #include "../master.h"
33 
34 //Functions for building requests
35 #if defined(LIGHTMODBUS_F01M) || defined(LIGHTMODBUS_F02M)
36 
47 extern ModbusError modbusBuildRequest0102( ModbusMaster *status, uint8_t function, uint8_t address, uint16_t index, uint16_t count );
48 
62 static inline ModbusError modbusBuildRequest01( ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count )
63  { return modbusBuildRequest0102( (status), 1, (address), (index), (count) ); }
64 
77 static inline ModbusError modbusBuildRequest02( ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count )
78  { return modbusBuildRequest0102( (status), 2, (address), (index), (count) ); }
79 #endif
80 
81 #ifdef LIGHTMODBUS_F05M
82 
92 extern ModbusError modbusBuildRequest05( ModbusMaster *status, uint8_t address, uint16_t index, uint16_t value );
93 #endif
94 
95 #ifdef LIGHTMODBUS_F15M
96 
108 extern ModbusError modbusBuildRequest15( ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count, uint8_t *values );
109 #endif
110 
111 #endif
static ModbusError modbusBuildRequest02(ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count)
Builds request 02 (read multiple discrete inputs) frame.
Definition: mbcoils.h:77
ModbusError modbusBuildRequest0102(ModbusMaster *status, uint8_t function, uint8_t address, uint16_t index, uint16_t count)
Builds request 01 (read multiple coils) or 02 (read multiple discrete inputs) frame.
Definition: mbcoils.c:29
static ModbusError modbusBuildRequest01(ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count)
Builds request 01 (read multiple coils) frame.
Definition: mbcoils.h:62
ModbusError modbusBuildRequest05(ModbusMaster *status, uint8_t address, uint16_t index, uint16_t value)
Builds request 05 (write a single coil) frame.
Definition: mbcoils.c:90
Represents Modbus master device&#39;s status and configuration.
Definition: master.h:71
ModbusError modbusBuildRequest15(ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count, uint8_t *values)
Builds request 15 (write multiple coils) frame.
Definition: mbcoils.c:136
enum modbusError ModbusError
Represents a library runtime error code.