diff --git a/plugins/modbus/modbus_req.c b/plugins/modbus/modbus_req.c index 152b02fe..3801e6c6 100644 --- a/plugins/modbus/modbus_req.c +++ b/plugins/modbus/modbus_req.c @@ -206,6 +206,8 @@ int modbus_group_timer(neu_plugin_t *plugin, neu_plugin_group_t *group, "modbus message error, skip, %hhu!%hu", gd->cmd_sort->cmd[i].slave_id, gd->cmd_sort->cmd[i].start_address); + rtt = NEU_METRIC_LAST_RTT_MS_MAX; + neu_conn_disconnect(plugin->conn); } else if (ret_buf == -2) { modbus_value_handle( plugin, gd->cmd_sort->cmd[i].slave_id, 0, @@ -216,8 +218,8 @@ int modbus_group_timer(neu_plugin_t *plugin, neu_plugin_group_t *group, "%hhu!%hu", gd->cmd_sort->cmd[i].slave_id, gd->cmd_sort->cmd[i].start_address); + rtt = neu_time_ms() - read_tms; } - rtt = neu_time_ms() - read_tms; break; } } else { @@ -246,6 +248,8 @@ int modbus_group_timer(neu_plugin_t *plugin, neu_plugin_group_t *group, plog_error(plugin, "modbus message error, skip, %hhu!%hu", gd->cmd_sort->cmd[i].slave_id, gd->cmd_sort->cmd[i].start_address); + rtt = NEU_METRIC_LAST_RTT_MS_MAX; + neu_conn_disconnect(plugin->conn); } else if (ret_buf == -2) { modbus_value_handle(plugin, gd->cmd_sort->cmd[i].slave_id, 0, NULL, NEU_ERR_PLUGIN_READ_FAILURE); @@ -253,8 +257,8 @@ int modbus_group_timer(neu_plugin_t *plugin, neu_plugin_group_t *group, "modbus device response error, skip, %hhu!%hu", gd->cmd_sort->cmd[i].slave_id, gd->cmd_sort->cmd[i].start_address); + rtt = neu_time_ms() - read_tms; } - rtt = neu_time_ms() - read_tms; } } else { for (uint16_t j = 0; j < plugin->max_retries; j++) { @@ -275,6 +279,8 @@ int modbus_group_timer(neu_plugin_t *plugin, neu_plugin_group_t *group, "modbus message error, skip, %hhu!%hu", gd->cmd_sort->cmd[i].slave_id, gd->cmd_sort->cmd[i].start_address); + rtt = NEU_METRIC_LAST_RTT_MS_MAX; + neu_conn_disconnect(plugin->conn); } else if (ret_buf == -2) { modbus_value_handle( plugin, gd->cmd_sort->cmd[i].slave_id, 0, NULL, @@ -284,8 +290,8 @@ int modbus_group_timer(neu_plugin_t *plugin, neu_plugin_group_t *group, "%hhu!%hu", gd->cmd_sort->cmd[i].slave_id, gd->cmd_sort->cmd[i].start_address); + rtt = neu_time_ms() - read_tms; } - rtt = neu_time_ms() - read_tms; break; } else if (ret_buf == 0) { modbus_value_handle(