//高拍仪与身份证读卡器设备 var ws_gpysfz={ type:1, port:9456, text:"高拍仪与身份证识读机", url:"ws://127.0.0.1:9456/", ws:null, connected:false }; //手写签名设备 var ws_sxsb={ type:2, port:9457, text:"手写签名", url:"ws://127.0.0.1:9457/", ws:null, connected:false }; //扫描仪设备 var ws_smy={ type:3, port:9458, text:"扫描设备", url:"ws://127.0.0.1:9458/", ws:null, connected:false }; //日志输出 function addlog(obj){ console.log(obj); if(typeof(obj)=="string" && typeof(addDebugLog)!="undefined"){ addDebugLog(obj); } } function sendWsData(ws,msg){ try{ var jsData = typeof(msg)=="string"?msg:JSON.stringify(msg); if(typeof(addSendLog)!="undefined"){ addSendLog(jsData); } ws.send(jsData); return true; } catch(e){ addlog("发送 " + msg + " 消息失败"); addlog(e); return false; } } function sendMessage(obj,msg){ var bRet=false; if(obj.ws!=null&&obj.ws.readyState==1){ bRet = sendWsData(obj.ws,msg); } else{ addlog(obj.url + " 未连接成功!"); } return bRet; } //发送高拍仪身份证消息 function sendGpySfzMessage(msg){ return sendMessage(ws_gpysfz,msg); } //发送手写签名消息 function sendSxqmMessage(msg){ return sendMessage(ws_sxsb,msg); } //发送扫描仪消息 function sendSmyMessage(msg){ return sendMessage(ws_smy,msg); } //接收消息 自动调用 processMessage 函数 function recvMessage(msg){ if(typeof(processMessage)!="undefined"){ processMessage(msg); } } function onUpdateStatus(t,p,f){ if(typeof(updateStatus)!="undefined"){ updateStatus(t,p,f); } } //初始化WebSocket连接 function ConnectServer(device) { try{ device.connected = false; if ('WebSocket' in window || window.WebSocket) { device.ws = new WebSocket(device.url); } else if ('MozWebSocket' in window) { device.ws = new MozWebSocket(device.url); } else { alert("浏览器版本太低!请使用Chrome、Firefox浏览器!"); return; } if(device.ws!=null){ device.ws.onopen = function () { device.connected = true; onUpdateStatus(device.type,device.port,true); } device.ws.onclose = function (e) { device.connected = false; onUpdateStatus(device.type,device.port,false); } device.ws.onmessage = function (e) { var txt = ""; if (typeof (e.data) == "string") { txt = e.data; } else{ try { txt = JSON.stringify(e.data); } catch (e){ txt = ""; addlog("数据解析失败!"); addlog(e); } } if(txt!="") { recvMessage(txt); } } device.ws.onerror = function (e) { addlog(e); }; device.ws.open();//连接 websocket addlog(device.url+" 初始化完成!"); } else{ onUpdateStatus(device.type,device.port,false); addlog(device.url+" 初始化失败!"); } } catch(e){ addlog(device.url+" 连接失败!"); addlog(e); } } //初始化司法厅设备 function InitDevice(){ ConnectServer(ws_gpysfz); ConnectServer(ws_sxsb); ConnectServer(ws_smy); } //高拍仪接口函数 //发送获取视频设备列表消息 function SendGetVideoDevices(){ return sendGpySfzMessage({"Func":"GetVideoDevices","arg":"0"}); } //发送获取音频设备列表消息 function SendGetAudioDevices(){ return sendGpySfzMessage({"Func":"GetAudioDevices","arg":"0"}); } //发送获取分辨率列表消息 function SendGetResolution(index){ return sendGpySfzMessage({"Func":"GetResolution","arg":""+index}); } //发送切换视频分辨率消息 function SendChangeVideoResolution(index){ return sendGpySfzMessage({"Func":"ChangeVideoResolution","arg":""+index}); } //发送打开指定视频消息 function SendStartVideo(index){ return sendGpySfzMessage({"Func":"StartVideo","arg":""+index}); } //发送打开主视频消息 function SendStartRunMain(){ return sendGpySfzMessage({"Func":"StartRunMain","arg":"0"}); } //发送打开副视频消息 function SendStartRunSub(){ return sendGpySfzMessage({"Func":"StartRunSub","arg":"0"}); } //发送关闭视频消息 function SendStopVideo(){ return sendGpySfzMessage({"Func":"StopVideo","arg":"0"}); } //发送文件方式拍照消息 function SendCaptureFile(filename){ return sendGpySfzMessage({"Func":"CaptureFile","arg":""+filename}); } //发送Base64方式拍照消息 function SendCaptureBase64(format){ return sendGpySfzMessage({"Func":"CaptureBase64","arg":""+format}); } //发送左旋转消息 function SendRotateLeft(angle){ return sendGpySfzMessage({"Func":"RotateLeft","arg":""+angle}); } //发送右旋转消息 function SendRotateRight(angle){ return sendGpySfzMessage({"Func":"RotateRight","arg":""+angle}); } //发送放大消息 function SendZoomIn(){ return sendGpySfzMessage({"Func":"ZoomIn","arg":"0"}); } //发送缩小消息 function SendZoomOut(){ return sendGpySfzMessage({"Func":"ZoomOut","arg":"0"}); } //发送切换裁剪方式消息 function SendChangeCutType(cutType){ return sendGpySfzMessage({"Func":"ChangeCutType","arg":""+cutType}); } //发送设置色彩模式消息 function SendSetColorType(colorType){ return sendGpySfzMessage({"Func":"SetColorType","arg":""+colorType}); } //发送设置JPG图片压缩率消息 function SendSetJPGQuality(quality){ return sendGpySfzMessage({"Func":"SetJPGQuality","arg":""+quality}); } //身份证识读机接口函数 //发送读取身份证消息 function SendReadIDCard(){ return sendGpySfzMessage({"Func":"ReadIDCard","arg":"0"}); } //手写签名设备接口函数 //发送开始签字消息 function SendStartSign(){ return sendSxqmMessage({"Func":"StartSign","arg":"0"}); } //发送关闭签字消息 function SendCloseSign(){ return sendSxqmMessage({"Func":"CloseSign","arg":"0"}); } //扫描设备接口函数 //发送获取所有SANE/twain源名称消息 function SendGetDeviceList(){ return sendSmyMessage({"Func":"GetDeviceList","arg":"0"}); } //发送选择SANE/twain源名称消息 function SendSelectDevice(index){ return sendSmyMessage({"Func":"SelectDevice","arg":""+index}); } //发送设置色彩模式消息 function SendSetScanColorType(colorType){ return sendSmyMessage({"Func":"SetScanColorType","arg":""+colorType}); } //发送设置扫描分辨率消息 function SendSetDPI(dpi){ return sendSmyMessage({"Func":"SetDPI","arg":""+dpi}); } //发送设置单双面消息 function SendSetDuplex(duplex){ return sendSmyMessage({"Func":"SetDuplex","arg":""+duplex}); } //发送设置JPG图片压缩率消息 function SendSetScanJPGQuality(quality){ return sendSmyMessage({"Func":"SetScanJPGQuality","arg":""+quality}); } //发送开始扫描消息 function SendStartScan(page){ return sendSmyMessage({"Func":"StartScan","arg":""+page}); }