From 969b20a23243fa226c12a98ed34f4acafaed8e2f Mon Sep 17 00:00:00 2001 From: luoliangyi <87842688@qq.com> Date: Sun, 29 Sep 2024 14:13:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=AB=8B=E6=80=9D=E8=BE=B0we?= =?UTF-8?q?b-api=20=20demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/webservice/lsc-demo/placeholder.png | Bin 0 -> 3802 bytes test/webservice/lsc-demo/sane.js | 365 +++++++++++++++++++++++ test/webservice/lsc-demo/web-api.html | 141 +++++++++ 3 files changed, 506 insertions(+) create mode 100644 test/webservice/lsc-demo/placeholder.png create mode 100644 test/webservice/lsc-demo/sane.js create mode 100644 test/webservice/lsc-demo/web-api.html diff --git a/test/webservice/lsc-demo/placeholder.png b/test/webservice/lsc-demo/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..2a2a33d57f057c1e63724b67b3f1e00268a9aa4f GIT binary patch literal 3802 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 M)48c#p=llZALv)h+5i9m literal 0 HcmV?d00001 diff --git a/test/webservice/lsc-demo/sane.js b/test/webservice/lsc-demo/sane.js new file mode 100644 index 00000000..5246e5b7 --- /dev/null +++ b/test/webservice/lsc-demo/sane.js @@ -0,0 +1,365 @@ +function sane() +{ + +} + +sane.socket = null; +sane.printlog = false; + +sane.onInit = null; +sane.onGetDevices = null; +sane.onScanOneFileDone = null; +sane.onErrorMessage = null; + +sane.showbase64 = 0; +sane.source = "Adf-duplex"; +sane.mode = "Color"; +sane.resolution = 200; + +sane.init = function(port, printlog) +{ + if (sane.socket != null) + { + return; + } + + sane.socket = new WebSocket("ws://127.0.0.1:" + port.toString()); + sane.printlog = printlog; + + sane.socket.onopen = function(msg) + { + sane.socket.send(JSON.stringify({ + 'func':'is_device_init' + })); + + sane.socket.onmessage = function(msg) + { + if (sane.printlog) + console.log(msg.data); + + var message = JSON.parse(msg.data); + if ("is_device_init" == message['func']) + { + if (message['ret'] != 0) + { + sane.socket.send(JSON.stringify({ + 'func':'init_device' + })); + } + else + { + if (typeof sane.onInit === 'function') + { + sane.onInit(); + } + } + } + else if ("init_device" == message['func']) + { + if (0 == message['ret']) + { + if (typeof sane.onInit === 'function') + { + sane.onInit(); + } + } + else + { + if (typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage(message['err_info']); + } + } + } + } + } + + sane.socket.onclose = function(msg) + { + //alert('socket.onclose'); + } + + sane.socket.onerror = function(msg) + { + //alert('socket.onerror'); + } +} + +sane.deinit = function() +{ + if (sane.socket === null) + { + return; + } + + sane.socket.close(); + sane.socket = null; +} + + +sane.registerevent = function(eventName, callback) +{ + if ("OnInit" == eventName) + { + sane.onInit = callback; + } + else if ("OnGetDevices" == eventName) + { + sane.onGetDevices = callback; + } + else if ("OnScanOneFileDone" == eventName) + { + sane.onScanOneFileDone = callback; + } + else if ("OnErrorMessage" == eventName) + { + sane.onErrorMessage = callback; + } +} + +sane.getdevices = function() +{ + if (sane.socket === null) + { + return; + } + + sane.socket.send(JSON.stringify({ + 'func':'get_device_name_list' + })); + + sane.socket.onmessage = function(msg) + { + if (sane.printlog) + console.log(msg.data); + + var message = JSON.parse(msg.data); + if ("get_device_name_list" == message['func']) + { + if (0 == message['ret']) + { + if (typeof sane.onGetDevices === 'function') + { + sane.onGetDevices(message['device_name_list']); + } + } + else + { + if (typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage(message['err_info']); + } + } + } + } +} + +sane.clear = function() +{ + if (sane.socket === null) + { + return; + } + + sane.socket.send(JSON.stringify({ + 'func':'clear_global_file_save_path' + })); + + sane.socket.onmessage = function(msg) + { + if (sane.printlog) + console.log(msg.data); + + var message = JSON.parse(msg.data); + if ("clear_global_file_save_path" == message['func']) + { + if (0 != message['ret']) + { + if (typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage(message['err_info']); + } + } + } + } +} + +sane.scan = function(devname) +{ + if (sane.socket === null) + { + return; + } + + if (devname === "" || typeof devname === 'undefined') + { + return; + } + + sane.socket.send(JSON.stringify({ + 'func':'get_curr_device_name' + })); + + sane.socket.onmessage = function(msg) + { + if (sane.printlog) + console.log(msg.data); + + var message = JSON.parse(msg.data); + if ("get_curr_device_name" == message['func']) + { + if (0 != message['ret']) + { + var openDeviceJsonData = {}; + openDeviceJsonData.func = 'open_device'; + openDeviceJsonData.device_name = devname; + + //alert(JSON.stringify(openDeviceJsonData)); + sane.socket.send(JSON.stringify(openDeviceJsonData)); + } + else + { + if (message['device_name'] != devname) + { + sane.socket.send(JSON.stringify({ + 'func':'close_device' + })); + } + else + { + sane.socket.send(JSON.stringify({ + 'func':'is_device_scanning' + })); + } + } + } + else if ("close_device" == message['func']) + { + if (0 == message['ret']) + { + var openDeviceJsonData = {}; + openDeviceJsonData.func = 'open_device'; + openDeviceJsonData.device_name = devname; + + //alert(JSON.stringify(openDeviceJsonData)); + sane.socket.send(JSON.stringify(openDeviceJsonData)); + } + else + { + if (typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage(message['err_info']); + } + } + } + else if ("open_device" == message['func']) + { + if (0 == message['ret']) + { + sane.socket.send(JSON.stringify({ + 'func':'is_device_scanning' + })); + } + else + { + if (typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage(message['err_info']); + } + } + } + else if ("is_device_scanning" == message['func']) + { + if (0 != message['ret']) + { + var setDeviceParamJsonData = {}; + setDeviceParamJsonData.func = 'set_device_param'; + setDeviceParamJsonData.device_param = []; + + var ele1 = {}; + ele1.name = '颜色模式'; + ele1.value = '24位彩色'; + if (sane.mode == 'Gray') + ele1.value = '256级灰度'; + else if (sane.mode == 'Lineart') + ele1.value = '黑白'; + setDeviceParamJsonData.device_param.push(ele1); + + var ele2 = {}; + ele2.name = '扫描页面'; + ele2.value = '双面'; + if (sane.source == 'Adf-front') + ele2.value = '单面'; + setDeviceParamJsonData.device_param.push(ele2); + + var ele3 = {}; + ele3.name = '分辨率'; + ele3.value = sane.resolution; + setDeviceParamJsonData.device_param.push(ele3); + + //alert(JSON.stringify(setDeviceParamJsonData)); + sane.socket.send(JSON.stringify(setDeviceParamJsonData)); + } + else + { + if (typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage('设备正在扫描中...'); + } + } + } + else if ("set_device_param" == message['func']) + { + if (0 == message['ret']) + { + var startScanJsonData = {}; + startScanJsonData.func = 'start_scan'; + startScanJsonData.get_base64 = false; + if (sane.showbase64) + startScanJsonData.get_base64 = true; + + //alert(JSON.stringify(startScanJsonData)); + sane.socket.send(JSON.stringify(startScanJsonData)); + } + else + { + if (typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage(message['err_info']); + } + } + } + else if ("start_scan" == message['func']) + { + if (0 != message['ret']) + { + if (typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage(message['err_info']); + } + } + } + else if ("scan_begin" == message['func']) + { + // + } + else if ("scan_end" == message['func']) + { + // + } + else if ("scan_info" == message['func']) + { + if (message['is_error'] && typeof sane.onErrorMessage === 'function') + { + sane.onErrorMessage(message['info']); + } + } + else if ("scan_image" == message['func']) + { + if (typeof sane.onScanOneFileDone === 'function') + { + sane.onScanOneFileDone("string", "jpg", message['image_path'], message['image_base64']); + } + } + } +} \ No newline at end of file diff --git a/test/webservice/lsc-demo/web-api.html b/test/webservice/lsc-demo/web-api.html new file mode 100644 index 00000000..9f1794f7 --- /dev/null +++ b/test/webservice/lsc-demo/web-api.html @@ -0,0 +1,141 @@ + + + + Test! + + + + +

+

Test!

+ +
+ +
+ +
+ +
+ +
+
+ +

+

+ +

+

+ +

+

+ +

+ + +