Index: ssts-web/src/main/webapp/disinfectsystem/packing/index.html =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/packing/index.html (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/packing/index.html (revision 34395) @@ -0,0 +1,346 @@ + + + + 连接RFID + + + + + +
+

连接RFID

+
+
+
+ + + + + + + +
+ + + + + + + +
+
+ +
+
+
+ + + Index: ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js =================================================================== diff -u -r34355 -r34395 --- ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 34355) +++ ssts-web/src/main/webapp/disinfectsystem/packing/packingView.js (.../packingView.js) (revision 34395) @@ -475,6 +475,7 @@ return node; } +var newWorker; Ext4.onReady(function () { taskGroupObj = getTaskGroupObjByName(taskGroup); packingPageAutoSetSterilizationProgramAfterSelectTousse = getBoolValueFromJs('sstsConfig.packingPageAutoSetSterilizationProgramAfterSelectTousse', true); @@ -494,6 +495,18 @@ 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', fields: [ @@ -2568,6 +2581,15 @@ handler: function () { onErrorDamageBtnClick2(type_damage); } + }, + { + xtype: 'button', + margin: '0 0 0 10', + hidden: !sstsConfig.enableRFIDTousseIdCard, + text: '' + '连接RFID' + '', + handler: function () { + openModalWindow(WWWROOT+'/disinfectsystem/packing/index.html',{}, '600', '300') + } }] } ] Index: ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/packing/setPlugInRFID.js (revision 34395) @@ -0,0 +1,328 @@ +var socket; +var lastCom; +var lastTime = ''; +var lastStrObj = { + name: '', + count: 0 +}; + +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) { + 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") { + + } 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; + } 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 + } + } + } + if (lastStrObj.count % 3 == 0) { + var item = lastStrObj.name; + if (item !== '') { + showMessage(item, true); + } + } + } + } + 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; + } +} + +function showMessage(message, success) { + var obj = { + success: success || false, + message: message + } + 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