modbus: rename MODBUS RTU API to common MODBUS API
Rename MODBUS RTU API to common MODBUS API. Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
This commit is contained in:
parent
ac487727df
commit
ed0629f623
8 changed files with 145 additions and 145 deletions
|
@ -20,7 +20,7 @@
|
|||
*/
|
||||
|
||||
/**
|
||||
* @brief MODBUS RTU transport protocol over Serial Line
|
||||
* @brief MODBUS transport protocol API
|
||||
* @defgroup modbus MODBUS
|
||||
* @ingroup io_interfaces
|
||||
* @{
|
||||
|
@ -40,8 +40,8 @@ extern "C" {
|
|||
*
|
||||
* Sends a Modbus message to read the status of coils from a server.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Coil starting address
|
||||
* @param coil_tbl Pointer to an array of bytes containing the value
|
||||
* of the coils read.
|
||||
|
@ -62,7 +62,7 @@ extern "C" {
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_read_coils(const int iface,
|
||||
int modbus_read_coils(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint8_t *const coil_tbl,
|
||||
|
@ -74,8 +74,8 @@ int mb_rtu_read_coils(const int iface,
|
|||
* Sends a Modbus message to read the status of discrete inputs from
|
||||
* a server.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Discrete input starting address
|
||||
* @param di_tbl Pointer to an array that will receive the state
|
||||
* of the discrete inputs.
|
||||
|
@ -96,7 +96,7 @@ int mb_rtu_read_coils(const int iface,
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_read_dinputs(const int iface,
|
||||
int modbus_read_dinputs(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint8_t *const di_tbl,
|
||||
|
@ -108,8 +108,8 @@ int mb_rtu_read_dinputs(const int iface,
|
|||
* Sends a Modbus message to read the value of holding registers
|
||||
* from a server.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Register starting address
|
||||
* @param reg_buf Is a pointer to an array that will receive
|
||||
* the current values of the holding registers from
|
||||
|
@ -119,7 +119,7 @@ int mb_rtu_read_dinputs(const int iface,
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_read_holding_regs(const int iface,
|
||||
int modbus_read_holding_regs(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint16_t *const reg_buf,
|
||||
|
@ -131,8 +131,8 @@ int mb_rtu_read_holding_regs(const int iface,
|
|||
* Sends a Modbus message to read the value of input registers from
|
||||
* a server.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Register starting address
|
||||
* @param reg_buf Is a pointer to an array that will receive
|
||||
* the current value of the holding registers
|
||||
|
@ -142,7 +142,7 @@ int mb_rtu_read_holding_regs(const int iface,
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_read_input_regs(const int iface,
|
||||
int modbus_read_input_regs(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint16_t *const reg_buf,
|
||||
|
@ -153,14 +153,14 @@ int mb_rtu_read_input_regs(const int iface,
|
|||
*
|
||||
* Sends a Modbus message to write the value of single coil to a server.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param coil_addr Coils starting address
|
||||
* @param coil_state Is the desired state of the coil
|
||||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_write_coil(const int iface,
|
||||
int modbus_write_coil(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t coil_addr,
|
||||
const bool coil_state);
|
||||
|
@ -171,14 +171,14 @@ int mb_rtu_write_coil(const int iface,
|
|||
* Sends a Modbus message to write the value of single holding register
|
||||
* to a server unit.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Coils starting address
|
||||
* @param reg_val Desired value of the holding register
|
||||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_write_holding_reg(const int iface,
|
||||
int modbus_write_holding_reg(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
const uint16_t reg_val);
|
||||
|
@ -188,15 +188,15 @@ int mb_rtu_write_holding_reg(const int iface,
|
|||
*
|
||||
* Sends a Modbus message to perform a diagnostic function of a server unit.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param sfunc Diagnostic sub-function code
|
||||
* @param data Sub-function data
|
||||
* @param data_out Pointer to the data value
|
||||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_request_diagnostic(const int iface,
|
||||
int modbus_request_diagnostic(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t sfunc,
|
||||
const uint16_t data,
|
||||
|
@ -207,8 +207,8 @@ int mb_rtu_request_diagnostic(const int iface,
|
|||
*
|
||||
* Sends a Modbus message to write to coils on a server unit.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Coils starting address
|
||||
* @param coil_tbl Pointer to an array of bytes containing the value
|
||||
* of the coils to write.
|
||||
|
@ -229,7 +229,7 @@ int mb_rtu_request_diagnostic(const int iface,
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_write_coils(const int iface,
|
||||
int modbus_write_coils(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint8_t *const coil_tbl,
|
||||
|
@ -241,8 +241,8 @@ int mb_rtu_write_coils(const int iface,
|
|||
* Sends a Modbus message to write to integer holding registers
|
||||
* to a server unit.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Register starting address
|
||||
* @param reg_buf Is a pointer to an array containing
|
||||
* the value of the holding registers to write.
|
||||
|
@ -252,7 +252,7 @@ int mb_rtu_write_coils(const int iface,
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_write_holding_regs(const int iface,
|
||||
int modbus_write_holding_regs(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint16_t *const reg_buf,
|
||||
|
@ -264,8 +264,8 @@ int mb_rtu_write_holding_regs(const int iface,
|
|||
* Sends a Modbus message to read the value of floating-point
|
||||
* holding registers from a server unit.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Register starting address
|
||||
* @param reg_buf Is a pointer to an array that will receive
|
||||
* the current values of the holding registers from
|
||||
|
@ -275,7 +275,7 @@ int mb_rtu_write_holding_regs(const int iface,
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_read_holding_regs_fp(const int iface,
|
||||
int modbus_read_holding_regs_fp(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
float *const reg_buf,
|
||||
|
@ -287,8 +287,8 @@ int mb_rtu_read_holding_regs_fp(const int iface,
|
|||
* Sends a Modbus message to write to floating-point holding registers
|
||||
* to a server unit.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param start_addr Register starting address
|
||||
* @param reg_buf Is a pointer to an array containing
|
||||
* the value of the holding registers to write.
|
||||
|
@ -298,14 +298,14 @@ int mb_rtu_read_holding_regs_fp(const int iface,
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_write_holding_regs_fp(const int iface,
|
||||
int modbus_write_holding_regs_fp(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
float *const reg_buf,
|
||||
const uint16_t num_regs);
|
||||
|
||||
/** Modbus Server User Callback structure */
|
||||
struct mbs_rtu_user_callbacks {
|
||||
struct modbus_user_callbacks {
|
||||
/** Coil read callback */
|
||||
int (*coil_rd)(uint16_t addr, bool *state);
|
||||
|
||||
|
@ -335,22 +335,22 @@ struct mbs_rtu_user_callbacks {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief Get Modbus RTU interface index according to interface name
|
||||
* @brief Get Modbus interface index according to interface name
|
||||
*
|
||||
* If there is more than one interface, it can be used to clearly
|
||||
* identify interfaces in the application.
|
||||
*
|
||||
* @param iface_name Modbus RTU interface name
|
||||
* @param iface_name Modbus interface name
|
||||
*
|
||||
* @retval Modbus RTU interface index or negative error value.
|
||||
* @retval Modbus interface index or negative error value.
|
||||
*/
|
||||
int mb_rtu_iface_get_by_name(const char *iface_name);
|
||||
int modbus_iface_get_by_name(const char *iface_name);
|
||||
|
||||
/**
|
||||
* @brief Configure Modbus Interface as server
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param node_addr Modbus RTU address of the server
|
||||
* @param iface Modbus interface index
|
||||
* @param node_addr Modbus unit address of the server
|
||||
* @param baud Baudrate of the serial line
|
||||
* @param parity UART's parity setting:
|
||||
* UART_CFG_PARITY_NONE,
|
||||
|
@ -361,15 +361,15 @@ int mb_rtu_iface_get_by_name(const char *iface_name);
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_cfg_server(const uint8_t iface, const uint8_t node_addr,
|
||||
const uint32_t baud, enum uart_config_parity parity,
|
||||
struct mbs_rtu_user_callbacks *const cb,
|
||||
bool ascii_mode);
|
||||
int modbus_init_server(const uint8_t iface, const uint8_t node_addr,
|
||||
const uint32_t baud, enum uart_config_parity parity,
|
||||
struct modbus_user_callbacks *const cb,
|
||||
bool ascii_mode);
|
||||
|
||||
/**
|
||||
* @brief Configure Modbus Interface as client
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param iface Modbus interface index
|
||||
* @param baud Baudrate of the serial line
|
||||
* @param parity UART's parity setting:
|
||||
* UART_CFG_PARITY_NONE,
|
||||
|
@ -381,20 +381,20 @@ int mb_rtu_cfg_server(const uint8_t iface, const uint8_t node_addr,
|
|||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_cfg_client(const uint8_t iface,
|
||||
const uint32_t baud, enum uart_config_parity parity,
|
||||
uint32_t rx_timeout,
|
||||
bool ascii_mode);
|
||||
int modbus_init_client(const uint8_t iface,
|
||||
const uint32_t baud, enum uart_config_parity parity,
|
||||
uint32_t rx_timeout,
|
||||
bool ascii_mode);
|
||||
/**
|
||||
* @brief Disable Modbus Interface
|
||||
*
|
||||
* This function is called to disable Modbus interface.
|
||||
*
|
||||
* @param iface Modbus RTU interface index
|
||||
* @param iface Modbus interface index
|
||||
*
|
||||
* @retval 0 If the function was successful
|
||||
*/
|
||||
int mb_rtu_disable_iface(const uint8_t iface);
|
||||
int modbus_disable(const uint8_t iface);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -19,8 +19,8 @@ static int init_modbus_client(void)
|
|||
const uint32_t mb_rtu_br = 19200;
|
||||
const uint32_t rsp_timeout = 50000;
|
||||
|
||||
return mb_rtu_cfg_client(RTU_IFACE, mb_rtu_br, UART_CFG_PARITY_NONE,
|
||||
rsp_timeout, false);
|
||||
return modbus_init_client(RTU_IFACE, mb_rtu_br, UART_CFG_PARITY_NONE,
|
||||
rsp_timeout, false);
|
||||
}
|
||||
|
||||
void main(void)
|
||||
|
@ -38,14 +38,14 @@ void main(void)
|
|||
return;
|
||||
}
|
||||
|
||||
err = mb_rtu_write_holding_regs(RTU_IFACE, node, 0, holding_reg,
|
||||
err = modbus_write_holding_regs(RTU_IFACE, node, 0, holding_reg,
|
||||
ARRAY_SIZE(holding_reg));
|
||||
if (err != 0) {
|
||||
LOG_ERR("FC16 failed");
|
||||
return;
|
||||
}
|
||||
|
||||
err = mb_rtu_read_holding_regs(RTU_IFACE, node, 0, holding_reg,
|
||||
err = modbus_read_holding_regs(RTU_IFACE, node, 0, holding_reg,
|
||||
ARRAY_SIZE(holding_reg));
|
||||
if (err != 0) {
|
||||
LOG_ERR("FC03 failed with %d", err);
|
||||
|
@ -58,7 +58,7 @@ void main(void)
|
|||
while (true) {
|
||||
uint16_t addr = 0;
|
||||
|
||||
err = mb_rtu_read_coils(RTU_IFACE, node, 0, coil, coil_qty);
|
||||
err = modbus_read_coils(RTU_IFACE, node, 0, coil, coil_qty);
|
||||
if (err != 0) {
|
||||
LOG_ERR("FC01 failed with %d", err);
|
||||
return;
|
||||
|
@ -66,28 +66,28 @@ void main(void)
|
|||
|
||||
LOG_INF("Coils state 0x%02x", coil[0]);
|
||||
|
||||
err = mb_rtu_write_coil(RTU_IFACE, node, addr++, true);
|
||||
err = modbus_write_coil(RTU_IFACE, node, addr++, true);
|
||||
if (err != 0) {
|
||||
LOG_ERR("FC05 failed with %d", err);
|
||||
return;
|
||||
}
|
||||
|
||||
k_msleep(sleep);
|
||||
err = mb_rtu_write_coil(RTU_IFACE, node, addr++, true);
|
||||
err = modbus_write_coil(RTU_IFACE, node, addr++, true);
|
||||
if (err != 0) {
|
||||
LOG_ERR("FC05 failed with %d", err);
|
||||
return;
|
||||
}
|
||||
|
||||
k_msleep(sleep);
|
||||
err = mb_rtu_write_coil(RTU_IFACE, node, addr++, true);
|
||||
err = modbus_write_coil(RTU_IFACE, node, addr++, true);
|
||||
if (err != 0) {
|
||||
LOG_ERR("FC05 failed with %d", err);
|
||||
return;
|
||||
}
|
||||
|
||||
k_msleep(sleep);
|
||||
err = mb_rtu_read_coils(RTU_IFACE, node, 0, coil, coil_qty);
|
||||
err = modbus_read_coils(RTU_IFACE, node, 0, coil, coil_qty);
|
||||
if (err != 0) {
|
||||
LOG_ERR("FC01 failed with %d", err);
|
||||
return;
|
||||
|
@ -96,7 +96,7 @@ void main(void)
|
|||
LOG_INF("Coils state 0x%02x", coil[0]);
|
||||
|
||||
coil[0] = 0;
|
||||
err = mb_rtu_write_coils(RTU_IFACE, node, 0, coil, coil_qty);
|
||||
err = modbus_write_coils(RTU_IFACE, node, 0, coil, coil_qty);
|
||||
if (err != 0) {
|
||||
LOG_ERR("FC15 failed with %d", err);
|
||||
return;
|
||||
|
|
|
@ -93,7 +93,7 @@ static int holding_reg_wr(uint16_t addr, uint16_t reg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct mbs_rtu_user_callbacks mbs_cbs = {
|
||||
static struct modbus_user_callbacks mbs_cbs = {
|
||||
.coil_rd = coil_rd,
|
||||
.coil_wr = coil_wr,
|
||||
.holding_reg_rd = holding_reg_rd,
|
||||
|
@ -106,15 +106,15 @@ static int init_modbus_server(void)
|
|||
const char iface_name[] = {DT_PROP(DT_INST(0, zephyr_modbus_serial), label)};
|
||||
int iface;
|
||||
|
||||
iface = mb_rtu_iface_get_by_name(iface_name);
|
||||
iface = modbus_iface_get_by_name(iface_name);
|
||||
|
||||
if (iface < 0) {
|
||||
LOG_ERR("Failed to get iface index for %s", iface_name);
|
||||
return iface;
|
||||
}
|
||||
|
||||
return mb_rtu_cfg_server(iface, 1, mb_rtu_br, UART_CFG_PARITY_NONE,
|
||||
&mbs_cbs, false);
|
||||
return modbus_init_server(iface, 1, mb_rtu_br, UART_CFG_PARITY_NONE,
|
||||
&mbs_cbs, false);
|
||||
}
|
||||
|
||||
void main(void)
|
||||
|
|
|
@ -296,7 +296,7 @@ exit_error:
|
|||
return err;
|
||||
}
|
||||
|
||||
int mb_rtu_read_coils(const int iface,
|
||||
int modbus_read_coils(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint8_t *const coil_tbl,
|
||||
|
@ -321,7 +321,7 @@ int mb_rtu_read_coils(const int iface,
|
|||
return err;
|
||||
}
|
||||
|
||||
int mb_rtu_read_dinputs(const int iface,
|
||||
int modbus_read_dinputs(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint8_t *const di_tbl,
|
||||
|
@ -346,7 +346,7 @@ int mb_rtu_read_dinputs(const int iface,
|
|||
return err;
|
||||
}
|
||||
|
||||
int mb_rtu_read_holding_regs(const int iface,
|
||||
int modbus_read_holding_regs(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint16_t *const reg_buf,
|
||||
|
@ -373,7 +373,7 @@ int mb_rtu_read_holding_regs(const int iface,
|
|||
|
||||
|
||||
#ifdef CONFIG_MODBUS_RTU_FP_EXTENSIONS
|
||||
int mb_rtu_read_holding_regs_fp(const int iface,
|
||||
int modbus_read_holding_regs_fp(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
float *const reg_buf,
|
||||
|
@ -399,7 +399,7 @@ int mb_rtu_read_holding_regs_fp(const int iface,
|
|||
}
|
||||
#endif
|
||||
|
||||
int mb_rtu_read_input_regs(const int iface,
|
||||
int modbus_read_input_regs(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint16_t *const reg_buf,
|
||||
|
@ -424,7 +424,7 @@ int mb_rtu_read_input_regs(const int iface,
|
|||
return err;
|
||||
}
|
||||
|
||||
int mb_rtu_write_coil(const int iface,
|
||||
int modbus_write_coil(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t coil_addr,
|
||||
const bool coil_state)
|
||||
|
@ -455,7 +455,7 @@ int mb_rtu_write_coil(const int iface,
|
|||
return err;
|
||||
}
|
||||
|
||||
int mb_rtu_write_holding_reg(const int iface,
|
||||
int modbus_write_holding_reg(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
const uint16_t reg_val)
|
||||
|
@ -479,7 +479,7 @@ int mb_rtu_write_holding_reg(const int iface,
|
|||
return err;
|
||||
}
|
||||
|
||||
int mb_rtu_request_diagnostic(const int iface,
|
||||
int modbus_request_diagnostic(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t sfunc,
|
||||
const uint16_t data,
|
||||
|
@ -504,7 +504,7 @@ int mb_rtu_request_diagnostic(const int iface,
|
|||
return err;
|
||||
}
|
||||
|
||||
int mb_rtu_write_coils(const int iface,
|
||||
int modbus_write_coils(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint8_t *const coil_tbl,
|
||||
|
@ -537,7 +537,7 @@ int mb_rtu_write_coils(const int iface,
|
|||
return err;
|
||||
}
|
||||
|
||||
int mb_rtu_write_holding_regs(const int iface,
|
||||
int modbus_write_holding_regs(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
uint16_t *const reg_buf,
|
||||
|
@ -574,7 +574,7 @@ int mb_rtu_write_holding_regs(const int iface,
|
|||
}
|
||||
|
||||
#ifdef CONFIG_MODBUS_RTU_FP_EXTENSIONS
|
||||
int mb_rtu_write_holding_regs_fp(const int iface,
|
||||
int modbus_write_holding_regs_fp(const int iface,
|
||||
const uint8_t node_addr,
|
||||
const uint16_t start_addr,
|
||||
float *const reg_buf,
|
||||
|
|
|
@ -664,10 +664,10 @@ static struct mb_rtu_context *mb_cfg_iface(const uint8_t iface,
|
|||
return ctx;
|
||||
}
|
||||
|
||||
int mb_rtu_cfg_server(const uint8_t iface, const uint8_t node_addr,
|
||||
const uint32_t baud, const enum uart_config_parity parity,
|
||||
struct mbs_rtu_user_callbacks *const cb,
|
||||
const bool ascii_mode)
|
||||
int modbus_init_server(const uint8_t iface, const uint8_t node_addr,
|
||||
const uint32_t baud, const enum uart_config_parity parity,
|
||||
struct modbus_user_callbacks *const cb,
|
||||
const bool ascii_mode)
|
||||
{
|
||||
struct mb_rtu_context *ctx;
|
||||
|
||||
|
@ -693,7 +693,7 @@ int mb_rtu_cfg_server(const uint8_t iface, const uint8_t node_addr,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int mb_rtu_iface_get_by_name(const char *iface_name)
|
||||
int modbus_iface_get_by_name(const char *iface_name)
|
||||
{
|
||||
for (int i = 0; i < ARRAY_SIZE(mb_ctx_tbl); i++) {
|
||||
if (strcmp(iface_name, mb_ctx_tbl[i].iface_name) == 0) {
|
||||
|
@ -704,10 +704,10 @@ int mb_rtu_iface_get_by_name(const char *iface_name)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
int mb_rtu_cfg_client(const uint8_t iface,
|
||||
const uint32_t baud, const enum uart_config_parity parity,
|
||||
const uint32_t rx_timeout,
|
||||
const bool ascii_mode)
|
||||
int modbus_init_client(const uint8_t iface,
|
||||
const uint32_t baud, const enum uart_config_parity parity,
|
||||
const uint32_t rx_timeout,
|
||||
const bool ascii_mode)
|
||||
{
|
||||
struct mb_rtu_context *ctx;
|
||||
|
||||
|
@ -726,7 +726,7 @@ int mb_rtu_cfg_client(const uint8_t iface,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int mb_rtu_disable_iface(const uint8_t iface)
|
||||
int modbus_disable(const uint8_t iface)
|
||||
{
|
||||
struct mb_rtu_context *ctx;
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@ struct mb_rtu_context {
|
|||
/* RTU timeout (maximum inter-frame delay) */
|
||||
uint32_t rtu_timeout;
|
||||
/* Pointer to user server callbacks */
|
||||
struct mbs_rtu_user_callbacks *mbs_user_cb;
|
||||
struct modbus_user_callbacks *mbs_user_cb;
|
||||
/* Interface state */
|
||||
atomic_t state;
|
||||
/* Pointer to current position in buffer */
|
||||
|
|
|
@ -23,35 +23,35 @@ void test_rtu_coil_wr_rd(void)
|
|||
int err;
|
||||
|
||||
for (uint16_t idx = 0; idx < coil_qty; idx++) {
|
||||
err = mb_rtu_write_coil(iface, node, idx, true);
|
||||
err = modbus_write_coil(iface, node, idx, true);
|
||||
zassert_equal(err, 0, "FC05 request failed");
|
||||
}
|
||||
|
||||
err = mb_rtu_read_coils(iface, node, 0, coil, coil_qty);
|
||||
err = modbus_read_coils(iface, node, 0, coil, coil_qty);
|
||||
zassert_equal(err, 0, "FC01 request failed");
|
||||
|
||||
zassert_equal(coil[0], 0xff, "FC05 verify coil 0-7 failed");
|
||||
zassert_equal(coil[1], 0xff, "FC05 verify coil 8-15 failed");
|
||||
|
||||
for (uint16_t numof = 1; numof <= coil_qty; numof++) {
|
||||
err = mb_rtu_write_coils(iface, node, 0, coil, numof);
|
||||
err = modbus_write_coils(iface, node, 0, coil, numof);
|
||||
zassert_equal(err, 0, "FC15 request failed");
|
||||
}
|
||||
|
||||
coil[0] = 0xaa; coil[1] = 0xbb;
|
||||
err = mb_rtu_write_coils(iface, node, 0, coil, coil_qty);
|
||||
err = modbus_write_coils(iface, node, 0, coil, coil_qty);
|
||||
zassert_equal(err, 0, "FC15 request failed");
|
||||
|
||||
err = mb_rtu_read_coils(iface, node, 0, coil, coil_qty);
|
||||
err = modbus_read_coils(iface, node, 0, coil, coil_qty);
|
||||
zassert_equal(err, 0, "FC01 request failed");
|
||||
|
||||
zassert_equal(coil[0], 0xaa, "FC15 verify coil 0-7 failed");
|
||||
zassert_equal(coil[1], 0xbb, "FC15 verify coil 8-15 failed");
|
||||
|
||||
err = mb_rtu_write_coil(iface, node, offset_oor, true);
|
||||
err = modbus_write_coil(iface, node, offset_oor, true);
|
||||
zassert_not_equal(err, 0, "FC05 out of range request not failed");
|
||||
|
||||
err = mb_rtu_write_coils(iface, node, offset_oor, coil, coil_qty);
|
||||
err = modbus_write_coils(iface, node, offset_oor, coil, coil_qty);
|
||||
zassert_not_equal(err, 0, "FC15 out of range request not failed");
|
||||
}
|
||||
|
||||
|
@ -61,16 +61,16 @@ void test_rtu_di_rd(void)
|
|||
uint8_t di[4] = {0};
|
||||
int err;
|
||||
|
||||
err = mb_rtu_read_dinputs(iface, node, 0, di, di_qty);
|
||||
err = modbus_read_dinputs(iface, node, 0, di, di_qty);
|
||||
zassert_equal(err, 0, "FC02 request failed");
|
||||
|
||||
zassert_equal(di[0], 0xaa, "FC02 verify di 0-7 failed");
|
||||
zassert_equal(di[1], 0xbb, "FC02 verify di 8-15 failed");
|
||||
|
||||
err = mb_rtu_read_dinputs(iface, node, 0, di, di_qty + 1);
|
||||
err = modbus_read_dinputs(iface, node, 0, di, di_qty + 1);
|
||||
zassert_not_equal(err, 0, "FC02 out of range request not failed");
|
||||
|
||||
err = mb_rtu_read_dinputs(iface, node, offset_oor, di, di_qty);
|
||||
err = modbus_read_dinputs(iface, node, offset_oor, di, di_qty);
|
||||
zassert_not_equal(err, 0, "FC02 out of range request not failed");
|
||||
}
|
||||
|
||||
|
@ -79,15 +79,15 @@ void test_rtu_input_reg(void)
|
|||
uint16_t ir[8] = {0};
|
||||
int err;
|
||||
|
||||
err = mb_rtu_write_holding_reg(iface, node, 0, 0xcafe);
|
||||
err = modbus_write_holding_reg(iface, node, 0, 0xcafe);
|
||||
zassert_equal(err, 0, "FC06 write request for FC04 failed");
|
||||
|
||||
err = mb_rtu_read_input_regs(iface, node, 0, ir, ARRAY_SIZE(ir));
|
||||
err = modbus_read_input_regs(iface, node, 0, ir, ARRAY_SIZE(ir));
|
||||
zassert_equal(err, 0, "FC04 request failed");
|
||||
|
||||
zassert_equal(ir[0], 0xcafe, "FC04 verify failed");
|
||||
|
||||
err = mb_rtu_read_input_regs(iface,
|
||||
err = modbus_read_input_regs(iface,
|
||||
node,
|
||||
offset_oor,
|
||||
ir,
|
||||
|
@ -105,14 +105,14 @@ void test_rtu_holding_reg(void)
|
|||
|
||||
/* Test FC06 | FC03 */
|
||||
for (uint16_t idx = 0; idx < ARRAY_SIZE(hr_wr); idx++) {
|
||||
err = mb_rtu_write_holding_reg(iface, node, idx, hr_wr[idx]);
|
||||
err = modbus_write_holding_reg(iface, node, idx, hr_wr[idx]);
|
||||
zassert_equal(err, 0, "FC06 write request failed");
|
||||
}
|
||||
|
||||
err = mb_rtu_write_holding_reg(iface, node, offset_oor, 0xcafe);
|
||||
err = modbus_write_holding_reg(iface, node, offset_oor, 0xcafe);
|
||||
zassert_not_equal(err, 0, "FC06 out of range request not failed");
|
||||
|
||||
err = mb_rtu_read_holding_regs(iface, node, 0,
|
||||
err = modbus_read_holding_regs(iface, node, 0,
|
||||
hr_rd, ARRAY_SIZE(hr_rd));
|
||||
zassert_equal(err, 0, "FC03 read request failed");
|
||||
|
||||
|
@ -120,7 +120,7 @@ void test_rtu_holding_reg(void)
|
|||
zassert_equal(memcmp(hr_wr, hr_rd, sizeof(hr_wr)), 0,
|
||||
"FC06 verify failed");
|
||||
|
||||
err = mb_rtu_read_holding_regs(iface,
|
||||
err = modbus_read_holding_regs(iface,
|
||||
node,
|
||||
offset_oor,
|
||||
hr_rd,
|
||||
|
@ -128,11 +128,11 @@ void test_rtu_holding_reg(void)
|
|||
zassert_not_equal(err, 0, "FC03 out of range request not failed");
|
||||
|
||||
/* Test FC16 | FC03 */
|
||||
err = mb_rtu_write_holding_regs(iface, node, 0,
|
||||
err = modbus_write_holding_regs(iface, node, 0,
|
||||
hr_wr, ARRAY_SIZE(hr_wr));
|
||||
zassert_equal(err, 0, "FC16 write request failed");
|
||||
|
||||
err = mb_rtu_read_holding_regs(iface, node, 0,
|
||||
err = modbus_read_holding_regs(iface, node, 0,
|
||||
hr_rd, ARRAY_SIZE(hr_rd));
|
||||
zassert_equal(err, 0, "FC03 read request failed");
|
||||
|
||||
|
@ -142,35 +142,35 @@ void test_rtu_holding_reg(void)
|
|||
|
||||
/* Test FC16 | FC03 */
|
||||
for (uint16_t idx = 0; idx < ARRAY_SIZE(fhr_wr); idx++) {
|
||||
err = mb_rtu_write_holding_regs_fp(iface,
|
||||
err = modbus_write_holding_regs_fp(iface,
|
||||
node,
|
||||
fp_offset + idx,
|
||||
&fhr_wr[0], 1);
|
||||
zassert_equal(err, 0, "FC16 write request failed");
|
||||
}
|
||||
|
||||
err = mb_rtu_write_holding_regs_fp(iface,
|
||||
err = modbus_write_holding_regs_fp(iface,
|
||||
node,
|
||||
fp_offset,
|
||||
fhr_wr,
|
||||
ARRAY_SIZE(fhr_wr));
|
||||
zassert_equal(err, 0, "FC16 FP request failed");
|
||||
|
||||
err = mb_rtu_write_holding_regs_fp(iface,
|
||||
err = modbus_write_holding_regs_fp(iface,
|
||||
node,
|
||||
fp_offset_oor,
|
||||
fhr_wr,
|
||||
ARRAY_SIZE(fhr_wr));
|
||||
zassert_not_equal(err, 0, "FC16 FP out of range request not failed");
|
||||
|
||||
err = mb_rtu_read_holding_regs_fp(iface,
|
||||
err = modbus_read_holding_regs_fp(iface,
|
||||
node,
|
||||
fp_offset_oor,
|
||||
fhr_wr,
|
||||
ARRAY_SIZE(fhr_wr));
|
||||
zassert_not_equal(err, 0, "FC16 FP out of range request not failed");
|
||||
|
||||
err = mb_rtu_read_holding_regs_fp(iface,
|
||||
err = modbus_read_holding_regs_fp(iface,
|
||||
node,
|
||||
fp_offset,
|
||||
fhr_rd,
|
||||
|
@ -188,11 +188,11 @@ void test_rtu_diagnostic(void)
|
|||
int err;
|
||||
|
||||
for (uint16_t sf = 0x0A; sf < 0x0F; sf++) {
|
||||
err = mb_rtu_request_diagnostic(iface, node, sf, 0, &data);
|
||||
err = modbus_request_diagnostic(iface, node, sf, 0, &data);
|
||||
zassert_equal(err, 0, "FC08:0x%04x request failed", sf);
|
||||
}
|
||||
|
||||
err = mb_rtu_request_diagnostic(iface, node, 0xFF, 0, &data);
|
||||
err = modbus_request_diagnostic(iface, node, 0xFF, 0, &data);
|
||||
zassert_not_equal(err, 0, "FC08 not supported request not failed");
|
||||
}
|
||||
|
||||
|
@ -200,9 +200,9 @@ void test_client_rtu_setup_low_none(void)
|
|||
{
|
||||
int err;
|
||||
|
||||
err = mb_rtu_cfg_client(iface, MB_TEST_BAUDRATE_LOW,
|
||||
UART_CFG_PARITY_NONE,
|
||||
MB_TEST_RESPONSE_TO, false);
|
||||
err = modbus_init_client(iface, MB_TEST_BAUDRATE_LOW,
|
||||
UART_CFG_PARITY_NONE,
|
||||
MB_TEST_RESPONSE_TO, false);
|
||||
zassert_equal(err, 0, "Failed to configure RTU client");
|
||||
}
|
||||
|
||||
|
@ -210,9 +210,9 @@ void test_client_rtu_setup_low_odd(void)
|
|||
{
|
||||
int err;
|
||||
|
||||
err = mb_rtu_cfg_client(iface, MB_TEST_BAUDRATE_LOW,
|
||||
UART_CFG_PARITY_ODD,
|
||||
MB_TEST_RESPONSE_TO, false);
|
||||
err = modbus_init_client(iface, MB_TEST_BAUDRATE_LOW,
|
||||
UART_CFG_PARITY_ODD,
|
||||
MB_TEST_RESPONSE_TO, false);
|
||||
zassert_equal(err, 0, "Failed to configure RTU client");
|
||||
}
|
||||
|
||||
|
@ -220,9 +220,9 @@ void test_client_rtu_setup_high_even(void)
|
|||
{
|
||||
int err;
|
||||
|
||||
err = mb_rtu_cfg_client(iface, MB_TEST_BAUDRATE_HIGH,
|
||||
UART_CFG_PARITY_EVEN,
|
||||
MB_TEST_RESPONSE_TO, false);
|
||||
err = modbus_init_client(iface, MB_TEST_BAUDRATE_HIGH,
|
||||
UART_CFG_PARITY_EVEN,
|
||||
MB_TEST_RESPONSE_TO, false);
|
||||
zassert_equal(err, 0, "Failed to configure RTU client");
|
||||
}
|
||||
|
||||
|
@ -230,9 +230,9 @@ void test_client_rtu_setup_ascii(void)
|
|||
{
|
||||
int err;
|
||||
|
||||
err = mb_rtu_cfg_client(iface, MB_TEST_BAUDRATE_HIGH,
|
||||
UART_CFG_PARITY_EVEN,
|
||||
MB_TEST_RESPONSE_TO, true);
|
||||
err = modbus_init_client(iface, MB_TEST_BAUDRATE_HIGH,
|
||||
UART_CFG_PARITY_EVEN,
|
||||
MB_TEST_RESPONSE_TO, true);
|
||||
zassert_equal(err, 0, "Failed to configure RTU client");
|
||||
}
|
||||
|
||||
|
@ -240,7 +240,7 @@ void test_client_rtu_disable(void)
|
|||
{
|
||||
int err;
|
||||
|
||||
err = mb_rtu_disable_iface(iface);
|
||||
err = modbus_disable(iface);
|
||||
zassert_equal(err, 0, "Failed to disable RTU client");
|
||||
}
|
||||
|
||||
|
|
|
@ -146,7 +146,7 @@ static int holding_reg_wr_fp(uint16_t addr, float reg)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct mbs_rtu_user_callbacks mbs_cbs = {
|
||||
static struct modbus_user_callbacks mbs_cbs = {
|
||||
/** Coil read/write callback */
|
||||
.coil_rd = coil_rd,
|
||||
.coil_wr = coil_wr,
|
||||
|
@ -169,10 +169,10 @@ void test_server_rtu_setup_low_odd(void)
|
|||
int err;
|
||||
|
||||
if (IS_ENABLED(CONFIG_MODBUS_RTU_SERVER)) {
|
||||
err = mb_rtu_cfg_server(MB_TEST_IFACE_SERVER, MB_TEST_NODE_ADDR,
|
||||
MB_TEST_BAUDRATE_LOW,
|
||||
UART_CFG_PARITY_ODD,
|
||||
&mbs_cbs, false);
|
||||
err = modbus_init_server(MB_TEST_IFACE_SERVER, MB_TEST_NODE_ADDR,
|
||||
MB_TEST_BAUDRATE_LOW,
|
||||
UART_CFG_PARITY_ODD,
|
||||
&mbs_cbs, false);
|
||||
zassert_equal(err, 0, "Failed to configure RTU server");
|
||||
} else {
|
||||
ztest_test_skip();
|
||||
|
@ -184,10 +184,10 @@ void test_server_rtu_setup_low_none(void)
|
|||
int err;
|
||||
|
||||
if (IS_ENABLED(CONFIG_MODBUS_RTU_SERVER)) {
|
||||
err = mb_rtu_cfg_server(MB_TEST_IFACE_SERVER, MB_TEST_NODE_ADDR,
|
||||
MB_TEST_BAUDRATE_LOW,
|
||||
UART_CFG_PARITY_NONE,
|
||||
&mbs_cbs, false);
|
||||
err = modbus_init_server(MB_TEST_IFACE_SERVER, MB_TEST_NODE_ADDR,
|
||||
MB_TEST_BAUDRATE_LOW,
|
||||
UART_CFG_PARITY_NONE,
|
||||
&mbs_cbs, false);
|
||||
zassert_equal(err, 0, "Failed to configure RTU server");
|
||||
} else {
|
||||
ztest_test_skip();
|
||||
|
@ -199,10 +199,10 @@ void test_server_rtu_setup_high_even(void)
|
|||
int err;
|
||||
|
||||
if (IS_ENABLED(CONFIG_MODBUS_RTU_SERVER)) {
|
||||
err = mb_rtu_cfg_server(MB_TEST_IFACE_SERVER, MB_TEST_NODE_ADDR,
|
||||
MB_TEST_BAUDRATE_HIGH,
|
||||
UART_CFG_PARITY_EVEN,
|
||||
&mbs_cbs, false);
|
||||
err = modbus_init_server(MB_TEST_IFACE_SERVER, MB_TEST_NODE_ADDR,
|
||||
MB_TEST_BAUDRATE_HIGH,
|
||||
UART_CFG_PARITY_EVEN,
|
||||
&mbs_cbs, false);
|
||||
zassert_equal(err, 0, "Failed to configure RTU server");
|
||||
} else {
|
||||
ztest_test_skip();
|
||||
|
@ -214,10 +214,10 @@ void test_server_rtu_setup_ascii(void)
|
|||
int err;
|
||||
|
||||
if (IS_ENABLED(CONFIG_MODBUS_RTU_SERVER)) {
|
||||
err = mb_rtu_cfg_server(MB_TEST_IFACE_SERVER, MB_TEST_NODE_ADDR,
|
||||
MB_TEST_BAUDRATE_HIGH,
|
||||
UART_CFG_PARITY_EVEN,
|
||||
&mbs_cbs, true);
|
||||
err = modbus_init_server(MB_TEST_IFACE_SERVER, MB_TEST_NODE_ADDR,
|
||||
MB_TEST_BAUDRATE_HIGH,
|
||||
UART_CFG_PARITY_EVEN,
|
||||
&mbs_cbs, true);
|
||||
zassert_equal(err, 0, "Failed to configure RTU server");
|
||||
} else {
|
||||
ztest_test_skip();
|
||||
|
@ -229,7 +229,7 @@ void test_server_rtu_disable(void)
|
|||
int err;
|
||||
|
||||
if (IS_ENABLED(CONFIG_MODBUS_RTU_SERVER)) {
|
||||
err = mb_rtu_disable_iface(MB_TEST_IFACE_SERVER);
|
||||
err = modbus_disable(MB_TEST_IFACE_SERVER);
|
||||
zassert_equal(err, 0, "Failed to disable RTU server");
|
||||
} else {
|
||||
ztest_test_skip();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue