Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r34412 -r34428 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 34412) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 34428) @@ -495,18 +495,6 @@ dismissDelay: 0, showDelay: 0 }); - - if(sstsConfig.enableRFIDTousseIdCard && !isIE()){ - newWorker = new Worker('setPlugInRFID.js'); - newWorker.postMessage('start'); - newWorker.onmessage = function(e){ - if(e.data.success){ - loadIdCardByBarcode(e.data.message, true, true); - }else { - showResult(e.data.message); - } - } - } Ext4.define('packingRecordData', { extend: 'Ext4.data.Model', @@ -2586,10 +2574,11 @@ { xtype: 'button', margin: '0 0 0 10', - hidden: !sstsConfig.enableRFIDTousseIdCard, - text: '' + '连接RFID' + '', + id:'connectRFID', + hidden: true, + text: '' + '连接RFID设备' + '', handler: function () { - openModalWindow(WWWROOT+'/disinfectsystem/packing/index.html',{}, '600', '300') + connectRFIDFun(); } }] } @@ -6648,6 +6637,10 @@ getErrorAndDamgeCount(); //空闲时刷新(每空闲5分钟刷新一次) inactivityTime(); + + if(sstsConfig.enableRFIDTousseIdCard && !isIE()){ + connectRFIDFun(); + } }); var inactivityTimes = function () { @@ -7002,4 +6995,43 @@ } else { reflushWaitPackingTreeGrid(); } +} + +//连接RFID设备 +function connectRFIDFun(){ + if ('serial' in navigator) { + var barcode = ''; + var data = new Uint8Array([187, 23, 9, 0, 0, 0, 0, 0, 0, 0, 0, 6, 38, 13, 10]) + var params = { + filters:[ + //桌面 + { usbVendorId: 6790, usbProductId: 29987 } + ], + data:data + } + openPort(params,function(value,isData){ + if(isData){ + var dataString = ""; + if (value.length > 20) { + for (var i = 0; i < value.length; i++) { + dataString += value[i].toString(16) + } + } + if (dataString !== '') { + dataString = dataString.toUpperCase(); + if (dataString.indexOf('FEF') > -1 && dataString.indexOf('FF') > -1) { + var newData = dataString.substring(dataString.indexOf("FEF") + 3, dataString.indexOf("FF")); + if (barcode !== newData) { + barcode = newData; + loadIdCardByBarcode(barcode, true, true) + } + } + } + }else { + showResult(value); + } + }); + } else { + showResult('你的浏览器不支持串口连接!'); + } } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js =================================================================== diff -u -r34395 -r34428 --- ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js (.../setPlugInRFID.js) (revision 34395) +++ ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js (.../setPlugInRFID.js) (revision 34428) @@ -1,328 +1,72 @@ -var socket; -var lastCom; -var lastTime = ''; -var lastStrObj = { - name: '', - count: 0 -}; +var keepReading = true; +var reader; +var writer; -var timer;//获取客户端信息定时器 -var LastSelectClientsIndex = null; - -function Connect() { - socket = new WebSocket('ws://127.0.0.1:4649'); - socket.onopen = sOpen; - socket.onerror = sError; - socket.onmessage = sMessage; - socket.onclose = sClose; -} - -function sOpen() { - //setTimeout(GetCom(), 500); -} - -function sError(e) { - showMessage("连接失败:请检查 PlugInRFID.exe 是否已打开!"); -} - -function sMessage(messageEvent) { - var data = messageEvent.data;//来自服务器的数据 - recallback(data); -} - -function sClose(e) { - showMessage("连接已关闭!"); -} - -function Send(msg) { - socket.send(msg); -} -function Close() { - socket.close(); -} - - -//WebSocket 连接/断开 -function WebSocketAction() { - Connect(); -} - -//获取串口 -function GetCom() { - var JsonData = { - Sr_DataType: "DownData", Sr_MethodName: "GetCom", Sr_Parameter: "", - Sr_ParameterNum: "0", Sr_ParameterType: "" - }; - Send(JSON.stringify(JsonData)); -} - -//串口操作 打开/关闭 串口 -function SerialAction(value) { - if (value == 1) { - OpenSerial(); - } else { - CloseSerial(); - } - var timer = setTimeout(GetClientInfo, 1000); -} - -//打开串口 -function OpenSerial() { - var JsonData = { - Sr_DataType: "DownData", Sr_MethodName: "ComStart", Sr_Parameter: lastCom, - Sr_ParameterNum: "1", Sr_ParameterType: "string" - }; - Send(JSON.stringify(JsonData)); -} - -//关闭串口 -function CloseSerial() { - var JsonData = { - Sr_DataType: "DownData", Sr_MethodName: "ComClose", Sr_Parameter: "", - Sr_ParameterNum: "0", Sr_ParameterType: "" - }; - Send(JSON.stringify(JsonData)); -} - -//获取 客户端/设备 信息 -function GetClientInfo() { - var JsonData = { - Sr_DataType: "DownData", Sr_MethodName: "GetClientInfo", Sr_Parameter: "", - Sr_ParameterNum: "0", Sr_ParameterType: "" - }; - Send(JSON.stringify(JsonData)); -} - -//开始执行获取客户端定时器 -function StartTimer() { - timer = setInterval(GetClientInfo, 3000); -} - -//清除定时器 -function StopTimer() { - clearInterval(timer) -} - -function SetCurrentClient(value) { - var JsonData = { - Sr_DataType: "DownData", Sr_MethodName: "SetCurrentClient", Sr_Parameter: value, - Sr_ParameterNum: "1", Sr_ParameterType: "" - }; - Send(JSON.stringify(JsonData)); -} - -//处理PlugInRFID插件发来的数据 -function recallback(data) { +//打开串口并连接 +async function openPort(params, callback) { try { - var JsonClass = JSON.parse(data); - if (JsonClass.Sr_DataType == "PlugInRespondData") { - switch (JsonClass.Sr_RespondMethodName) { - case "GetCom": - LoadCom(JsonClass.Sr_RespondData); - break; - case "ComStart": - case "ComClose": - ComActionResult(JsonClass.Sr_RespondMethodName, JsonClass.Sr_RespondData); - break; - case "GetNet": - LoadNet(JsonClass.Sr_RespondData); - break; - case "ServerStart": - case "ServerClose": - ServerActionResult(JsonClass.Sr_RespondMethodName, JsonClass.Sr_RespondData); - break; - case "GetClientInfo": - UpdateClientInfo(JsonClass.Sr_RespondData); - break; - case "SetCurrentClient": - ShowSetCurrentClientResult(JsonClass.Sr_RespondData); - break; - default: - break; - } - } - else if (JsonClass.Sr_DataType == "DevRespondData") { - DevRespondDataHandle(JsonClass.Sr_RespondData); - } - } - catch (ex) { - showMessage("报错:" + ex); - } -} - - -//根据插件发来的数据加载串口列表 -function LoadCom(SerialName) { - var strs = new Array(); //定义一数组 - strs = SerialName.split("/"); //字符分割 - lastCom = strs[0] -} - -//处理 串口 打开/关闭 结果 -function ComActionResult(ActionType, RespondData) { - if (ActionType == "ComStart") { - if (RespondData == "0") { - + // 获取用户之前授予该网站访问权限的所有串口 + const filters = params.filters; + const ports = await navigator.serial.getPorts(); + var port; + if (ports.length == 1) { + port = ports[0]; } else { - showMessage("串口打开失败!" + "\r\n" + "[请重新打开PlugInRFID.exe!]"); - } - } else { - if (RespondData == "0") { - - } else { - showMessage("串口关闭失败!"); - } - } -} - - - -//更新客户端下拉框信息 -function UpdateClientInfo(StrClientMsg) { - try { - SetCurrentClient(StrClientMsg) - } catch (ex) { - - } -} - -//更新设置当前操作客户端结果 -function ShowSetCurrentClientResult(result) { - //if (result == "0") { - // showMessage("设置客户端对象结果:成功"); - //} else { - // showMessage("设置客户端对象结果:失败"); - //} -} - -function hex2int(hex) { - var str = ''; - for (var i = 0; i < hex.split('-').length - 2; i++) { - var item = hex.split('-')[i]; - var curCharCode = parseInt(item, 16); - str += '' + String.fromCharCode(curCharCode); - } - if (parseInt(str) == 0) { - return '' - } else { - return str; - } -} - -//开始群读标签 -function StartMuiltTagsUser() { - var JsonData; - var AccessPwd = "00000000";//访问密码,默认为00000000 - var StartAddr = "0"; - var Len = "6"; - JsonData = { - Sr_DataType: "DownData", Sr_MethodName: "StartMultiTagsUser", Sr_Parameter: "currentclients" + "," + AccessPwd + "," + StartAddr + "," + Len, - Sr_ParameterNum: "4", Sr_ParameterType: "DevClient,byte[],int,int" - }; - Send(JSON.stringify(JsonData)); -} - -//设备上送数据解析 -function DevRespondDataHandle(data) { - var CmdRespondStr = new Array(); //定义一数组 - CmdRespondStr = data.split(","); //字符分割 - switch (CmdRespondStr[1]) { - case "79": - var CmdRespondStr4 = CmdRespondStr[4];//天线号 - var CmdRespondStr5 = CmdRespondStr[5];//标签EPC - var CmdRespondStr6 = CmdRespondStr[6];//EPC长度/PC - var CmdRespondStr7 = CmdRespondStr[7];//场强/Rssi - var CmdRespondStr12 = CmdRespondStr[12];//上次读取时间 - var CmdRespondStr13 = CmdRespondStr[13];//标签TID - var CmdRespondStr16 = CmdRespondStr[16];//标签USER - CmdRespondStr16 = CmdRespondStr16.replace(/-/g, ''); - CmdRespondStr16 = CmdRespondStr16.substring(0, CmdRespondStr16.indexOf('FF')); - if (lastTime == '') { - lastTime = CmdRespondStr12; + if (filters) { + for (var i = 0; i < ports.length; i++) { + const { usbProductId, usbVendorId } = ports[i].getInfo(); + if (filters[0].usbProductId == usbProductId && filters[0].usbVendorId == usbVendorId) { + port = ports[i]; + break; + } + } } else { - var newDate = new Date(lastTime).getTime(); - var timeStr = new Date(CmdRespondStr12).getTime(); - if (newDate + 1000 < timeStr) { - lastTime = CmdRespondStr12; - if (lastStrObj.name == '') { - lastStrObj = { - name: CmdRespondStr16, - count: 1 - } - } else { - if (lastStrObj.name == CmdRespondStr16) { - lastStrObj.count = parseInt(lastStrObj.count) + 1; - } else { - lastStrObj = { - name: CmdRespondStr16, - count: 1 - } - } + port = await navigator.serial.requestPort(); + } + } + await port.open({ baudRate: 115200 }, { dataBits: 8 }, { stopBits: 1 }, { parity: 'none' }); + callback('设备已连接!', false); + reader = port.readable.getReader(); + writer = port.writable.getWriter(); + //设置循环查询获取用户区的数据 + await writer.write(params.data); + while (port.readable && keepReading) { + try { + while (true) { + var { value, done } = await reader.read(); + if (done) { + reader.releaseLock(); + writer.releaseLock(); + break; } - if (lastStrObj.count % 3 == 0) { - var item = lastStrObj.name; - if (item !== '') { - showMessage(item, true); - } + if (value) { + callback(value, true); } } + } catch (error) { + callback('连接失败!', false); + } finally { + var { value, done } = await reader.read(); + if (done) { + reader.releaseLock(); + writer.releaseLock(); + return; + } + if (value) { + dealWithData(value); + } } - break; - case "97": - - break; - case "98": - - break; - case "8C"://获取功率响应 - - break; - case "80"://设置功率响应 - - break; - case "E3": - - break; - case "E2": - - break; - case "99": - - break; - case "9A": - - break; - case "9B": - - break; - case "9C": - break; - default: - //StrRespondResult = "接到设备响应数据"; - break; + } + } catch (error) { + callback('连接失败:' + error, false); } } -function showMessage(message, success) { - var obj = { - success: success || false, - message: message +window.addEventListener('beforeunload', function () { + if (keepReading && reader) { + keepReading = false; + reader.cancel(); + reader.releaseLock(); + writer.releaseLock(); } - postMessage(obj); -} - -onmessage = function (e) { - if (e.data == 'start') { - WebSocketAction(); - } else if (e.data == 'StartMuiltTagsUser') { - StartMuiltTagsUser(); - } else if (e.data == 'StopMuiltTags') { - StopMuiltTags(); - } else if (e.data == 'ComStart') { - SerialAction(1); - } else if (e.data == 'ComEnd') { - SerialAction(0); - } else { - Close(); - } -} \ No newline at end of file +}) \ No newline at end of file Fisheye: Tag 34428 refers to a dead (removed) revision in file `ssts-web/src/main/webapp/disinfectsystem/packing/index.html'. Fisheye: No comparison available. Pass `N' to diff? Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp =================================================================== diff -u -r34394 -r34428 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp (.../awaitForRecycleList.jsp) (revision 34394) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp (.../awaitForRecycleList.jsp) (revision 34428) @@ -116,6 +116,7 @@ + @@ -357,7 +350,7 @@ - + <%----%> Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js =================================================================== diff -u -r34394 -r34428 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 34394) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 34428) @@ -3995,7 +3995,7 @@ } if (sstsConfig.enableApplyGoodsRemarkFunction) { urgentAmountElement += '
'; - if(remarkOfApplyGoods !== ''){ + if (remarkOfApplyGoods !== '') { urgentAmountElement += ''; } urgentAmountElement += '
'; @@ -4017,7 +4017,7 @@ } if (sstsConfig.enableApplyGoodsRemarkFunction) { urgentAmountElement += '
'; - if(remarkOfApplyGoods !== ''){ + if (remarkOfApplyGoods !== '') { urgentAmountElement += ''; } urgentAmountElement += '
'; @@ -6418,7 +6418,7 @@ $("#useRecordId").val(application.useRecordId); } var specialInfection = application.specialInfection || ''; - if(specialInfection !== ''){ + if (specialInfection !== '') { $('#specialInfectionText').text(specialInfection); $('#specialInfection').show(); } @@ -6817,7 +6817,7 @@ $("#remarkText").text($("#remarkText").text() + (application.remark == null ? "" : application.remark)); addApplicantToRemark(application); var specialInfection = application.specialInfection || ''; - if(specialInfection !== ''){ + if (specialInfection !== '') { $('#specialInfectionText').text(specialInfection); $('#specialInfection').show(); } @@ -6833,7 +6833,7 @@ $('#saveAndNewBtnTd').hide(); $('#recyclingAmountConfirm').hide(); } - if(record.recycleAmountNeedConfirm == '否' || record.recyclingApplicationType == '回收申请单'){ + if (record.recycleAmountNeedConfirm == '否' || record.recyclingApplicationType == '回收申请单') { $('#recyclingAmountConfirm').hide(); } if (application != null) { @@ -6891,7 +6891,7 @@ }; if (application != null && application.applicationItems != null) { for (var k = 0; k < application.applicationItems.length; k++) { - if(tousseItem.tousseDefinitionId == application.applicationItems[k].tousseDefinitionId){ + if (tousseItem.tousseDefinitionId == application.applicationItems[k].tousseDefinitionId) { toussItem.remarkOfApplyGoods = application.applicationItems[k].remarkOfApplyGoods; continue; } @@ -7265,82 +7265,45 @@ window.onunload = cleanIsRecyclingFun; } -function connectPort() { +function connectRFIDFun() { if ('serial' in navigator) { - openPort(); - } else { - layer.msg('你的浏览器不支持串口连接!'); - } -} - -var keepReading = true; -var reader; -var writer; - -//打开串口并连接 -async function openPort() { - try { - // 获取用户之前授予该网站访问权限的所有串口 - var port = await navigator.serial.requestPort(); - await port.open({ baudRate: 115200 }, { dataBits: 8 }, { stopBits: 1 }, { parity: 'none' }); - layer.msg('设备已连接!'); - reader = port.readable.getReader(); - writer = port.writable.getWriter(); - encoder = new TextEncoder(); + var encoder = new TextEncoder(); //设置循环查询获取用户区的数据 - await writer.write(encoder.encode(">x m 1 03 00 04\r\n")); - while (port.readable && keepReading) { - try { - while (true) { - var { value, done } = await reader.read(); - if (done) { - reader.releaseLock(); - writer.releaseLock(); - break; + var params = { + data: encoder.encode(">x m 1 03 00 04\r\n") + } + openPort(params, function (value, isData) { + if (isData) { + var dataString = ""; + var barcode = ''; + if (value.length > 10) { + for (var i = 0; i < value.length; i++) { + if (value[i] !== '' && value[i] !== 13 && value[i] !== 10) { + dataString += String.fromCharCode(value[i]); + } } - if (value) { - dealWithData(value); + } + if (dataString !== '' && dataString.indexOf('M') >= 0) { + barcode = dataString.substring(dataString.indexOf('M') + 1, dataString.indexOf('FF')); + if (barcode !== '') { + loadBarcodeDevice(barcode); } } - } catch (error) { - layer.msg('连接失败!'); - } finally { - console.log(port.readable, keepReading); + } else { + if(value == "连接失败:SecurityError: Failed to execute 'requestPort' on 'Serial': Must be handling a user gesture to show a permission request."){ + layer.msg('连接失败:串口还没有授权,请先点击【连接RFID设备】按钮!'); + $("#openPortBtn").show(); + $('.departmentTemplate').css('right', '535px'); + }else { + layer.msg(value); + } } - } - } catch (error) { - layer.msg('连接失败:' + error); + }); + } else { + layer.msg('你的浏览器不支持串口连接!'); } } -//读取数据 -function dealWithData(value) { - var dataString = ""; - var barcode = ''; - if (value.length > 10) { - for (var i = 0; i < value.length; i++) { - if (value[i] !== '' && value[i] !== 13 && value[i] !== 10) { - dataString += String.fromCharCode(value[i]); - } - } - } - if (dataString !== '' && dataString.indexOf('M') >= 0) { - barcode = dataString.substring(dataString.indexOf('M') + 1, dataString.indexOf('FF')); - if (barcode !== '') { - loadBarcodeDevice(barcode); - } - } -} - -window.addEventListener('beforeunload', function () { - if(keepReading && reader){ - keepReading = false; - reader.cancel(); - reader.releaseLock(); - writer.releaseLock(); - } -}) - $(function () { // 是否开启根据科室加载模板 openLoadTemplateByUnit(); @@ -7364,9 +7327,8 @@ if (sstsConfig.showSelfTransportorInRecycleForm) { $('.departmentSender').show(); } - if(sstsConfig.enableRFIDTousseIdCard && !isIE()){ - $("#openPortBtn").show(); - $('.departmentTemplate').css('right','535px'); + if (sstsConfig.enableRFIDTousseIdCard && !isIE()) { + connectRFIDFun(); } }) Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.jsp =================================================================== diff -u -r34217 -r34428 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.jsp (.../packingView.jsp) (revision 34217) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.jsp (.../packingView.jsp) (revision 34428) @@ -258,7 +258,7 @@ - + Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp =================================================================== diff -u -r34396 -r34428 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 34396) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 34428) @@ -304,6 +304,7 @@ + @@ -598,7 +599,7 @@ - +
添加器械包
Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.js =================================================================== diff -u -r34401 -r34428 --- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.js (.../awaitForRecycleList.js) (revision 34401) +++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/awaitForRecycleList.js (.../awaitForRecycleList.js) (revision 34428) @@ -188,30 +188,32 @@ trColor = 'bgcolor="yellow"'; } - if(confirmRecyclingAmount && recycleAmountNeedConfirm == '是' && status !== '已确认'){ - if(sstsConfig.backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount){ + if (confirmRecyclingAmount && recycleAmountNeedConfirm == '是' && status !== '已确认') { + if (sstsConfig.backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount) { var config = sstsConfig.backgroundColorOfRecyclingRecordWhichRecyclingAmountNotEqualToAppplyAmount; - if(haveUnRecycling && greaterThan){ - if(config.greaterAndLessThanColor){ - trColor = 'bgcolor="'+config.greaterAndLessThanColor+'"'; - }else { + if (haveUnRecycling && greaterThan) { + if (config.greaterAndLessThanColor) { + trColor = 'bgcolor="' + config.greaterAndLessThanColor + '"'; + } else { trColor = 'bgcolor="yellow"'; } - }else if(haveUnRecycling){ - if(config.lessThanColor){ - trColor = 'bgcolor="'+config.lessThanColor+'"'; - }else { + } else if (haveUnRecycling) { + if (config.lessThanColor) { + trColor = 'bgcolor="' + config.lessThanColor + '"'; + } else { trColor = 'bgcolor="yellow"'; } - }else if(greaterThan){ - if(config.greaterThanColor){ - trColor = 'bgcolor="'+config.greaterThanColor+'"'; - }else { + } else if (greaterThan) { + if (config.greaterThanColor) { + trColor = 'bgcolor="' + config.greaterThanColor + '"'; + } else { trColor = 'bgcolor="yellow"'; } } - }else { - trColor = 'bgcolor="yellow"'; + } else { + if (!haveUnRecycling && !greaterThan) { + trColor = 'bgcolor="yellow"'; + } } } @@ -1615,82 +1617,44 @@ return parseInt(value); } -function connectPort() { +function connectRFIDFun() { if ('serial' in navigator) { - openPort(); - } else { - layer.msg('你的浏览器不支持串口连接!'); - } -} - -//读取数据 -function dealWithData(value) { - var dataString = ""; - var barcode = ''; - if (value.length > 10) { - for (var i = 0; i < value.length; i++) { - if (value[i] !== '' && value[i] !== 13 && value[i] !== 10) { - dataString += String.fromCharCode(value[i]); - } - } - } - if (dataString !== '' && dataString.indexOf('M') >= 0) { - barcode = dataString.substring(dataString.indexOf('M') + 1, dataString.indexOf('FF')); - if (barcode !== '') { - loadBarcodeDevice(barcode); - } - } -} - -var keepReading = true; -var reader; -var writer; - -//打开串口并连接 -async function openPort() { - try { - // 获取用户之前授予该网站访问权限的所有串口 - var port = await navigator.serial.requestPort(); - await port.open({ baudRate: 115200 }, { dataBits: 8 }, { stopBits: 1 }, { parity: 'none' }); - layer.msg('设备已连接!'); - reader = port.readable.getReader(); - writer = port.writable.getWriter(); - encoder = new TextEncoder(); + var encoder = new TextEncoder(); //设置循环查询获取用户区的数据 - await writer.write(encoder.encode(">x m 1 03 00 04\r\n")); - while (port.readable && keepReading) { - try { - while (true) { - var { value, done } = await reader.read(); - if (done) { - reader.releaseLock(); - writer.releaseLock(); - break; + var params = { + data: encoder.encode(">x m 1 03 00 04\r\n") + } + openPort(params, function (value, isData) { + if (isData) { + var dataString = ""; + var barcode = ''; + if (value.length > 10) { + for (var i = 0; i < value.length; i++) { + if (value[i] !== '' && value[i] !== 13 && value[i] !== 10) { + dataString += String.fromCharCode(value[i]); + } } - if (value) { - dealWithData(value); + } + if (dataString !== '' && dataString.indexOf('M') >= 0) { + barcode = dataString.substring(dataString.indexOf('M') + 1, dataString.indexOf('FF')); + if (barcode !== '') { + loadBarcodeDevice(barcode); } } - } catch (error) { - layer.msg('连接失败!'); - } finally { - console.log(port.readable, keepReading); + } else { + if(value == "连接失败:SecurityError: Failed to execute 'requestPort' on 'Serial': Must be handling a user gesture to show a permission request."){ + layer.msg('连接失败:串口还没有授权,请先点击【连接RFID设备】按钮!'); + $("#openPortBtn").show(); + }else { + layer.msg(value); + } } - } - } catch (error) { - layer.msg('连接失败:' + error); + }); + } else { + layer.msg('你的浏览器不支持串口连接!'); } } -window.addEventListener('beforeunload', function () { - if(keepReading && reader){ - keepReading = false; - reader.cancel(); - reader.releaseLock(); - writer.releaseLock(); - } -}) - $(document).ready(function () { /*Annie 快速入框权限*/ if (sstsConfig.enableExpressIntoContainer) { @@ -1746,7 +1710,7 @@ } if (sstsConfig.enableRFIDTousseIdCard && !isIE()) { - $("#openPortBtn").show(); + connectRFIDFun(); } //点击checkBox事件