stephane / libmodbus

A Modbus library for Linux, Mac OS, FreeBSD and Windows
http://libmodbus.org
GNU Lesser General Public License v2.1
3.29k stars 1.71k forks source link

Missing documentation of `errno` values corresponding to Modbus exception codes #733

Open kyllingstad opened 5 months ago

kyllingstad commented 5 months ago

libmodbus version

e6b71a88866b86c1cb66c2dafa5a08e6b87ad596 (which is the tip of master at the time of writing)

Description

The libmodbus documentation does not specify how one can obtain information about Modbus exception codes returned by a server upon a failed read or write operation.

Actual behavior if applicable

By reading the source code, I've discovered that libmodbus does in fact set errno to codes corresponding to the Modbus exception codes, such as EMBXILFUN etc. However, as far as I can tell, this is not mentioned anywhere in the reference documentation. For example, the reference page for modbus_read_registers() lists EMBMDATA as the only error code (which is an internal libmodbus error and not a Modbus exception).

Expected behavior or suggestion

Ideally, each function reference page should list all possible errno values, or at least the non-standard ones.

At minimum, the Error handling section of the front page should describe in general terms how Modbus exception codes are handled, what the corresponding constants are called, and which functions may return them.

kyllingstad commented 5 months ago

I'd be happy to draft the minimal description I suggested at the end and submit a PR if this is desirable.