liblightmodbus 3.0
A lightweight, header-only, hardware-agnostic Modbus RTU/TCP library
|
Master's functions for building requests and parsing responses (header) More...
Go to the source code of this file.
Macros | |
#define | LIGHTMODBUS_DEFINE_BUILD_PDU_HEADER(f_suffix, ...) LIGHTMODBUS_WARN_UNUSED static inline ModbusErrorInfo modbusBuildRequest##f_suffix##PDU(ModbusMaster *status, __VA_ARGS__) |
Defines a header for a modbusBuildRequest*PDU() function. | |
#define | LIGHTMODBUS_DEFINE_BUILD_PDU_BODY(f_suffix, ...) |
Defines a body for a modbusBuildRequest*PDU() function. | |
#define | LIGHTMODBUS_DEFINE_BUILD_RTU_HEADER(f_suffix, ...) LIGHTMODBUS_WARN_UNUSED static inline ModbusErrorInfo modbusBuildRequest##f_suffix##RTU(ModbusMaster *status, uint8_t address, __VA_ARGS__) |
Defines a header for a modbusBuildRequest*RTU() function. | |
#define | LIGHTMODBUS_DEFINE_BUILD_RTU_BODY(f_suffix, ...) |
Defines a body for a modbusBuildRequest*RTU() function. | |
#define | LIGHTMODBUS_DEFINE_BUILD_TCP_HEADER(f_suffix, ...) LIGHTMODBUS_WARN_UNUSED static inline ModbusErrorInfo modbusBuildRequest##f_suffix##TCP(ModbusMaster *status, uint16_t transactionID, uint8_t unitID, __VA_ARGS__) |
Defines a header for a modbusBuildRequest*TCP() function. | |
#define | LIGHTMODBUS_DEFINE_BUILD_TCP_BODY(f_suffix, ...) |
Defines a body for a modbusBuildRequest*TCP() function. | |
Functions | |
ModbusErrorInfo | modbusParseResponse01020304 (ModbusMaster *status, uint8_t address, uint8_t function, const uint8_t *requestPDU, uint8_t requestLength, const uint8_t *responsePDU, uint8_t responseLength) |
Parses response to requests 01, 02, 03 and 04. | |
ModbusErrorInfo | modbusParseResponse0506 (ModbusMaster *status, uint8_t address, uint8_t function, const uint8_t *requestPDU, uint8_t requestLength, const uint8_t *responsePDU, uint8_t responseLength) |
Parses response to requests 05 and 06. | |
ModbusErrorInfo | modbusParseResponse1516 (ModbusMaster *status, uint8_t address, uint8_t function, const uint8_t *requestPDU, uint8_t requestLength, const uint8_t *responsePDU, uint8_t responseLength) |
Parses response to requests 15 and 16 (write mutliple regsiters/coils) | |
ModbusErrorInfo | modbusParseResponse22 (ModbusMaster *status, uint8_t address, uint8_t function, const uint8_t *requestPDU, uint8_t requestLength, const uint8_t *responsePDU, uint8_t responseLength) |
Parses response to request 22. | |
ModbusErrorInfo | modbusBuildRequest01020304 (ModbusMaster *status, uint8_t function, uint16_t index, uint16_t count) |
Read mutiple coils/discrete inputs/holding registers/input registers. | |
ModbusErrorInfo | modbusBuildRequest0506 (ModbusMaster *status, uint8_t function, uint16_t index, uint16_t value) |
Write single coil/holding register. | |
ModbusErrorInfo | modbusBuildRequest15 (ModbusMaster *status, uint16_t index, uint16_t count, const uint8_t *values) |
Write multiple coils. | |
ModbusErrorInfo | modbusBuildRequest16 (ModbusMaster *status, uint16_t index, uint16_t count, const uint16_t *values) |
Write multiple holding registers. | |
ModbusErrorInfo | modbusBuildRequest22 (ModbusMaster *status, uint16_t index, uint16_t andmask, uint16_t ormask) |
Mask write register request. | |
static ModbusErrorInfo | modbusBuildRequest01 (ModbusMaster *status, uint16_t index, uint16_t count) |
Read multiple coils - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest02 (ModbusMaster *status, uint16_t index, uint16_t count) |
Read multiple discrete inputs - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest03 (ModbusMaster *status, uint16_t index, uint16_t count) |
Read multiple holding registers - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest04 (ModbusMaster *status, uint16_t index, uint16_t count) |
Read multiple input registers - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest05 (ModbusMaster *status, uint16_t index, uint16_t count) |
Write single coil - a wrapper for modbusBuildRequest0506() | |
static ModbusErrorInfo | modbusBuildRequest06 (ModbusMaster *status, uint16_t index, uint16_t count) |
Write single holding register - a wrapper for modbusBuildRequest0506() | |
static ModbusErrorInfo | modbusBuildRequest01PDU (ModbusMaster *status, uint16_t index, uint16_t count) |
Read multiple coils - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest01RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count) |
Read multiple coils - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest01TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t count) |
Read multiple coils - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest02PDU (ModbusMaster *status, uint16_t index, uint16_t count) |
Read multiple discrete inputs - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest02RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count) |
Read multiple discrete inputs - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest02TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t count) |
Read multiple discrete inputs - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest03PDU (ModbusMaster *status, uint16_t index, uint16_t count) |
Read multiple holding registers - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest03RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count) |
Read multiple holding registers - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest03TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t count) |
Read multiple holding registers - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest04PDU (ModbusMaster *status, uint16_t index, uint16_t count) |
Read multiple input registers - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest04RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count) |
Read multiple input registers - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest04TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t count) |
Read multiple input registers - a wrapper for modbusBuildRequest01020304() | |
static ModbusErrorInfo | modbusBuildRequest05PDU (ModbusMaster *status, uint16_t index, uint16_t count) |
Write single coil - a wrapper for modbusBuildRequest0506() | |
static ModbusErrorInfo | modbusBuildRequest05RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count) |
Write single coil - a wrapper for modbusBuildRequest0506() | |
static ModbusErrorInfo | modbusBuildRequest05TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t count) |
Write single coil - a wrapper for modbusBuildRequest0506() | |
static ModbusErrorInfo | modbusBuildRequest06PDU (ModbusMaster *status, uint16_t index, uint16_t count) |
Write single holding register - a wrapper for modbusBuildRequest0506() | |
static ModbusErrorInfo | modbusBuildRequest06RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count) |
Write single holding register - a wrapper for modbusBuildRequest0506() | |
static ModbusErrorInfo | modbusBuildRequest06TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t count) |
Write single holding register - a wrapper for modbusBuildRequest0506() | |
static ModbusErrorInfo | modbusBuildRequest15PDU (ModbusMaster *status, uint16_t index, uint16_t count, const uint8_t *values) |
Write multiple coils. | |
static ModbusErrorInfo | modbusBuildRequest15RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count, const uint8_t *values) |
Write multiple coils. | |
static ModbusErrorInfo | modbusBuildRequest15TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t count, const uint8_t *values) |
Write multiple coils. | |
static ModbusErrorInfo | modbusBuildRequest16PDU (ModbusMaster *status, uint16_t index, uint16_t count, const uint16_t *values) |
Write multiple holding registers. | |
static ModbusErrorInfo | modbusBuildRequest16RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t count, const uint16_t *values) |
Write multiple holding registers. | |
static ModbusErrorInfo | modbusBuildRequest16TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t count, const uint16_t *values) |
Write multiple holding registers. | |
static ModbusErrorInfo | modbusBuildRequest22PDU (ModbusMaster *status, uint16_t index, uint16_t andmask, uint16_t ormask) |
Mask write register request. | |
static ModbusErrorInfo | modbusBuildRequest22RTU (ModbusMaster *status, uint8_t address, uint16_t index, uint16_t andmask, uint16_t ormask) |
Mask write register request. | |
static ModbusErrorInfo | modbusBuildRequest22TCP (ModbusMaster *status, uint16_t transactionID, uint8_t unitID, uint16_t index, uint16_t andmask, uint16_t ormask) |
Mask write register request. | |
Master's functions for building requests and parsing responses (header)
#define LIGHTMODBUS_DEFINE_BUILD_PDU_BODY | ( | f_suffix, | |
... | |||
) |
Defines a body for a modbusBuildRequest*PDU()
function.
#define LIGHTMODBUS_DEFINE_BUILD_PDU_HEADER | ( | f_suffix, | |
... | |||
) | LIGHTMODBUS_WARN_UNUSED static inline ModbusErrorInfo modbusBuildRequest##f_suffix##PDU(ModbusMaster *status, __VA_ARGS__) |
Defines a header for a modbusBuildRequest*PDU()
function.
#define LIGHTMODBUS_DEFINE_BUILD_RTU_BODY | ( | f_suffix, | |
... | |||
) |
Defines a body for a modbusBuildRequest*RTU()
function.
#define LIGHTMODBUS_DEFINE_BUILD_RTU_HEADER | ( | f_suffix, | |
... | |||
) | LIGHTMODBUS_WARN_UNUSED static inline ModbusErrorInfo modbusBuildRequest##f_suffix##RTU(ModbusMaster *status, uint8_t address, __VA_ARGS__) |
Defines a header for a modbusBuildRequest*RTU()
function.
#define LIGHTMODBUS_DEFINE_BUILD_TCP_BODY | ( | f_suffix, | |
... | |||
) |
Defines a body for a modbusBuildRequest*TCP()
function.
#define LIGHTMODBUS_DEFINE_BUILD_TCP_HEADER | ( | f_suffix, | |
... | |||
) | LIGHTMODBUS_WARN_UNUSED static inline ModbusErrorInfo modbusBuildRequest##f_suffix##TCP(ModbusMaster *status, uint16_t transactionID, uint8_t unitID, __VA_ARGS__) |
Defines a header for a modbusBuildRequest*TCP()
function.
|
inlinestatic |
Read multiple coils - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
ModbusErrorInfo modbusBuildRequest01020304 | ( | ModbusMaster * | status, |
uint8_t | function, | ||
uint16_t | index, | ||
uint16_t | count | ||
) |
Read mutiple coils/discrete inputs/holding registers/input registers.
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple coils - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple coils - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple coils - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple discrete inputs - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple discrete inputs - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple discrete inputs - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple discrete inputs - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple holding registers - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple holding registers - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple holding registers - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple holding registers - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple input registers - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple input registers - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple input registers - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Read multiple input registers - a wrapper for modbusBuildRequest01020304()
function | 1 to read coils, 2 to read discrete inputs, 3 to read holding registers, 4 to read input registers |
index | Index of the register to be read |
count | Number of registers to be read |
value | New value for the register/coil |
|
inlinestatic |
Write single coil - a wrapper for modbusBuildRequest0506()
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6 ModbusErrorInfo modbusBuildRequest0506 | ( | ModbusMaster * | status, |
uint8_t | function, | ||
uint16_t | index, | ||
uint16_t | value | ||
) |
Write single coil/holding register.
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6
|
inlinestatic |
Write single coil - a wrapper for modbusBuildRequest0506()
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6
|
inlinestatic |
Write single coil - a wrapper for modbusBuildRequest0506()
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6
|
inlinestatic |
Write single coil - a wrapper for modbusBuildRequest0506()
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6
|
inlinestatic |
Write single holding register - a wrapper for modbusBuildRequest0506()
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6
|
inlinestatic |
Write single holding register - a wrapper for modbusBuildRequest0506()
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6
|
inlinestatic |
Write single holding register - a wrapper for modbusBuildRequest0506()
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6
|
inlinestatic |
Write single holding register - a wrapper for modbusBuildRequest0506()
function | 5 to write a coil, 6 to write a holding register |
index | Index of the register/coil to be written |
value | New value for the register/coil |
function
is not 5 or 6 ModbusErrorInfo modbusBuildRequest15 | ( | ModbusMaster * | status, |
uint16_t | index, | ||
uint16_t | count, | ||
const uint8_t * | values | ||
) |
Write multiple coils.
index | Index of the first coil to be written |
count | Number of coils to be written |
values | Pointer to array containing count coil values (each bit corresponds to one coil value) |
count
is zero or too large
|
inlinestatic |
Write multiple coils.
index | Index of the first coil to be written |
count | Number of coils to be written |
values | Pointer to array containing count coil values (each bit corresponds to one coil value) |
count
is zero or too large
|
inlinestatic |
Write multiple coils.
index | Index of the first coil to be written |
count | Number of coils to be written |
values | Pointer to array containing count coil values (each bit corresponds to one coil value) |
count
is zero or too large
|
inlinestatic |
Write multiple coils.
index | Index of the first coil to be written |
count | Number of coils to be written |
values | Pointer to array containing count coil values (each bit corresponds to one coil value) |
count
is zero or too large ModbusErrorInfo modbusBuildRequest16 | ( | ModbusMaster * | status, |
uint16_t | index, | ||
uint16_t | count, | ||
const uint16_t * | values | ||
) |
Write multiple holding registers.
index | Index of the first register to be written |
count | Number of registers to be written |
values | Pointer to array containing count register values. Each 16-bit word corresponds to one register value |
count
is zero or too large
|
inlinestatic |
Write multiple holding registers.
index | Index of the first register to be written |
count | Number of registers to be written |
values | Pointer to array containing count register values. Each 16-bit word corresponds to one register value |
count
is zero or too large
|
inlinestatic |
Write multiple holding registers.
index | Index of the first register to be written |
count | Number of registers to be written |
values | Pointer to array containing count register values. Each 16-bit word corresponds to one register value |
count
is zero or too large
|
inlinestatic |
Write multiple holding registers.
index | Index of the first register to be written |
count | Number of registers to be written |
values | Pointer to array containing count register values. Each 16-bit word corresponds to one register value |
count
is zero or too large ModbusErrorInfo modbusBuildRequest22 | ( | ModbusMaster * | status, |
uint16_t | index, | ||
uint16_t | andmask, | ||
uint16_t | ormask | ||
) |
Mask write register request.
index | Register ID |
andmax | AND mask |
ormask | OR mask |
|
inlinestatic |
Mask write register request.
index | Register ID |
andmax | AND mask |
ormask | OR mask |
|
inlinestatic |
Mask write register request.
index | Register ID |
andmax | AND mask |
ormask | OR mask |
|
inlinestatic |
Mask write register request.
index | Register ID |
andmax | AND mask |
ormask | OR mask |
ModbusErrorInfo modbusParseResponse01020304 | ( | ModbusMaster * | status, |
uint8_t | address, | ||
uint8_t | function, | ||
const uint8_t * | requestPDU, | ||
uint8_t | requestLength, | ||
const uint8_t * | responsePDU, | ||
uint8_t | responseLength | ||
) |
Parses response to requests 01, 02, 03 and 04.
address | Address of the slave |
function | Response function code |
requestPDU | pointer to the PDU section of the request frame |
requestLength | request PDU section length |
responsePDU | pointer to the PDU section of the response frame |
responseLength | response PDU section length |
function
is not one of: 01, 02, 03, 04 ModbusErrorInfo modbusParseResponse0506 | ( | ModbusMaster * | status, |
uint8_t | address, | ||
uint8_t | function, | ||
const uint8_t * | requestPDU, | ||
uint8_t | requestLength, | ||
const uint8_t * | responsePDU, | ||
uint8_t | responseLength | ||
) |
Parses response to requests 05 and 06.
address | Address of the slave |
function | Response function code |
requestPDU | pointer to the PDU section of the request frame |
requestLength | request PDU section length |
responsePDU | pointer to the PDU section of the response frame |
responseLength | response PDU section length |
ModbusErrorInfo modbusParseResponse1516 | ( | ModbusMaster * | status, |
uint8_t | address, | ||
uint8_t | function, | ||
const uint8_t * | requestPDU, | ||
uint8_t | requestLength, | ||
const uint8_t * | responsePDU, | ||
uint8_t | responseLength | ||
) |
Parses response to requests 15 and 16 (write mutliple regsiters/coils)
address | Address of the slave |
function | Response function code |
requestPDU | pointer to the PDU section of the request frame |
requestLength | request PDU section length |
responsePDU | pointer to the PDU section of the response frame |
responseLength | response PDU section length |
ModbusErrorInfo modbusParseResponse22 | ( | ModbusMaster * | status, |
uint8_t | address, | ||
uint8_t | function, | ||
const uint8_t * | requestPDU, | ||
uint8_t | requestLength, | ||
const uint8_t * | responsePDU, | ||
uint8_t | responseLength | ||
) |
Parses response to request 22.
address | Address of the slave |
function | Response function code |
requestPDU | pointer to the PDU section of the request frame |
requestLength | request PDU section length |
responsePDU | pointer to the PDU section of the response frame |
responseLength | response PDU section length |