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!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+