File: modbus_reply_exception.md

package info (click to toggle)
libmodbus 3.1.11-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,112 kB
  • sloc: ansic: 5,495; javascript: 137; makefile: 90; sh: 26
file content (45 lines) | stat: -rw-r--r-- 1,138 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# modbus_reply_exception

## Name

modbus_reply_exception - send an exception response

## Synopsis

```c
int modbus_reply_exception(modbus_t *ctx, const uint8_t *req, unsigned int exception_code);
```

## Description

The *modbus_reply_exception()* function shall send an exception response based
on the 'exception_code' in argument.

The libmodbus provides the following exception codes:

- MODBUS_EXCEPTION_ILLEGAL_FUNCTION (1)
- MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS (2)
- MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE (3)
- MODBUS_EXCEPTION_SLAVE_OR_SERVER_FAILURE (4)
- MODBUS_EXCEPTION_ACKNOWLEDGE (5)
- MODBUS_EXCEPTION_SLAVE_OR_SERVER_BUSY (6)
- MODBUS_EXCEPTION_NEGATIVE_ACKNOWLEDGE (7)
- MODBUS_EXCEPTION_MEMORY_PARITY (8)
- MODBUS_EXCEPTION_NOT_DEFINED (9)
- MODBUS_EXCEPTION_GATEWAY_PATH (10)
- MODBUS_EXCEPTION_GATEWAY_TARGET (11)

The initial request `req` is required to build a valid response.

## Return value

The function shall return the length of the response sent if
successful. Otherwise it shall return -1 and set errno.

## Errors

- *EINVAL*, the exception code is invalid

## See also

- [modbus_reply](modbus_reply.md)