From 9b606cfbb72008660da8571be9784fee3ede90fd Mon Sep 17 00:00:00 2001 From: hxy7yx <1595670487@qq.com> Date: Sun, 16 Mar 2025 19:32:18 -0700 Subject: [PATCH] allow float-tag to write integers --- src/adapter/driver/driver.c | 23 ++++------------------- tests/ft/driver/test_modbus.py | 6 ------ 2 files changed, 4 insertions(+), 25 deletions(-) diff --git a/src/adapter/driver/driver.c b/src/adapter/driver/driver.c index 5be4c5f6..6d3f192c 100644 --- a/src/adapter/driver/driver.c +++ b/src/adapter/driver/driver.c @@ -1112,21 +1112,13 @@ int is_value_in_range(neu_type_e tag_type, int64_t value, double value_d, return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; } case NEU_TYPE_FLOAT: - if (write_type != NEU_TYPE_DOUBLE) { - return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; - } else if (result < (int64_t) -FLT_MAX || - result > (int64_t) FLT_MAX) { + if (result < (int64_t) -FLT_MAX || result > (int64_t) FLT_MAX) { return NEU_ERR_PLUGIN_TAG_VALUE_OUT_OF_RANGE; } else { return NEU_ERR_SUCCESS; } case NEU_TYPE_DOUBLE: - if (write_type != NEU_TYPE_DOUBLE) { - return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; - } else { - return NEU_ERR_SUCCESS; - } - return check_value(write_type, result, INT16_MIN, INT16_MAX); + return NEU_ERR_SUCCESS; case NEU_TYPE_STRING: case NEU_TYPE_BOOL: case NEU_TYPE_BIT: @@ -1170,20 +1162,13 @@ int is_value_in_range(neu_type_e tag_type, int64_t value, double value_d, return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; } case NEU_TYPE_FLOAT: - if (write_type != NEU_TYPE_DOUBLE) { - return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; - } else if (value < (int64_t) -FLT_MAX || - value > (int64_t) FLT_MAX) { + if (value < (int64_t) -FLT_MAX || value > (int64_t) FLT_MAX) { return NEU_ERR_PLUGIN_TAG_VALUE_OUT_OF_RANGE; } else { return NEU_ERR_SUCCESS; } case NEU_TYPE_DOUBLE: - if (write_type != NEU_TYPE_DOUBLE) { - return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; - } else { - return NEU_ERR_SUCCESS; - } + return NEU_ERR_SUCCESS; case NEU_TYPE_STRING: if (write_type != NEU_TYPE_STRING) { return NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH; diff --git a/tests/ft/driver/test_modbus.py b/tests/ft/driver/test_modbus.py index e9632e1e..5ff782f6 100644 --- a/tests/ft/driver/test_modbus.py +++ b/tests/ft/driver/test_modbus.py @@ -635,12 +635,6 @@ class TestModbus: assert error.NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH == response.json()[ 'error'] - response = api.write_tag( - node=param[0], group='group', tag=hold_float[0]['name'], value=1) - assert 400 == response.status_code - assert error.NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH == response.json()[ - 'error'] - response = api.write_tags(node=param[0], group='group', tag_values=[ {"tag": hold_int16[0]['name'], "value": 32768}, {"tag": hold_uint16[0]['name'], "value": 2},