30#ifndef ZEPHYR_INCLUDE_MODBUS_H_ 
   31#define ZEPHYR_INCLUDE_MODBUS_H_ 
   40#define MODBUS_MBAP_LENGTH              7 
   42#define MODBUS_MBAP_AND_FC_LENGTH       (MODBUS_MBAP_LENGTH + 1) 
  192                      const bool coil_state);
 
  307                                float *
const reg_buf,
 
  330                                 float *
const reg_buf,
 
int modbus_read_coils(const int iface, const uint8_t unit_id, const uint16_t start_addr, uint8_t *const coil_tbl, const uint16_t num_coils)
Coil read (FC01)
 
int modbus_disable(const uint8_t iface)
Disable Modbus Interface.
 
void modbus_raw_get_header(struct modbus_adu *adu, const uint8_t *header)
Get MBAP header from a buffer.
 
modbus_mode
Modbus interface mode.
Definition: modbus.h:390
 
int modbus_read_input_regs(const int iface, const uint8_t unit_id, const uint16_t start_addr, uint16_t *const reg_buf, const uint16_t num_regs)
Read input registers (FC04)
 
int modbus_raw_submit_rx(const int iface, const struct modbus_adu *adu)
Submit raw ADU.
 
int(* modbus_raw_cb_t)(const int iface, const struct modbus_adu *adu, void *user_data)
ADU raw callback function signature.
Definition: modbus.h:384
 
int modbus_write_holding_regs_fp(const int iface, const uint8_t unit_id, const uint16_t start_addr, float *const reg_buf, const uint16_t num_regs)
Write floating-point holding registers (FC16)
 
int modbus_raw_backend_txn(const int iface, struct modbus_adu *adu)
Use interface as backend to send and receive ADU.
 
int modbus_read_holding_regs(const int iface, const uint8_t unit_id, const uint16_t start_addr, uint16_t *const reg_buf, const uint16_t num_regs)
Read holding registers (FC03)
 
void modbus_raw_put_header(const struct modbus_adu *adu, uint8_t *header)
Put MBAP header into a buffer.
 
int modbus_read_dinputs(const int iface, const uint8_t unit_id, const uint16_t start_addr, uint8_t *const di_tbl, const uint16_t num_di)
Read discrete inputs (FC02)
 
int modbus_init_client(const int iface, struct modbus_iface_param param)
Configure Modbus Interface as raw ADU client.
 
int modbus_read_holding_regs_fp(const int iface, const uint8_t unit_id, const uint16_t start_addr, float *const reg_buf, const uint16_t num_regs)
Read floating-point holding registers (FC03)
 
int modbus_iface_get_by_name(const char *iface_name)
Get Modbus interface index according to interface name.
 
int modbus_write_coils(const int iface, const uint8_t unit_id, const uint16_t start_addr, uint8_t *const coil_tbl, const uint16_t num_coils)
Write coils (FC15)
 
int modbus_request_diagnostic(const int iface, const uint8_t unit_id, const uint16_t sfunc, const uint16_t data, uint16_t *const data_out)
Read diagnostic (FC08)
 
int modbus_write_coil(const int iface, const uint8_t unit_id, const uint16_t coil_addr, const bool coil_state)
Write single coil (FC05)
 
void modbus_raw_set_server_failure(struct modbus_adu *adu)
Set Server Device Failure exception.
 
int modbus_write_holding_regs(const int iface, const uint8_t unit_id, const uint16_t start_addr, uint16_t *const reg_buf, const uint16_t num_regs)
Write holding registers (FC16)
 
int modbus_init_server(const int iface, struct modbus_iface_param param)
Configure Modbus Interface as raw ADU server.
 
int modbus_write_holding_reg(const int iface, const uint8_t unit_id, const uint16_t start_addr, const uint16_t reg_val)
Write single holding register (FC06)
 
@ MODBUS_MODE_RAW
Definition: modbus.h:396
 
@ MODBUS_MODE_RTU
Definition: modbus.h:392
 
@ MODBUS_MODE_ASCII
Definition: modbus.h:394
 
uart_config_parity
Parity modes.
Definition: uart.h:77
 
uart_config_stop_bits
Number of stop bits.
Definition: uart.h:86
 
state
Definition: parser_state.h:29
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
 
Frame struct used internally and for raw ADU support.
Definition: modbus.h:47
 
uint8_t fc
Definition: modbus.h:57
 
uint16_t trans_id
Definition: modbus.h:49
 
uint16_t crc
Definition: modbus.h:61
 
uint8_t data[CONFIG_MODBUS_BUFFER_SIZE - 4]
Definition: modbus.h:59
 
uint16_t length
Definition: modbus.h:53
 
uint8_t unit_id
Definition: modbus.h:55
 
uint16_t proto_id
Definition: modbus.h:51
 
User parameter structure to configure Modbus interface as client or server.
Definition: modbus.h:439
 
struct modbus_raw_cb rawcb
Definition: modbus.h:453
 
uint32_t rx_timeout
Definition: modbus.h:447
 
struct modbus_server_param server
Definition: modbus.h:443
 
struct modbus_serial_param serial
Definition: modbus.h:451
 
enum modbus_mode mode
Definition: modbus.h:441
 
modbus_raw_cb_t raw_tx_cb
Definition: modbus.h:431
 
void * user_data
Definition: modbus.h:432
 
Modbus serial line parameter.
Definition: modbus.h:402
 
enum uart_config_parity parity
Definition: modbus.h:410
 
enum uart_config_stop_bits stop_bits_client
Definition: modbus.h:417
 
uint32_t baud
Definition: modbus.h:404
 
Modbus server parameter.
Definition: modbus.h:423
 
uint8_t unit_id
Definition: modbus.h:427
 
struct modbus_user_callbacks * user_cb
Definition: modbus.h:425
 
int(* coil_wr)(uint16_t addr, bool state)
Definition: modbus.h:339
 
int(* holding_reg_wr_fp)(uint16_t addr, float reg)
Definition: modbus.h:360
 
int(* coil_rd)(uint16_t addr, bool *state)
Definition: modbus.h:336
 
int(* holding_reg_wr)(uint16_t addr, uint16_t reg)
Definition: modbus.h:354
 
int(* holding_reg_rd_fp)(uint16_t addr, float *reg)
Definition: modbus.h:357
 
int(* input_reg_rd)(uint16_t addr, uint16_t *reg)
Definition: modbus.h:345
 
int(* discrete_input_rd)(uint16_t addr, bool *state)
Definition: modbus.h:342
 
int(* holding_reg_rd)(uint16_t addr, uint16_t *reg)
Definition: modbus.h:351
 
int(* input_reg_rd_fp)(uint16_t addr, float *reg)
Definition: modbus.h:348
 
static fdata_t data[2]
Definition: test_fifo_contexts.c:15
 
static const intptr_t user_data[5]
Definition: main.c:588
 
Public APIs for UART drivers.