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
+
+
+
+
+
+
+
+
+
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