diff --git a/plugins/modbus/modbus_tcp.c b/plugins/modbus/modbus_tcp.c index e4fdda56..fbe3dec8 100644 --- a/plugins/modbus/modbus_tcp.c +++ b/plugins/modbus/modbus_tcp.c @@ -159,7 +159,7 @@ static int modbus_tcp_init(neu_plugin_t *plugin) modbus_point_new_cmd(plugin->point_ctx); // plugin->client = neu_tcp_client_create("192.168.50.17", 502); - plugin->client = neu_tcp_client_create("192.168.8.177", 502); + plugin->client = neu_tcp_client_create("192.168.8.27", 502); plugin->interval = 10000; pthread_create(&plugin->loop, NULL, loop, plugin); @@ -457,7 +457,7 @@ static void write_data_process_demo(neu_plugin_t *plugin, neu_request_t *req) modbus_point_write(plugin->point_ctx, "1!00001", &mdata, send_recv_callback); - var = neu_variable_next(data->data_var); + var = neu_variable_next(var); mdata.type = MODBUS_B8; neu_variable_get_byte(var, (int8_t *) &mdata.val.val_u8); modbus_point_write(plugin->point_ctx, "1!00002", &mdata, diff --git a/plugins/mqtt/message_handle.c b/plugins/mqtt/message_handle.c index d75db204..0f99ffb5 100644 --- a/plugins/mqtt/message_handle.c +++ b/plugins/mqtt/message_handle.c @@ -136,27 +136,28 @@ void message_handle_init_tags(neu_plugin_t *plugin) void message_handle_read(neu_plugin_t *plugin, struct neu_parse_read_req *req) { - log_info("READ uuid:%s", req->uuid); + log_info("READ uuid:%s, node id:%u", req->uuid, req->node_id); if (0 >= req->n_group) { return; } - req_node_id = req->node_id; - vector_t nodes = neu_system_get_nodes(plugin, NEU_NODE_TYPE_DRIVER); - neu_node_info_t *node_info; - node_info = (neu_node_info_t *) vector_get(&nodes, 2); // modbus-1, opcua-2 - neu_node_id_t dest_node_id = node_info->node_id; - vector_t configs = neu_system_get_group_configs(plugin, dest_node_id); + req_node_id = req->node_id; + vector_t nodes = neu_system_get_nodes(plugin, NEU_NODE_TYPE_DRIVER); + int rc = node_id_exist(&nodes, req->node_id); + vector_uninit(&nodes); + if (0 != rc) { + return; + } + vector_t configs = neu_system_get_group_configs(plugin, req->node_id); neu_taggrp_config_t *config; neu_taggrp_config_t *c; config = *(neu_taggrp_config_t **) vector_get(&configs, 0); c = (neu_taggrp_config_t *) neu_taggrp_cfg_ref(config); - uint32_t req_id = neu_plugin_send_read_cmd(plugin, dest_node_id, c); + uint32_t req_id = neu_plugin_send_read_cmd(plugin, req->node_id, c); GROUP_CONFIGS_UINIT(configs); - vector_uninit(&nodes); UNUSED(req_id); } @@ -219,13 +220,28 @@ void message_handle_read_result(neu_plugin_t * plugin, res.tags[index].name = strdup(datatag->name); switch (type) { + case NEU_DATATYPE_BYTE: { + int8_t value; + neu_variable_get_byte(v, &value); + res.tags[index].type = 1; + res.tags[index].timestamp = 0; + res.tags[index].value = value; + break; + } case NEU_DATATYPE_BOOLEAN: { bool value; neu_variable_get_boolean(v, &value); res.tags[index].type = 1; res.tags[index].timestamp = 0; res.tags[index].value = value; - + break; + } + case NEU_DATATYPE_WORD: { + int16_t value; + neu_variable_get_word(v, &value); + res.tags[index].type = 1; + res.tags[index].timestamp = 0; + res.tags[index].value = value; break; } case NEU_DATATYPE_DWORD: {