ly há 3 anos atrás
pai
commit
d91218bd58

+ 509 - 0
ui/src/common/interface.js

@@ -0,0 +1,509 @@
+export var READER_TYPE = {
+    _reader_type_contactLess: 1,
+    _reader_type_contact: 2,
+    _reader_type_keyBoard: 3,
+    _reader_type_compro: 4,
+  };
+
+export var FUNCIDS = {
+    _fid_adaptReader: 0,
+    _fid_initialcom: 1,
+    _fid_exit: 2,
+    _fid_beep: 3,
+    _fid_GetDevSN: 4,
+    _fid_srd_eeprom: 5,
+    _fid_swr_eeprom: 6,
+    _fid_setBright: 7,
+    _fid_dispstr_ex: 8,
+    _fid_dispClear: 9,
+    _fid_passInReady: 10,
+    _fid_getPassPressed: 11,
+    _fid_getPassConfirmed: 12,
+    _fid_passInEnd: 13,
+    _fid_loadKey: 30,
+    _fid_findCard: 31,
+    _fid_findCardStr: 32,
+    _fid_findCardHex: 33,
+    _fid_authenClass: 34,
+    _fid_readAsStr: 35,
+    _fid_readAsHex: 36,
+    _fid_writeAsStr: 37,
+    _fid_writeAsHex: 38,
+    _fid_initVal: 39,
+    _fid_increment: 40,
+    _fid_decrement: 41,
+    _fid_readVal: 42,
+    _fid_transfer: 43,
+    _fid_changeKey: 44,
+    _fid_halt: 45,
+    _fid_resetRF: 46,
+    _fid_tagSetPwd: 47,
+    _fid_tagAuthenPwd: 48,
+    _fid_fcpuReset: 50,
+    _fid_fcpuAPDU: 51,
+    _fid_mifareProReset: 52,
+    _fid_mifareProAPDU: 53,
+    _fid_fmCosSelectApp: 60,
+    _fid_fmCosCreateMainApp: 61,
+    _fid_fmCosDeleteFileSys: 62,
+    _fid_fmCosVerifyKey: 63,
+    _fid_fmCosCreateDirectory: 64,
+    _fid_fmCosSelectDirectory: 65,
+    _fid_fmCosCreateKeyFile: 66,
+    _fid_fmCosAddKey: 67,
+    _fid_fmCosAddKeyEx: 68,
+    _fid_fmFWCosCreateBinaryFile: 69,
+    _fid_fmFWCosCreateRecordFile: 70,
+    _fid_fmCosCreateADF: 71,
+    _fid_fmCosActiveDirectory: 72,
+    _fid_fmCosReadBinaryFile: 73,
+    _fid_fmCosUpdateBinaryFile: 74,
+    _fid_fmCosAppendRecord: 75,
+    _fid_fmCosUpdateRecord: 76,
+    _fid_fmCosReadRecord: 77,
+    _fid_fmCosCredit: 78,
+    _fid_fmCosPurchase: 79,
+    _fid_fmCosGetBalance: 80,
+    _fid_fmCosUpdateKey: 81,
+    _fid_fmCosUpdatePin: 82,
+    _fid_fmCosPinReload: 83,
+    _fid_fmCosPinUnlock: 84,
+    _fid_icode_inventory: 85,
+    _fid_icode_select_uid: 86,
+    _fid_icode_readblockAsStr: 87,
+    _fid_icode_readblockAsHex: 88,
+    _fid_icode_writeblockAsStr: 89,
+    _fid_icode_writeblockAsHex: 90,
+    _fid_icode_lock_block: 91,
+    _fid_icode_get_systemInfo: 92,
+    _fid_request_b: 150,
+    _fid_CommandLink_at: 151,
+    _fid_config_card: 399,
+    _fid_getIDCardSN: 400,
+    _fid_getAutoReturnData: 450,
+    _fid_strToHex: 500,
+    _fid_hexToStr: 501,
+  };
+
+
+export const SmartReader = {
+    OBJ: function () {
+      var reader = {};
+      var SocketOpen = false;
+      var socket = null;
+      var target = null;
+      var adaptedID = READER_TYPE._reader_type_contactLess;
+
+      reader.onResult = function (func) {
+        target.addEvent("Result", func);
+      };
+
+      var WSonOpen = function () {
+        var pseudoName = "webReader";
+        var curTime = new Date();
+        var lTime = Date.parse(curTime);
+        var ms = curTime.getMilliseconds();
+
+        socket.send('0' + pseudoName + lTime + ms);
+        SocketOpen = true;
+        reader.adaptReader(adaptedID);
+      };
+      var WSonMessage = function (msg) {
+        var str = "";
+        str = msg.data;
+        var id = str.substr(0, 1);
+        var separator = str.indexOf("|");
+        var funcid = "";
+        var arg1 = "";
+
+        if (separator != -1) {
+          funcid = str.substr(1, separator - 1);
+          arg1 = str.substr(separator + 1);
+        } else
+          funcid = str.substr(1);
+
+        //alert("id:" + id + ",funcid:" + funcid +",arg1:" + arg1);
+
+        var resultData = {
+          type: "Result",
+          FunctionID: parseInt(funcid),
+          RePara_Int: parseInt(_getCmdResult(arg1)),
+          RePara_Str: _getResultPara(arg1)
+        };
+
+
+        if (target != null)
+          target.fireEvent(resultData);
+      };
+      var WSonClose = function () {
+        SocketOpen = false;
+      };
+      var WSonError = function () {
+        alert("Server not running");
+      };
+      reader.createSocket = function () {
+        try {
+          if ("WebSocket" in window) {
+            socket = new WebSocket("ws://localhost:81/webReaderServer");
+            console.log("WebSocket连接成功")
+          } else if ("MozWebSocket" in window) {
+            socket = new MozWebSocket("ws://localhost:81/webReaderServer");
+          } else {
+            alert("None");
+            return false;
+          }
+          socket.onopen = WSonOpen;
+          socket.onmessage = WSonMessage;
+          socket.onclose = WSonClose;
+          socket.onerror = WSonError;
+          target = new EventTarget();
+          return true;
+        } catch (ex) {
+          return false;
+        }
+      };
+      reader.Disconnect = function () {
+        if (socket != null)
+          socket.close();
+      };
+
+      reader.getOBJ = function (id) {
+        adaptedID = id;
+        return reader;
+      };
+
+      var SendCmd = function (FuncName, FunctionID, ParamStr) {
+        var entryCmd;
+        if (true == SocketOpen) {
+          entryCmd = '1' + FunctionID + "|" + FuncName + "|" + ParamStr;
+          socket.send(entryCmd);
+        }
+      };
+
+      reader.adaptReader = function (readerType) {
+        SendCmd("adaptReader", FUNCIDS._fid_adaptReader, readerType);
+      };
+      reader.initialcom = function (portType, baud) {
+        SendCmd("initialcom", FUNCIDS._fid_initialcom, portType + "," + baud);
+      };
+      reader.exit = function (hdev) {
+        SendCmd("exit", FUNCIDS._fid_exit, hdev);
+      };
+      reader.beep = function (hdev, delay) {
+        SendCmd("beep", FUNCIDS._fid_beep, hdev + "," + delay);
+      };
+      reader.GetDevSN = function (hdev) {
+        SendCmd("GetDevSN", FUNCIDS._fid_GetDevSN, hdev);
+      };
+      reader.srd_eeprom = function (hdev, offset, length) {
+        SendCmd("srd_eeprom", FUNCIDS._fid_srd_eeprom, hdev + "," + offset + "," + length);
+      };
+      reader.swr_eeprom = function (hdev, offset, length, wData) {
+        SendCmd("swr_eeprom", FUNCIDS._fid_swr_eeprom, hdev + "," + offset + "," + length + "," + wData);
+      };
+      reader.lcd_setBright = function (hdev, fBright) {
+        SendCmd("lcd_setBright", FUNCIDS._fid_setBright, hdev + "," + fBright);
+      };
+      reader.lcd_dispstr_ex = function (hdev, str, line, offset, str_len, flag) {
+        SendCmd("lcd_dispstr_ex", FUNCIDS._fid_dispstr_ex, hdev + "," + str + "," + line + "," + offset + "," + str_len + "," + flag);
+      };
+      reader.lcd_dispclear = function (hdev) {
+        SendCmd("lcd_dispclear", FUNCIDS._fid_dispClear, hdev);
+      };
+      reader.passInReady = function (hdev, waitTime) {
+        SendCmd("passInReady", FUNCIDS._fid_passInReady, hdev + "," + waitTime);
+      };
+      reader.getPassPressed = function (hdev) {
+        SendCmd("getPassPressed", FUNCIDS._fid_getPassPressed, hdev);
+      };
+      reader.getPassConfirmed = function (hdev) {
+        SendCmd("getPassConfirmed", FUNCIDS._fid_getPassConfirmed, hdev);
+      };
+      reader.passInEnd = function (hdev) {
+        SendCmd("passInEnd", FUNCIDS._fid_passInEnd, hdev);
+      };
+
+      reader.loadkey = function (hdev, mode, sector, strKey) {
+        SendCmd("loadkey", FUNCIDS._fid_loadKey, hdev + "," + mode + "," + sector + "," + strKey);
+      };
+      reader.findcard = function (hdev, mode) {
+        SendCmd("findcard", FUNCIDS._fid_findCard, hdev + "," + mode);
+      };
+      reader.findcardStr = function (hdev, mode) {
+        SendCmd("findcardStr", FUNCIDS._fid_findCardStr, hdev + "," + mode);
+      };
+      reader.findcardHex = function (hdev, mode) {
+        SendCmd("findcardHex", FUNCIDS._fid_findCardHex, hdev + "," + mode);
+      };
+      reader.authentication = function (hdev, mode, sector) {
+        SendCmd("authentication", FUNCIDS._fid_authenClass, hdev + "," + mode + "," + sector);
+      };
+      reader.read = function (hdev, block) {
+        SendCmd("read", FUNCIDS._fid_readAsStr, hdev + "," + block);
+      };
+      reader.directRead = function (hdev, block) {
+        SendCmd("directRead", FUNCIDS._fid_readAsHex, hdev + "," + block);
+      };
+      reader.write = function (hdev, block, wdata) {
+        SendCmd("write", FUNCIDS._fid_writeAsStr, hdev + "," + block + "," + wdata);
+      };
+      reader.directWrite = function (hdev, block, wdata) {
+        SendCmd("directWrite", FUNCIDS._fid_writeAsHex, hdev + "," + block + "," + wdata);
+      };
+      reader.initialval = function (hdev, block, value) {
+        SendCmd("initval", FUNCIDS._fid_initVal, hdev + "," + block + "," + value);
+      };
+      reader.increment = function (hdev, block, value) {
+        SendCmd("increment", FUNCIDS._fid_increment, hdev + "," + block + "," + value);
+      };
+      reader.decrement = function (hdev, block, value) {
+        SendCmd("decrement", FUNCIDS._fid_decrement, hdev + "," + block + "," + value);
+      };
+      reader.readval = function (hdev, block) {
+        SendCmd("readval", FUNCIDS._fid_readVal, hdev + "," + block);
+      };
+      reader.transfer = function (hdev, block) {
+        SendCmd("transfer", FUNCIDS._fid_transfer, hdev + "," + block);
+      };
+      reader.changkey = function (hdev, sector, strKeyA, strCtrlW, bk, strKeyB) {
+        SendCmd("changekey", FUNCIDS._fid_changeKey, hdev + "," + sector + "," + strKeyA + "," + strCtrlW + "," + bk + "," + strKeyB);
+      };
+      reader.halt = function (hdev) {
+        SendCmd("halt", FUNCIDS._fid_halt, hdev);
+      };
+      reader.reset = function (hdev, ms) {
+        SendCmd("reset", FUNCIDS._fid_resetRF, hdev + "," + ms);
+      };
+      reader.tagSetPwd = function (hdev, tagType, pwd, protectType, startAddrToProtect, maxErrorVerify, lockConfig) {
+        SendCmd("tagSetPwd", FUNCIDS._fid_tagSetPwd, hdev + "," + tagType + "," + pwd + "," + protectType + "," + startAddrToProtect + "," + maxErrorVerify + "," + lockConfig);
+      };
+      reader.tagAuthenPwd = function (hdev, pwd) {
+        SendCmd("tagAuthenPwd", FUNCIDS._fid_tagAuthenPwd, hdev + "," + pwd);
+      };
+      reader.mifareproReset = function (hdev) {
+        SendCmd("mifareProReset", FUNCIDS._fid_mifareProReset, hdev);
+      };
+      reader.mifareproCommandlink = function (hdev, strCmd) {
+        SendCmd("mifareproCommandlink", FUNCIDS._fid_mifareProAPDU, hdev + "," + strCmd);
+      };
+      reader.fcpureset = function (hdev, rlen) {
+        SendCmd("fcpureset", FUNCIDS._fid_fcpuReset, hdev + "," + rlen);
+      };
+      reader.fcpuCommandlink = function (hdev, slen, strSendCmd, ftt, fFG) {
+        SendCmd("cpuCommand", FUNCIDS._fid_fcpuAPDU, hdev + "," + slen + "," + strSendCmd + "," + ftt + "," + fFG);
+      };
+      reader.GetIDCardSN = function (hdev) {
+        SendCmd("getIDCardSN", FUNCIDS._fid_getIDCardSN, hdev);
+      };
+
+      reader.FWCosSelecteApp = function (hdev) {
+        SendCmd("FMCosSelectApp", FUNCIDS._fid_fmCosSelectApp, hdev);
+      };
+      reader.FWCosCreateMainApp = function (hdev) {
+        SendCmd("FMCosCreateMainApp", FUNCIDS._fid_fmCosCreateMainApp, hdev);
+      };
+      reader.FWCosDeleteFileSys = function (hdev) {
+        SendCmd("FMCosDeleteFileSys", FUNCIDS._fid_fmCosDeleteFileSys, hdev);
+      };
+      reader.FWCosVerifyKey = function (hdev, pbKey, ulKeyType) {
+        SendCmd("FMCosVerifyKey", FUNCIDS._fid_fmCosVerifyKey, hdev + "," + pbKey + "," + ulKeyType);
+      };
+      reader.FWCosCreateDirectory = function (hdev, usDirFileID, usDirSize, ulCreateSec, ulDeleteSec) {
+        SendCmd("FMCosCreateDirectory", FUNCIDS._fid_fmCosCreateDirectory,
+          hdev + "," + usDirFileID + "," + usDirSize + "," + ulCreateSec + "," + ulDeleteSec);
+      };
+      reader.FWCosSelectDirectory = function (hdev, usDirID) {
+        SendCmd("FMCosSelectDirectory", FUNCIDS._fid_fmCosSelectDirectory, hdev + "," + usDirID);
+      };
+      reader.FWCosCreateKeyFile = function (hdev, usDirFileID, usFileID, uFileLen, ulGenSec) {
+        SendCmd("FMCosCreateKeyFile", FUNCIDS._fid_fmCosCreateKeyFile,
+          hdev + "," + usDirFileID + "," + usFileID + "," + uFileLen + "," + ulGenSec);
+      };
+      reader.FWCosAddKey = function (hdev, bKeyType, pbKeyValue) {
+        SendCmd("FMCosAddKey", FUNCIDS._fid_fmCosAddKey, hdev + "," + bKeyType + "," + pbKeyValue);
+      };
+      reader.FWCosAddKeyEx = function (hdev, bKeyType, ucKeyID, pbKeyValue, ucSecUpdate, ucNextSt, ucMaxCntError, cryptType) {
+        SendCmd("FMCosAddKeyEx", FUNCIDS._fid_fmCosAddKeyEx,
+          hdev + "," + bKeyType + "," + ucKeyID + "," + pbKeyValue + "," + ucSecUpdate + "," + ucNextSt + "," + ucMaxCntError + "," + cryptType);
+      };
+      reader.FWCosCreateBinaryFile = function (hdev, usDirFileID, usFileID, usFileLen, cryptType, ulReadSec, ulUpdateSec, ulDeleteSec) {
+        SendCmd("FMCosCreateBinaryFile",
+          FUNCIDS._fid_fmFWCosCreateBinaryFile, hdev + "," + usDirFileID + "," + usFileID + "," + usFileLen + "," + cryptType + "," + ulReadSec + "," + ulUpdateSec);
+      };
+      reader.FWCosCreateRecordFile = function (hdev, usDirFileID, ucFRecord, usFileID, bRecordNum, bRecordLen, cryptType, ulReadSec, ulUpdateSec, ulDeleteSec) {
+        SendCmd("FMCosCreateRecordFile", FUNCIDS._fid_fmFWCosCreateRecordFile, hdev + "," + usDirFileID + "," + ucFRecord + "," + usFileID + "," + bRecordNum + "," + bRecordLen + "," +
+          cryptType + "," + ulReadSec + "," + ulUpdateSec + "," + ulDeleteSec);
+      };
+      reader.FWCosCreateADF = function (hdev, usDirFileID, ulCreateSec, ulDeleteSec, pbDirName) {
+        SendCmd("FMCosCreateADF", FUNCIDS._fid_fmCosCreateADF, hdev + "," + usDirFileID + "," + ulCreateSec + "," + ulDeleteSec + "," + pbDirName);
+      };
+      reader.FWCosActiveDirectory = function (hdev, usDirFileID) {
+        SendCmd("FMCosActiveDirectory", FUNCIDS._fid_fmCosActiveDirectory, hdev + "," + usDirFileID);
+      };
+      reader.FWCosReadBinaryFile = function (hdev, usFileID, usOffset, usReadLen, cryptType, pProKey) {
+        SendCmd("FMCosReadBinaryFile", FUNCIDS._fid_fmCosReadBinaryFile,
+          hdev + "," + usFileID + "," + usOffset + "," + usReadLen + "," + cryptType + "," + pProKey);
+      };
+      reader.FWCosUpdateBinaryFile = function (hdev, usFileID, usOffset, pbBinData, cryptType, pProKey) {
+        SendCmd("FMCosUpdateBinaryFile", FUNCIDS._fid_fmCosUpdateBinaryFile,
+          hdev + "," + usFileID + "," + usOffset + "," + pbBinData + "," + cryptType + "," + pProKey);
+      };
+      reader.FWCosAppendRecord = function (hdev, bRecordFileID, pbRecData, cryptType, pProKey) {
+        SendCmd("FMCosAppendRecord", FUNCIDS._fid_fmCosAppendRecord,
+          hdev + "," + bRecordFileID + "," + pbRecData + "," + cryptType + "," + pProKey);
+      };
+      reader.FWCosUpdateRecord = function (hdev, ucRecord, bRecordFileID, bRecordNum, pbRecData, cryptType, pProKey) {
+        SendCmd("FMCosUpdateRecord", FUNCIDS._fid_fmCosUpdateRecord,
+          hdev + "," + ucRecord + "," + bRecordFileID + "," + bRecordNum + "," + pbRecData + "," + cryptType + "," + pProKey);
+      };
+      reader.FWCosReadRecord = function (hdev, ucFRecord, bRecordFileID, bRecordNum, bRecordLen) {
+        SendCmd("FMCosReadRecord", FUNCIDS._fid_fmCosReadRecord,
+          hdev + "," + ucFRecord + "," + bRecordFileID + "," + bRecordNum + "," + bRecordLen);
+      };
+      reader.FWCosCredit = function (hdev, ucKeyID, value, terminalID, pbCreditKey) {
+        SendCmd("FMCosCredit", FUNCIDS._fid_fmCosCredit,
+          hdev + "," + ucKeyID + "," + value + "," + terminalID + "," + pbCreditKey);
+      };
+      reader.FWCosPurchase = function (hdev, ucKeyID, value, terminalID, pbPurchaseKey) {
+        SendCmd("FMCosPurchase", FUNCIDS._fid_fmCosPurchase,
+          hdev + "," + ucKeyID + "," + value + "," + terminalID + "," + pbPurchaseKey);
+      };
+      reader.FWCosGetBalance = function (hdev) {
+        SendCmd("FMCosGetBalance", FUNCIDS._fid_fmCosGetBalance, hdev);
+      };
+      reader.FWCosUpdateKey = function (hdev, pbOldKey, pbNewKey, bKeyType) {
+        SendCmd("FMCosUpdateKey", FUNCIDS._fid_fmCosUpdateKey,
+          hdev + "," + pbOldKey + "," + pbNewKey + "," + bKeyType);
+      };
+      reader.FWCosUpdatePin = function (hdev, pbOldPin, pbNewPin) {
+        SendCmd("FMCosUpdatePin", FUNCIDS._fid_fmCosUpdatePin,
+          hdev + "," + pbOldPin + "," + pbNewPin);
+      };
+      reader.FWCosPinReload = function (hdev, pbNewPin, pbReloadKey) {
+        SendCmd("FMCosPinReload", FUNCIDS._fid_fmCosPinReload,
+          hdev + "," + pbNewPin + "," + pbReloadKey);
+      };
+      reader.FWCosPinUnlock = function (hdev, pbPin, pbUnlockKey) {
+        SendCmd("FMCosPinUnlock", FUNCIDS._fid_fmCosPinUnlock,
+          hdev + "," + pbPin + "," + pbUnlockKey);
+      };
+      reader.icode_inventory = function (hdev, findMode, AFI, maskLen) {
+        SendCmd("icode_inventory", FUNCIDS._fid_icode_inventory,
+          hdev + "," + findMode + "," + AFI + "," + maskLen);
+      };
+      reader.icode_select_uid = function (hdev, flags, UID) {
+        SendCmd("icode_select_uid", FUNCIDS._fid_icode_select_uid,
+          hdev + "," + flags + "," + UID);
+      };
+      reader.icode_readblock = function (hdev, flags, startblock, blocknum, UID) {
+        SendCmd("icode_readblock", FUNCIDS._fid_icode_readblockAsStr,
+          hdev + "," + flags + "," + startblock + "," + blocknum + "," + UID);
+      };
+      reader.icode_readblock_hex = function (hdev, flags, startblock, blocknum, UID) {
+        SendCmd("icode_readblock_hex", FUNCIDS._fid_icode_readblockAsHex,
+          hdev + "," + flags + "," + startblock + "," + blocknum + "," + UID);
+      };
+      reader.icode_writeblock = function (hdev, flags, startblock, blocknum, UID, wbuffer) {
+        SendCmd("icode_writeblock", FUNCIDS._fid_icode_writeblockAsStr,
+          hdev + "," + flags + "," + startblock + "," + blocknum + "," + UID + "," + wbuffer);
+      };
+      reader.icode_writeblock_hex = function (hdev, flags, startblock, blocknum, UID, wbuffer) {
+        SendCmd("icode_writeblock_hex", FUNCIDS._fid_icode_writeblockAsHex,
+          hdev + "," + flags + "," + startblock + "," + blocknum + "," + UID + "," + wbuffer);
+      };
+      reader.icode_lock_block = function (hdev, flags, block, UID) {
+        SendCmd("icode_lock_block", FUNCIDS._fid_icode_lock_block,
+          hdev + "," + flags + "," + block + "," + UID);
+      };
+      reader.icode_get_systemInfo = function (hdev, flags, UID) {
+        SendCmd("icode_get_systemInfo", FUNCIDS._fid_icode_get_systemInfo,
+          hdev + "," + flags + "," + UID);
+      };
+
+      reader.request_b = function (hdev, mode, aid, channalNum) {
+        SendCmd("request_b", FUNCIDS._fid_request_b, hdev + "," + mode + "," + aid + "," + channalNum);
+      };
+      reader.CommandLink_at = function (hdev, slen, strSendCmd) {
+        SendCmd("CommandLink_at", FUNCIDS._fid_CommandLink_at, hdev + "," + slen + "," + strSendCmd);
+      };
+
+      reader.config_card = function (hdev, cardType) {
+        SendCmd("config_card", FUNCIDS._fid_config_card,
+          hdev + "," + cardType);
+      };
+
+      reader.hexTochar = function (str, strLen) {
+        SendCmd("strToHex", FUNCIDS._fid_strToHex, str + "," + strLen);
+      };
+      reader.charToHex = function (hex, hexLen) {
+        SendCmd("hexToStr", FUNCIDS._fid_hexToStr, hex + "," + hexLen);
+      };
+      reader.getAutoReturnData = function (hdev) {
+        SendCmd("getAutoReturnData", FUNCIDS._fid_getAutoReturnData, hdev);
+      };
+
+      return reader;
+    }
+  };
+
+export function EventTarget() {
+    this.handlers = {};
+  }
+
+    EventTarget.prototype = {
+    constructor: EventTarget, addEvent: function (type, handler) {
+      console.log("EventTargetEventTargetEventTarget")
+      if (typeof this.handlers[type] == 'undefined') {
+        this.handlers[type] = [];
+      }
+      this.handlers[type].push(handler);
+    }, fireEvent: function (event) {
+      if (!event.target) {
+        event.target = this;
+      }
+      if (this.handlers[event.type] instanceof Array) {
+        var handlers = this.handlers[event.type];
+        for (var i = 0; i < handlers.length; i++) {
+          handlers[i](event);
+        }
+      }
+    }, removeEvent: function (type, handler) {
+      if (this.handlers[type] instanceof Array) {
+        var handlers = this.handlers[type];
+        for (var i = 0; i < handlers.length; i++) {
+          if (handlers[i] == handler) {
+            break;
+          }
+        }
+        handlers.splice(i, 1);
+      }
+    }
+  };
+
+export function _getCmdResult(relPara) {
+    var iRel;
+    var separator = relPara.indexOf(",");
+    if (separator != -1) {
+      iRel = relPara.substr(0, separator);
+    } else
+      iRel = relPara.substr(0);
+
+    return iRel;
+  }
+
+export function _getResultPara(relPara) {
+    var szPara = "";
+    var separator = relPara.indexOf(",");
+    if (separator != -1) {
+      szPara = relPara.substr(separator + 1);
+    }
+    return szPara;
+  }
+
+   export const embed_reader = SmartReader.OBJ();
+
+
+  if (!embed_reader.createSocket()) {
+  }
+
+

+ 174 - 0
ui/src/views/tool/card/AutoGetCardSN.html

@@ -0,0 +1,174 @@
+<HTML>
+<HEAD>
+<TITLE>Reader Test</TITLE>
+</HEAD>
+<BODY id="bodyId">
+
+<center>
+<h1>Example Reader Used In Web </h1>
+</center>
+
+
+<br><br>
+
+<center>
+
+<p align="center"><textarea rows="20" id="TxtArea" cols="111"></textarea></p>
+
+<script type="text/javascript" src="interface.js"></script>
+
+<script>
+var msg = document.getElementById('TxtArea');
+</script>
+
+<script>
+var obj = embed_reader.getOBJ(READER_TYPE._reader_type_contactLess);
+obj.onResult(function(rData)
+{
+	switch(rData.FunctionID)
+    {
+    case FUNCIDS._fid_adaptReader:
+    alert("Server is ready, you can start now!");
+    Connect();
+    break;
+		case FUNCIDS._fid_initialcom:
+		{
+		var opst;
+		var rel = rData.RePara_Int;
+		if(0 == rel)
+		{
+			var hdev = parseInt(rData.RePara_Str);
+			if(hdev != -1)
+			{
+				icdev= hdev;
+
+				if(isComOpen == true)
+					break;
+				isComOpen=true;             //Set reader link status
+        gl_fFailedShow = 0; //reset the flag whether show fail message or not
+
+				msg.value =msg.value+"Link reader ok\n";
+
+				//Findcard();
+				obj.config_card(icdev, 0x41);//config to typeA
+			}
+			else
+			{
+        if(0 == gl_fFailedShow)
+        {
+          gl_fFailedShow = 1;//set the flag whether show fail message or not
+          msg.value = "Link reader error\n";
+        }
+				//isComOpen=false;           //Set reader link failed status
+				setInterval("Connect()", 3000);
+			}
+		}
+		else
+			msg.value = "Object load error\n";
+		}
+		break;
+		case FUNCIDS._fid_exit:
+		msg.value =msg.value+"reader closed\n"
+		break;
+		case FUNCIDS._fid_beep:
+		Findcard();
+		break;
+		case FUNCIDS._fid_halt:
+		obj.beep(icdev, 10);
+		break;
+		case FUNCIDS._fid_findCardStr:
+		{
+			var strcard= rData.RePara_Str;
+			if(strcard!="")
+			{
+				hasCard =true;
+        msg.value=msg.value+"Card ID: "+strcard+"\n";
+				obj.halt(icdev);
+			}
+			else
+			{
+        if(0 == gl_fFailedShow)
+        {
+          gl_fFailedShow = 1;//set the flag whether show fail message or not
+          msg.value=msg.value+"Found no card, put a card on the RF area now\n";
+        }
+
+				hasCard =false;        //Set no card status
+				Findcard();
+			}
+		}
+		break;
+		case FUNCIDS._fid_config_card:
+		{
+      Findcard();
+		}
+		break;
+
+	}
+
+}
+);
+
+//Link Reader
+function Connect()
+{
+	try{
+	if(isComOpen==false)          //if reader link failed
+	{
+		//alert("initialcom");
+	   obj.initialcom(100,115200);
+	}
+	}catch(e){alert(e.message);}
+
+	return;
+}
+
+// Find card
+function Findcard()
+{
+    obj.findcardStr(icdev,0);//1);     //1: multy card mode
+	gl_wantFunc = 0;
+}
+
+//Disconnect with reader
+function Disconnect()
+{
+	iRet = obj.exit(icdev);
+    isComOpen=false; //Set unlink status
+}
+
+var GFUNC = {
+	readClass:1,
+	writeClass:2,
+	initVal:3,
+	increment:4,
+	decrement:5,
+	readVal:6,
+	updateKey:7,
+	mifareProTest:8,
+};
+
+ var nRead =0;     //The count one card repeat find
+ var hasCard =false;
+ var isComOpen=false;
+ var icdev= -1;
+ var gl_sector = 2;
+ var gl_BinBlock = 8;
+ var gl_valBlock = 9;
+ var gl_romRWLen = 10;
+ var gl_romRWAddr = 0;
+ var gl_wantFunc =  0;
+ var gl_fFailedShow = 0;
+
+
+</script>
+
+<br>
+<form name="formname">
+</form>
+
+</center>
+
+</BODY>
+</HTML>
+

+ 123 - 0
ui/src/views/tool/card/index.vue

@@ -0,0 +1,123 @@
+<template>
+  <p align="center"><textarea rows="20" :value="this.cardId" cols="111"></textarea></p>
+</template>
+
+<script>
+import {_getCmdResult, _getResultPara} from "@/common/interface";
+
+export default {
+  name : 'test',
+  data() {
+    return {
+      websock: null,
+      paramStr: '',
+      isComOpen: false,
+      cardId: ''
+    }
+  },
+  created() {
+    this.initWebSocket();
+  },
+  destroyed() {
+    this.websock.close() //离开路由之后断开websocket连接
+  },
+  methods: {
+    initWebSocket(){ //初始化websocket
+      const wsuri = "ws://localhost:81/webReaderServer";
+      if ("WebSocket" in window){
+        this.websock = new WebSocket(wsuri);
+      }
+      else if("MozWebSocket" in window){
+        this.websock = new MozWebSocket(wsuri);
+      }
+      this.websock.onmessage = this.websocketonmessage;
+      this.websock.onopen = this.websocketonopen;
+      this.websock.onerror = this.websocketonerror;
+      this.websock.onclose = this.websocketclose;
+    },
+    websocketonopen(){ //连接建立之后执行send方法发送数据
+      console.log("连接建立之后执行send方法发送数据")
+      this.websocketsend("0webReader");
+      this.websocketsend("10|adaptReader|1");
+    },
+    websocketonerror(){//连接建立失败重连
+      this.initWebSocket();
+    },
+    websocketonmessage(e){ //数据接收
+      console.log(e.data);
+      var str = "";
+      str = e.data;
+      var id = str.substr(0, 1);
+      var separator = str.indexOf("|");
+      var funcid = "";
+      var arg1 = "";
+      if (separator != -1) {
+        funcid = str.substr(1, separator - 1);
+        arg1 = str.substr(separator + 1);
+      } else
+        funcid = str.substr(1);
+      //alert("id:" + id + ",funcid:" + funcid +",arg1:" + arg1);
+      var resultData = {
+        type: "Result",
+        FunctionID: parseInt(funcid),
+        RePara_Int: parseInt(_getCmdResult(arg1)),
+        RePara_Str: _getResultPara(arg1)
+      };
+      if(resultData.FunctionID == "0"){
+        //连接上websocket,连接读卡器
+        this.cardConnect()
+      }else if(resultData.FunctionID == "1"){
+        //配置参数
+        this.paramStr = resultData.RePara_Str
+        this.websocketsend("1399|config_card|" + this.paramStr +"65");
+      }else if (resultData.FunctionID == "399") {
+        //寻找卡片
+        this.findCard()
+
+      }else if (resultData.FunctionID == "32") {
+        if (resultData.RePara_Str!= "") {
+          this.cardId = resultData.RePara_Str
+          console.log("卡号:" + this.cardId)
+          this.websocketsend("145|halt|" + this.paramStr +"");
+        }else {
+          console.log("没有卡号:" + this.cardId)
+          this.findCard()
+        }
+      }else if (resultData.FunctionID == "45") {
+        this.websocketsend("13|beep|" + this.paramStr +"10");
+      }else if (resultData.FunctionID == "3") {
+        //寻找卡片
+        let _this = this
+        setTimeout(function (){
+          _this.findCard()
+        }, 1000);
+      }
+      // console.log(resultData);
+    },
+    websocketsend(Data){//数据发送
+      this.websock.send(Data);
+    },
+    websocketclose(e){  //关闭
+      console.log('断开连接',e);
+    },
+    cardConnect() {
+      try{
+        if(this.isComOpen==false)          //if reader link failed
+        {
+          // alert("initialcom");
+          this.websocketsend("11|initialcom|100,115200");
+        }
+      }catch(e){alert(e.message);}
+      return;
+    },
+    findCard() {
+      this.websocketsend("132|findcardStr|" + this.paramStr +"0");
+    },
+  },
+
+}
+</script>
+
+<style scoped>
+
+</style>