From 90962ac5b2820a8018c8f38bb7845c7c59fd2c38 Mon Sep 17 00:00:00 2001 From: luoliangyi <87842688@qq.com> Date: Tue, 9 Jul 2024 16:38:41 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3websdk=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=97=B6=E8=BF=94=E5=9B=9E=E5=80=BC=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdk/webservice/ManagerV2.cpp | 49 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/sdk/webservice/ManagerV2.cpp b/sdk/webservice/ManagerV2.cpp index e473eb88..32454f6c 100644 --- a/sdk/webservice/ManagerV2.cpp +++ b/sdk/webservice/ManagerV2.cpp @@ -3625,29 +3625,32 @@ namespace ver_2 if (0 == strcmp(devParams[i].name.c_str(), name) || 0 == strcmp(devParams[i].title.c_str(), title)) { - if (SANE_TYPE_STRING == desp->type) - { - if (SANE_STATUS_GOOD != sane_control_option(hdev, j, SANE_ACTION_SET_VALUE, (void*)devParams[i].stringValue.c_str(), NULL)) - ret = -1; - } - else if (SANE_TYPE_INT == desp->type) - { - SANE_Int value = devParams[i].intValue; - if (SANE_STATUS_GOOD != sane_control_option(hdev, j, SANE_ACTION_SET_VALUE, &value, NULL)) - ret = -1; - } - else if (SANE_TYPE_FIXED == desp->type) - { - SANE_Fixed value = SANE_FIX(devParams[i].doubleValue); - if (SANE_STATUS_GOOD != sane_control_option(hdev, j, SANE_ACTION_SET_VALUE, &value, NULL)) - ret = -1; - } - else if (SANE_TYPE_BOOL == desp->type) - { - SANE_Bool value = (SANE_Bool)devParams[i].boolValue; - if (SANE_STATUS_GOOD != sane_control_option(hdev, j, SANE_ACTION_SET_VALUE, &value, NULL)) - ret = -1; - } + if (!IS_CAP_READONLY(desp->cap)) + { + if (SANE_TYPE_STRING == desp->type) + { + if (SANE_STATUS_GOOD != sane_control_option(hdev, j, SANE_ACTION_SET_VALUE, (void*)devParams[i].stringValue.c_str(), NULL)) + ret = -1; + } + else if (SANE_TYPE_INT == desp->type) + { + SANE_Int value = devParams[i].intValue; + if (SANE_STATUS_GOOD != sane_control_option(hdev, j, SANE_ACTION_SET_VALUE, &value, NULL)) + ret = -1; + } + else if (SANE_TYPE_FIXED == desp->type) + { + SANE_Fixed value = SANE_FIX(devParams[i].doubleValue); + if (SANE_STATUS_GOOD != sane_control_option(hdev, j, SANE_ACTION_SET_VALUE, &value, NULL)) + ret = -1; + } + else if (SANE_TYPE_BOOL == desp->type) + { + SANE_Bool value = (SANE_Bool)devParams[i].boolValue; + if (SANE_STATUS_GOOD != sane_control_option(hdev, j, SANE_ACTION_SET_VALUE, &value, NULL)) + ret = -1; + } + } find = true; break;