選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

WJDataAnalysis.js 11KB

1
  1. "use strict";var _WJUtils=require("./WJUtils.js"),_WJUtils2=_interopRequireDefault(_WJUtils);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function analysisAuthOBU(e){var t=_WJUtils2.default.hexStr2byteArray(e),r={};return 1==t.byteLength?(197==(255&t[0])?(r.serviceCode=0,r.serviceInfo="认证成功"):(r.serviceCode=-2,r.serviceInfo="认证失败"),r.serviceData={},r.serviceData.dataBuff=e):(r.serviceCode=-1,r.serviceInfo="认证失败,信息长度有误"),r}function analysisGetActState(e){var t=_WJUtils2.default.hexStr2byteArray(e),r={};return 2==t.byteLength?198==(255&t[0])||203==(255&t[0])?(0==(255&t[1])?(r.serviceCode=0,r.serviceInfo="防拆弹起"):1==(255&t[1])?(r.serviceCode=0,r.serviceInfo="防拆按下"):(r.serviceCode=-3,r.serviceInfo="防拆状态异常"),r.serviceData={},r.serviceData.dataBuff=e.substr(2)):(r.serviceCode=-2,r.serviceInfo="解析失败",r.serviceData={},r.serviceData.dataBuff=e):(r.serviceCode=-1,r.serviceInfo="获取防拆失败,信息长度有误"),r}function analysisLightAct(e){var t=_WJUtils2.default.hexStr2byteArray(e),r={};return 1==t.byteLength?(193==(255&t[0])?(r.serviceCode=0,r.serviceInfo="闪前灯成功"):194==(255&t[0])?(r.serviceCode=0,r.serviceInfo="闪后灯成功"):(r.serviceCode=-2,r.serviceInfo="闪灯异常"),r.serviceData={},r.serviceData.dataBuff=e):(r.serviceCode=-1,r.serviceInfo="闪灯失败,信息长度有误"),r}function analysisUpNewPipe(e){var t=_WJUtils2.default.hexStr2byteArray(e),r={};return 2==t.byteLength?(199==(255&t[0])&&0==(255&t[1])?(r.serviceCode=0,r.serviceInfo="更新成功"):(r.serviceCode=-2,r.serviceInfo="更新失败"),r.serviceData={},r.serviceData.dataBuff=e):(r.serviceCode=-1,r.serviceInfo="更新失败,信息长度有误"),r}function analysisinitIC(e){var t=_WJUtils2.default.hexStr2byteArray(e),r={};return 73==t.byteLength?(0==(128&t[1])?(r.serviceCode=0,r.serviceInfo="初始化成功"):128==(128&t[1])?(r.serviceCode=1,r.serviceInfo="初始化失败"):(r.serviceCode=-3,r.serviceInfo="初始化异常"),r.serviceData={},r.serviceData.dataBuff=e):(r.serviceCode=-2,r.serviceInfo="获取卡片初始化失败,信息长度有误"),r}function analysisCardInfo(e){var t,r,a,s,i,l,c,n,y=_WJUtils2.default.hexStr2byteArray(e),o={},d=y.byteLength,e=_analysisIs9000(e);return 0!=e.serviceCode?e:(55==d?(e=y.slice(2,10),d=y.slice(10,11),y.slice(11,12),t=y.slice(12,14),r=y.slice(14,22),a=y.slice(22,26),y.slice(26,30),s=y.slice(30,42),i=y.slice(42,43),l=y.slice(43,44),c=y.slice(44,45),y=y.slice(49,53),n=parseInt((255&y[0])<<24),n=(n=(n+=parseInt((255&y[1])<<16))+parseInt((255&y[2])<<8))+parseInt(255&y[3]),_WJUtils2.default.showLog("cardIssuerID:",_WJUtils2.default.byteArray2hexStr(e),"bindedPlate",_WJUtils2.default.byteArray2hexStr(s),"balance:",n),o.serviceCode=0,o.serviceInfo="获取卡片信息成功",o.serviceData={},o.serviceData.cardIssuerID=_WJUtils2.default.byteArray2hexStr(e),o.serviceData.cardType=_WJUtils2.default.byteArray2hexStr(d),o.serviceData.roadswebID=_WJUtils2.default.byteArray2hexStr(t),o.serviceData.cardNo=_WJUtils2.default.byteArray2hexStr(r),o.serviceData.SignedDate=_WJUtils2.default.byteArray2hexStr(a),o.serviceData.bindedPlate=_WJUtils2.default.byteArray2hexStr(s),o.serviceData.userType=_WJUtils2.default.byteArray2hexStr(i),o.serviceData.vehColor=_WJUtils2.default.byteArray2hexStr(l),o.serviceData.vehType=_WJUtils2.default.byteArray2hexStr(c),o.serviceData.intbalance=n):(o.serviceCode=-3,o.serviceInfo="获取卡片信息失败,信息长度有误"),o)}function analysisCardOwnerRecord(e){var t,r,a=_WJUtils2.default.hexStr2byteArray(e),s={},i=a.byteLength,e=_analysisIs9000(e);return 0!=e.serviceCode?e:(59==i?(e=a.slice(2,3),i=a.slice(3,4),t=a.slice(4,24),r=a.slice(24,56),a=a.slice(56,57),_WJUtils2.default.showLog("ownerName:",_WJUtils2.default.byteArray2hexStr(t),"ownerLicenseNumber:",_WJUtils2.default.byteArray2hexStr(r),"ownerLicenseType:",a),s.serviceCode=0,s.serviceInfo="获取持卡人信息成功",s.serviceData={},s.serviceData.ownerId=_WJUtils2.default.byteArray2hexStr(e),s.serviceData.staffId=_WJUtils2.default.byteArray2hexStr(i),s.serviceData.ownerName=_WJUtils2.default.byteArray2hexStr(t),s.serviceData.ownerLicenseNumber=_WJUtils2.default.byteArray2hexStr(r),s.serviceData.ownerLicenseType=_WJUtils2.default.byteArray2hexStr(a)):(s.serviceCode=-3,s.serviceInfo="获取持卡人信息失败,信息长度有误"),s)}function analysisCardTransactionRecord(e){var t=0,r=_WJUtils2.default.hexStr2byteArray(e),a=r.byteLength,s={};if(4<=a){for(s.serviceCode=0,s.serviceInfo="获取交易记录信息成功",s.serviceData={},s.serviceData.CardTransactionRecordData=[];t<a;){var i=r[t++],l=r[t]-1;if(console.log("WJ9000校验第"+i+"条:",r[t+l],r[t+l+1]),144!=r[t+l]||0!=r[t+l+1])return console.log("交易记录:",s),s;i={};if(t++,i.onlineSn=_WJUtils2.default.byteArray2hexStr(r.slice(t,t+2)),t+=2,i.overdrawLimit=_WJUtils2.default.byteArray2hexStr(r.slice(t,t+3)),t+=3,i.transAmount=_WJUtils2.default.byteArray2hexStr(r.slice(t,t+4)),t+=4,i.transType=_WJUtils2.default.byteArray2hexStr(r.slice(t,t+1)),t+=1,i.terminalNo=_WJUtils2.default.byteArray2hexStr(r.slice(t,t+6)),t+=6,i.transDate=_WJUtils2.default.byteArray2hexStr(r.slice(t,t+4)),t+=4,i.transTime=_WJUtils2.default.byteArray2hexStr(r.slice(t,t+3)),t=t+3+2,s.serviceData.CardTransactionRecordData.push(i),"ffff"==_WJUtils2.default.byteArray2hexStr(i.onlineSn)||"0000"==_WJUtils2.default.byteArray2hexStr(i.onlineSn))return console.log("交易记录:",s),s}console.log("交易记录:",s)}else s.serviceCode=-3,s.serviceInfo="获取交易记录失败,信息长度有误";return s}function analysisInitInfo(e){var t,r,a,s,i=_WJUtils2.default.hexStr2byteArray(e),l={},c=i.byteLength,e=_analysisIs9000(e);return 0!=e.serviceCode?e:(20==c?(e=i.slice(2,6),c=i.slice(6,8),t=i.slice(8,9),r=i.slice(9,10),a=i.slice(10,14),i=i.slice(14,18),s=parseInt((255&e[0])<<24),s=(s=(s+=parseInt((255&e[1])<<16))+parseInt((255&e[2])<<8))+parseInt(255&e[3]),_WJUtils2.default.showLog("intbalance:",s,"pseudoRand:",_WJUtils2.default.byteArray2hexStr(a),"Mac1:",_WJUtils2.default.byteArray2hexStr(i),"CardSeq:",_WJUtils2.default.byteArray2hexStr(c)),l.serviceCode=0,l.serviceInfo="解析圈存初始化成功",l.serviceData={},l.serviceData.intbalance=s,l.serviceData.CardSeq=_WJUtils2.default.byteArray2hexStr(c),l.serviceData.keyVersion=_WJUtils2.default.byteArray2hexStr(t),l.serviceData.algTag=_WJUtils2.default.byteArray2hexStr(r),l.serviceData.pseudoRand=_WJUtils2.default.byteArray2hexStr(a),l.serviceData.Mac1=_WJUtils2.default.byteArray2hexStr(i)):(l.serviceCode=-3,l.serviceInfo="解析圈存初始化失败,信息长度有误"),l)}function analysisLoadCreadit(e){var t=_WJUtils2.default.hexStr2byteArray(e),r={},a=t.byteLength,e=_analysisIs9000(e);return 0!=e.serviceCode?e:(8==a?(e=t.slice(2,6),_WJUtils2.default.showLog("TAG",_WJUtils2.default.byteArray2hexStr(e)),r.serviceCode=0,r.serviceInfo="圈存成功",r.serviceData={},r.serviceData.TAG=_WJUtils2.default.byteArray2hexStr(e)):(r.serviceCode=-3,r.serviceInfo="圈存解析失败,长度有误"),r)}function analysisgetObuSysInfo(e){var t,r,a,s,i=_WJUtils2.default.hexStr2byteArray(e),l={},c=i.byteLength,e=_analysisIs9000(e);return 0!=e.serviceCode?e:(31==c?(e=i.slice(2,10),c=i.slice(10,11),t=i.slice(11,12),r=i.slice(12,20),a=i.slice(20,24),s=i.slice(24,28),i=i.slice(28,29),_WJUtils2.default.showLog("contractProvider",_WJUtils2.default.byteArray2hexStr(e),"contractSerialNumber",_WJUtils2.default.byteArray2hexStr(r),"issueFlag",_WJUtils2.default.byteArray2hexStr(i)),l.serviceCode=0,l.serviceInfo="获取OBU系统成功",l.serviceData={},l.serviceData.contractProvider=_WJUtils2.default.byteArray2hexStr(e),l.serviceData.contractType=_WJUtils2.default.byteArray2hexStr(c),l.serviceData.contractVersion=_WJUtils2.default.byteArray2hexStr(t),l.serviceData.contractSerialNumber=_WJUtils2.default.byteArray2hexStr(r),l.serviceData.contractSignedDate=_WJUtils2.default.byteArray2hexStr(a),l.serviceData.contractExpiredDate=_WJUtils2.default.byteArray2hexStr(s),l.serviceData.issueFlag=_WJUtils2.default.byteArray2hexStr(i)):(l.serviceCode=-1,l.serviceInfo="OBU系统信息解析失败,长度有误"),l)}function analysisGetRand(e){var t=_WJUtils2.default.hexStr2byteArray(e),r={},a=t.byteLength,e=_analysisIs9000(e);return 0!=e.serviceCode?e:(8==a?(e=t.slice(2,6),_WJUtils2.default.showLog("rand",_WJUtils2.default.byteArray2hexStr(e)),r.serviceCode=0,r.serviceInfo="获取随机数成功",r.serviceData={},r.serviceData.rand=_WJUtils2.default.byteArray2hexStr(e)):(r.serviceCode=-1,r.serviceInfo="获取随机数失败,长度有误"),r)}function _analysisIs9000(e){console.log("5465464");var t=_WJUtils2.default.hexStr2byteArray(e),r={},a=0,s=t.byteLength;if(4<=s)for(;a<s;){var i=t[a++];if(a+=t[a]-1,_WJUtils2.default.showLog("WJ9000校验第"+i+"条:",t[a],t[a+1]),144!=t[a]||0!=t[a+1]){r.serviceCode=-1,r.serviceInfo="WJ第"+i+"包APDU非9000";break}a+=2,r.serviceCode=0,r.serviceInfo="9000认证成功"}else r.serviceCode=-2,r.serviceInfo="9000认证失败,长度有误";return r}function analysisDeviceInfo(e){var t,r,a,s,i,l=_WJUtils2.default.hexStr2byteArray(e),c={},n=l.byteLength,y=l[0];switch(_WJUtils2.default.showLog(e),y){case 192:return 17==n?(a=l.slice(1),_WJUtils2.default.showLog("deviceSN:",_WJUtils2.default.byteArray2hexStr(a)),c.serviceCode=0,c.serviceInfo="获取设备信息成功",c.serviceData={},c.serviceData.deviceSN=_WJUtils2.default.byteArray2hexStr(a)):(c.serviceCode=-1,c.serviceInfo="获取设备信息失败,信息长度有误"),c;case 204:return 17==n?(t=l.slice(1,3),r=l.slice(3,4),a=l.slice(4,12),s=l.slice(12,16),i=l.slice(16),_WJUtils2.default.showLog("deviceSN:",_WJUtils2.default.byteArray2hexStr(a),"bleMac:",_WJUtils2.default.byteArray2hexStr(s),"flag:",_WJUtils2.default.byteArray2hexStr(i)),c.serviceCode=0,c.serviceInfo="获取设备信息成功",c.serviceData={},c.serviceData.verId=_WJUtils2.default.byteArray2hexStr(t),c.serviceData.battery=_WJUtils2.default.byteArray2hexStr(r),c.serviceData.deviceSN=_WJUtils2.default.byteArray2hexStr(a),c.serviceData.bleMac=_WJUtils2.default.byteArray2hexStr(s),c.serviceData.flag=i):(c.serviceCode=-1,c.serviceInfo="获取设备信息失败,信息长度有误"),c;default:return c.serviceCode=-2,c.serviceInfo="获取设备信息失败,指令类型有误",_WJUtils2.default.showError("WJ获取设备信息失败:","指令类型有误"),c}}module.exports={analysisCardInfo:analysisCardInfo,analysisDeviceInfo:analysisDeviceInfo,analysisInitInfo:analysisInitInfo,analysisLoadCreadit:analysisLoadCreadit,analysisgetObuSysInfo:analysisgetObuSysInfo,analysisGetRand:analysisGetRand,_analysisIs9000:_analysisIs9000,analysisCardOwnerRecord:analysisCardOwnerRecord,analysisCardTransactionRecord:analysisCardTransactionRecord,analysisinitIC:analysisinitIC,analysisAuthOBU:analysisAuthOBU,analysisGetActState:analysisGetActState,analysisLightAct:analysisLightAct,analysisUpNewPipe:analysisUpNewPipe};