Closed as duplicate of#120
Description
I was debugging a failure to initialize registers when I stumbled upon this major documentation error.
From the api.md
modbusServer.configureHoldingRegisters()
[...]
Returns
0 on success, 1 on failure
However in ModbusServer.cpp
the function is defined as:
int ModbusServer::configureHoldingRegisters(int startAddress, int nb)
{
if (startAddress < 0 || nb < 1) {
errno = EINVAL;
return -1;
}
size_t s = sizeof(_mbMapping.tab_registers[0]) * nb;
_mbMapping.tab_registers = (uint16_t*)realloc(_mbMapping.tab_registers, s);
if (_mbMapping.tab_registers == NULL) {
_mbMapping.start_registers = 0;
_mbMapping.nb_registers = 0;
return 0;
}
memset(_mbMapping.tab_registers, 0x00, s);
_mbMapping.start_registers = startAddress;
_mbMapping.nb_registers = nb;
return 1;
}
Which clerarly does the exact opposite.