diff --git a/test/webservice/lsc-demo/placeholder.png b/test/webservice/lsc-demo/placeholder.png new file mode 100644 index 00000000..2a2a33d5 Binary files /dev/null and b/test/webservice/lsc-demo/placeholder.png differ 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!

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

+

+ +

+

+ +

+

+ +

+ + +