Minor
[libmodbus.git] / docs / modbus_reply_exception.md
blob640e435279ae0fa9e357943c251d6ab63c15c3b0
1 # modbus_reply_exception
3 ## Name
5 modbus_reply_exception - send an exception response
7 ## Synopsis
9 ```c
10 int modbus_reply_exception(modbus_t *ctx, const uint8_t *req, unsigned int exception_code);
11 ```
13 ## Description
15 The *modbus_reply_exception()* function shall send an exception response based
16 on the 'exception_code' in argument.
18 The libmodbus provides the following exception codes:
20 - MODBUS_EXCEPTION_ILLEGAL_FUNCTION (1)
21 - MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS (2)
22 - MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE (3)
23 - MODBUS_EXCEPTION_SLAVE_OR_SERVER_FAILURE (4)
24 - MODBUS_EXCEPTION_ACKNOWLEDGE (5)
25 - MODBUS_EXCEPTION_SLAVE_OR_SERVER_BUSY (6)
26 - MODBUS_EXCEPTION_NEGATIVE_ACKNOWLEDGE (7)
27 - MODBUS_EXCEPTION_MEMORY_PARITY (8)
28 - MODBUS_EXCEPTION_NOT_DEFINED (9)
29 - MODBUS_EXCEPTION_GATEWAY_PATH (10)
30 - MODBUS_EXCEPTION_GATEWAY_TARGET (11)
32 The initial request `req` is required to build a valid response.
34 ## Return value
36 The function shall return the length of the response sent if
37 successful. Otherwise it shall return -1 and set errno.
39 ## Errors
41 - *EINVAL*, the exception code is invalid
43 ## See also
45 - [modbus_reply](modbus_reply.md)