14 #define MAX_READ_COILS_COUNT 2000 16 #define MAX_READ_REGISTERS_COUNT 125 18 #define MAX_WRITE_COILS_COUNT 1968 20 #define MAX_WRITE_REGISTERS_COUNT 123 211 uint16_t max_queued_requests);
284 void (*callback)(
Result,
const bool*, uint16_t,
void*),
318 void (*callback)(
Result,
const bool*, uint16_t,
void*),
352 void (*callback)(
Result,
const uint16_t*, uint16_t,
void*),
386 void (*callback)(
Result,
const uint16_t*, uint16_t,
void*),
439 void (*callback)(
Result,
void*),
457 const uint16_t *values,
476 const uint16_t *values,
478 void (*callback)(
Result,
void*),
507 void (*callback)(
Result,
void*),
536 void (*callback)(
Result,
void*),
void read_coils_cb(Session *session, uint16_t start, uint16_t count, void(*callback)(Result, const bool *, uint16_t, void *), void *user_data)
perform a non-blocking operation to read coils
void destroy_channel(Channel *channel)
Destroy a previously created channel instance.
Struct that bundles together the types needed to make requests on a channel.
Definition: rodbus.h:135
Runtime * runtime
Definition: rodbus.h:139
struct RuntimeConfig RuntimeConfig
Optional non-default configuration of the Tokio runtime.
Optional non-default configuration of the Tokio runtime.
Definition: rodbus.h:157
Session build_session(Runtime *runtime, Channel *channel, uint8_t unit_id, uint32_t timeout_ms)
Convenience function to build a session struct.
void write_multiple_registers_cb(Session *session, uint16_t start, const uint16_t *values, uint16_t count, void(*callback)(Result, void *), void *user_data)
perform a non-blocking operation to write multiple registers
Channel * channel
Definition: rodbus.h:143
bool set_log_callback(void(*callback)(Level level, const char *message))
set the callback to invoke when an enabled level is logged
Result read_input_registers(Session *session, uint16_t start, uint16_t count, uint16_t *output)
perform a blocking operation to read input registers
struct Result Result
Type that describes the success or failure of an operation.
Result write_single_register(Session *session, uint16_t index, uint16_t value)
perform a blocking operation to write a single register
Result read_discrete_inputs(Session *session, uint16_t start, uint16_t count, bool *output)
perform a blocking operation to read discrete inputs
struct Runtime Runtime
Opaque pointer type for the Tokio runtime.
Definition: prelude.h:8
void destroy_runtime(Runtime *runtime)
Destroy a previously created runtime instance.
uint16_t num_core_threads
Definition: rodbus.h:162
void read_holding_registers_cb(Session *session, uint16_t start, uint16_t count, void(*callback)(Result, const uint16_t *, uint16_t, void *), void *user_data)
perform a non-blocking operation to read holding registers
void write_single_coil_cb(Session *session, uint16_t index, bool value, void(*callback)(Result, void *), void *user_data)
perform a non-blocking operation to write a single coil
void write_multiple_coils_cb(Session *session, uint16_t start, const bool *values, uint16_t count, void(*callback)(Result, void *), void *user_data)
perform a non-blocking operation to write multiple coils
Runtime * create_threaded_runtime(const RuntimeConfig *config)
create an instance of the multi-threaded work-stealing Tokio runtime
uint8_t exception
Definition: rodbus.h:177
Channel * create_tcp_client(Runtime *runtime, const char *address, uint16_t max_queued_requests)
Create an instance of a TCP client channel.
Result read_holding_registers(Session *session, uint16_t start, uint16_t count, uint16_t *output)
perform a blocking operation to read holding registers
void set_max_level(Level level)
set the maximum log level
struct Session Session
Struct that bundles together the types needed to make requests on a channel.
uint8_t unit_id
Definition: rodbus.h:147
Status status
Definition: rodbus.h:172
void read_input_registers_cb(Session *session, uint16_t start, uint16_t count, void(*callback)(Result, const uint16_t *, uint16_t, void *), void *user_data)
perform a non-blocking operation to read input registers
Exception
Definition: rodbus.h:25
Status
Definition: rodbus.h:88
uint32_t timeout_ms
Definition: rodbus.h:151
Result write_single_coil(Session *session, uint16_t index, bool value)
perform a blocking operation to write a single coil
void read_discrete_inputs_cb(Session *session, uint16_t start, uint16_t count, void(*callback)(Result, const bool *, uint16_t, void *), void *user_data)
perform a non-blocking operation to read discrete inputs
struct Channel Channel
Opaque pointer type for the Channel.
Definition: prelude.h:11
Result write_multiple_coils(Session *session, uint16_t start, const bool *values, uint16_t count)
perform a blocking operation to write multiple coils
void write_single_register_cb(Session *session, uint16_t index, uint16_t value, void(*callback)(Result, void *), void *user_data)
perform a non-blocking operation to write a single register
Level
Definition: rodbus.h:76
Result write_multiple_registers(Session *session, uint16_t start, const uint16_t *values, uint16_t count)
perform a blocking operation to write multiple registers
Result read_coils(Session *session, uint16_t start, uint16_t count, bool *output)
perform a blocking operation to read coils
Type that describes the success or failure of an operation.
Definition: rodbus.h:168