12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- modbus_send_raw_request(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
- -------
- [source,c]
- -------------------
- 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\n", modbus_strerror(errno));
- modbus_free(ctx);
- return -1;
- }
- req_length = modbus_send_raw_request(ctx, raw_req, 6 * sizeof(uint8_t));
- modbus_receive(ctx, -1, rsp);
- modbus_close(ctx);
- modbus_free(ctx);
- -------------------
- SEE ALSO
- --------
- linkmb:modbus_receive[3]
- AUTHORS
- -------
- The libmodbus documentation was written by Stéphane Raimbault
- <stephane.raimbault@gmail.com>
|