Skip to content



modbus_set_byte_timeout - set timeout between bytes


void modbus_set_byte_timeout(modbus_t *ctx, uint32_t to_sec, uint32_t to_usec);


The modbus_set_byte_timeout() function shall set the timeout interval between two consecutive bytes of the same message. The timeout is an upper bound on the amount of time elapsed before select() returns, if the time elapsed is longer than the defined timeout, an ETIMEDOUT error will be raised by the function waiting for a response.

The value of to_usec argument must be in the range 0 to 999999.

If both to_sec and to_usec are zero, this timeout will not be used at all. In this case, modbus_set_response_timeout() governs the entire handling of the response, the full confirmation response must be received before expiration of the response timeout. When a byte timeout is set, the response timeout is only used to wait for until the first byte of the response.

Return value

The function shall return 0 if successful. Otherwise it shall return -1 and set errno.


  • EINVAL, The argument ctx is NULL or to_usec is larger than 999999.

See also