添加立思辰web-api demo
This commit is contained in:
parent
da38f0ac86
commit
969b20a232
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
|
@ -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']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,141 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test!</title>
|
||||
<meta charset="utf-8"/>
|
||||
<script src="sane.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<h1>Test!</h1>
|
||||
<select id="devicenames" style="width:200px; height:25px;">
|
||||
</select>
|
||||
<input id="getdevices" type="button" value="获取设备列表" onclick="getdevices()" /><br>
|
||||
<label for="showbase64">转换成Base64:</label>
|
||||
<input type="checkbox" id="showbase64"><br>
|
||||
<label for="source">单/双面:</label>
|
||||
<select id="source">
|
||||
<option value="Adf-front">Adf-front</option>
|
||||
<option value="Adf-duplex" selected>Adf-duplex</option>
|
||||
</select><br>
|
||||
<label for="mode">颜色模式:</label>
|
||||
<select id="mode">
|
||||
<option value="Lineart">Lineart</option>
|
||||
<option value="Gray">Gray</option>
|
||||
<option value="Color" selected>Color</option>
|
||||
</select><br>
|
||||
<label for="resolution">分辨率:</label>
|
||||
<input type="number" id="resolution" min="1" max="600" value="200" step="1"><br>
|
||||
<input id="scan" type="button" value="扫描" onclick="scan()" /><br>
|
||||
<input id="cleardata" type="button" value="清理" onclick="cleardata()" />
|
||||
</p>
|
||||
<p>
|
||||
<img id="myCanvas" width='640' height='480' style="background-color: black;"/>
|
||||
</p>
|
||||
<p>
|
||||
<input type="text" id="pathinfo" style="width:640px; height:40px;" />
|
||||
</p>
|
||||
<p>
|
||||
<input type="text" id="errinfo" style="width:640px; height:40px;" />
|
||||
</p>
|
||||
<script>
|
||||
|
||||
function onInitFunc()
|
||||
{
|
||||
getdevices();
|
||||
}
|
||||
|
||||
function onGetDevicesFunc(devs)
|
||||
{
|
||||
//alert(JSON.stringify(devs));
|
||||
|
||||
var select = document.getElementById('devicenames');
|
||||
select.innerHTML = "";
|
||||
for (var i = 0; i < devs.length; ++i)
|
||||
{
|
||||
var option = document.createElement('option');
|
||||
option.value = devs[i];
|
||||
option.textContent = devs[i];
|
||||
select.appendChild(option);
|
||||
}
|
||||
}
|
||||
|
||||
function onScanOneFileDoneFunc(datatype, imgtype, imgpath, imgbase64data)
|
||||
{
|
||||
if (imgpath)
|
||||
{
|
||||
var pathinfo = document.getElementById('pathinfo');
|
||||
pathinfo.value = imgpath;
|
||||
}
|
||||
|
||||
if (imgbase64data)
|
||||
{
|
||||
var myCanvas = document.getElementById("myCanvas");
|
||||
myCanvas.src = imgbase64data;
|
||||
}
|
||||
}
|
||||
|
||||
function onErrorMessageFunc(errormsg)
|
||||
{
|
||||
var errinfo = document.getElementById('errinfo');
|
||||
errinfo.value = errormsg;
|
||||
}
|
||||
|
||||
function getdevices()
|
||||
{
|
||||
var errinfo = document.getElementById('errinfo');
|
||||
errinfo.value = "";
|
||||
|
||||
sane.getdevices();
|
||||
}
|
||||
|
||||
function scan()
|
||||
{
|
||||
var pathinfo = document.getElementById('pathinfo');
|
||||
pathinfo.value = "";
|
||||
var errinfo = document.getElementById('errinfo');
|
||||
errinfo.value = "";
|
||||
var myCanvas = document.getElementById("myCanvas");
|
||||
myCanvas.src = 'placeholder.png';
|
||||
|
||||
sane.showbase64 = document.getElementById('showbase64').checked;
|
||||
sane.source = document.getElementById('source').value;
|
||||
sane.mode = document.getElementById('mode').value;
|
||||
sane.resolution = parseInt(document.getElementById('resolution').value, 10);
|
||||
|
||||
sane.scan(document.getElementById('devicenames').value);
|
||||
}
|
||||
|
||||
function cleardata()
|
||||
{
|
||||
var errinfo = document.getElementById('errinfo');
|
||||
errinfo.value = "";
|
||||
|
||||
sane.clear();
|
||||
}
|
||||
|
||||
window.onload = function()
|
||||
{
|
||||
var pathinfo = document.getElementById('pathinfo');
|
||||
pathinfo.value = "";
|
||||
var errinfo = document.getElementById('errinfo');
|
||||
errinfo.value = "";
|
||||
var myCanvas = document.getElementById("myCanvas");
|
||||
myCanvas.src = 'placeholder.png';
|
||||
|
||||
sane.registerevent("OnInit", onInitFunc);
|
||||
sane.registerevent("OnGetDevices", onGetDevicesFunc);
|
||||
sane.registerevent("OnScanOneFileDone", onScanOneFileDoneFunc);
|
||||
sane.registerevent("OnErrorMessage", onErrorMessageFunc);
|
||||
|
||||
sane.init(38999, true);
|
||||
}
|
||||
|
||||
window.onbeforeunload = function()
|
||||
{
|
||||
sane.deinit();
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue