MODBUS_REPORT_SLAVE_(3) Libmodbus Manual MODBUS_REPORT_SLAVE_(3)NAME
modbus_report_slave_id - returns a description of the controller
SYNOPSIS
int modbus_report_slave_id(modbus_t *ctx, uint8_t *dest);
DESCRIPTION
The modbus_report_slave_id() function shall send a request to the controller to obtain a description of the controller.
The response stored in dest contains:
o the byte count of the response
o the slave ID, this unique ID is in reality not unique at all so it's not possible to depend on it to know how the information are
packed in the response.
o the run indicator status (0x00 = OFF, 0xFF = ON)
o additional data specific to each controller. For example, libmodbus returns the version of the library as a string.
RETURN VALUE
The modbus_report_slave_id() function shall return the number of read data if successful. Otherwise it shall return -1 and set errno.
EXAMPLE
uint8_t *tab_bytes;
...
rc = modbus_report_slave_id(ctx, tab_bytes);
if (rc > 1) {
printf("Run Status Indicator: %s
", tab_bytes[1] ? "ON" : "OFF");
}
AUTHORS
The libmodbus documentation was written by Stephane Raimbault <stephane.raimbault@gmail.com[1]>
NOTES
1. stephane.raimbault@gmail.com
mailto:stephane.raimbault@gmail.com
libmodbus 3.0.3 05/26/2012 MODBUS_REPORT_SLAVE_(3)
Check Out this Related Man Page
MODBUS_SEND_RAW_REQU(3) Libmodbus Manual MODBUS_SEND_RAW_REQU(3)NAME
modbus_send_raw_request - send a raw request
SYNOPSIS
int modbus_send_raw_request(modbus_t *ctx, uint8_t *raw_req, int 'raw_req_length);
DESCRIPTION
The modbus_send_raw_request() function shall send a request via the socket of the context ctx. This function must be used for debugging
purposes because you have to take care to make a valid request by hand. The function only adds to the message, the header or CRC of the
selected backend, so raw_req must start and contain at least a slave/unit identifier and a function code. This function can be used to send
request not handled by the library.
RETURN VALUE
The modbus_send_raw_request() function shall return the full message length, counting the extra data relating to the backend, if
successful. Otherwise it shall return -1 and set errno.
EXAMPLE
modbus_t *ctx;
/* Read 5 holding registers from address 1 */
uint8_t raw_req[] = { 0xFF, 0x03, 0x00, 0x01, 0x0, 0x05 };
int req_length;
uint8_t rsp[MODBUS_TCP_MAX_ADU_LENGTH];
ctx = modbus_new_tcp("127.0.0.1", 1502);
if (modbus_connect(ctx) == -1) {
fprintf(stderr, "Connection failed: %s
", modbus_strerror(errno));
modbus_free(ctx);
return -1;
}
req_length = modbus_send_raw_request(ctx, raw_req, 6 * sizeof(uint8_t));
modbus_receive_confirmation(ctx, rsp);
modbus_close(ctx);
modbus_free(ctx);
SEE ALSO modbus_receive_confirmation(3)AUTHORS
The libmodbus documentation was written by Stephane Raimbault <stephane.raimbault@gmail.com[1]>
NOTES
1. stephane.raimbault@gmail.com
mailto:stephane.raimbault@gmail.com
libmodbus 3.0.3 05/26/2012 MODBUS_SEND_RAW_REQU(3)