123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- var TAG = "JLCardInfoServer",
- JLObuWechat33Request = require("./JLObuWechat33Request"),
- JLCmdTool = require("./JLCmdTool"),
- JLBleManager = require("./JLBleManager"),
- config = require("./JLZJConfig"),
- JLObuWechat33Reveice = require("./JLObuWechat33Reveice"),
- code = require("./errorCode"),
- service = require("./JLServiceTool"),
- dataTool = require("./dataTool"),
- len_hex = "",
- file_cmd = "";
- export function getCardholderInfo(e, c) {
- service.ICCReset(c => {
- e.call(this, c)
- }, o => {
- o.code == code.successCode() ? service.selectTheDirectory(0, c => {
- e.call(this, c)
- }, o => {
- o.code == code.successCode() ? cardInfo_Read0016File(c => {
- e.call(this, c)
- }, e => {
- c.call(this, e)
- }) : c.call(this, o)
- }) : c.call(this, o)
- })
- }
-
- function cardInfo_Read0016File(e, c) {
- console.log(TAG + "cardInfo_Read0016File--------读卡信息文件");
- var o = JLCmdTool.JL_ICC_File0016(),
- s = JLObuWechat33Request.ICCChannelTransmission("00", [o]);
- JLBleManager.sendCommand(s, o => {
- o.code == code.successCode() ? (e.call(this, {
- fireFlag: config.ICCFile0016()
- }), JLObuWechat33Reveice.receive0016File(e => {
- c.call(this, e)
- })) : c.call(this, o)
- })
- }
- export function getCardInfo(e, c) {
- service.ICCReset(c => {
- e.call(this, c)
- }, o => {
- o.code == code.successCode() ? service.selectTheDirectory(1, c => {
- e.call(this, c)
- }, o => {
- o.code == code.successCode() ? cardInfo_Read0015File(c => {
- e.call(this, c)
- }, e => {
- c.call(this, e)
- }) : c.call(this, o)
- }) : c.call(this, o)
- })
- }
-
- function cardInfo_Read0015File(e, c) {
- console.log(TAG + "cardInfo_Read0015File--------读卡信息文件---------------");
- var o = JLCmdTool.JL_ICC_File0015(),
- s = JLObuWechat33Request.ICCChannelTransmission("00", [o]);
- JLBleManager.sendCommand(s, o => {
- o.code == code.successCode() ? (e.call(this, {
- fireFlag: config.ICCFile0015()
- }), JLObuWechat33Reveice.receive0015File(e => {
- e.code != code.successCode() ? (e.err_msg = "读取卡信息失败", c.call(this, e)) : c.call(this, e)
- })) : c.call(this, o)
- })
- }
- export function creditForLoadInit(e, c, o, s, l, a) {
- service.ICCReset(e => {
- l.call(this, e)
- }, i => {
- i.code == code.successCode() ? service.selectTheDirectory(1, e => {
- l.call(this, e)
- }, i => {
- i.code == code.successCode() ? creditForLoad_checkPIN(e, e => {
- l.call(this, e)
- }, e => {
- e.code == code.successCode() ? creditForLoad_init(c, o, s, e => {
- l.call(this, e)
- }, e => {
- a.call(this, e)
- }) : a.call(this, e)
- }) : a.call(this, i)
- }) : a.call(this, i)
- })
- }
- export function creditForLoad(e, c, o, s) {
- creditForLoad_Load(e, c, e => {
- o.call(this, e)
- }, e => {
- s.call(this, e)
- })
- }
-
- function creditForLoad_checkPIN(e, c, o) {
- console.log(TAG + "checkPIN--------验PIN:" + e);
- var s = JLCmdTool.JL_ICCC_PIN(e),
- l = JLObuWechat33Request.ICCChannelTransmission("00", [s]);
- JLBleManager.sendCommand(l, e => {
- e.code == code.successCode() ? (c.call(this, {
- fireFlag: config.ICCPIN()
- }), JLObuWechat33Reveice.recevieCheckPIN(e => {
- e.code != code.successCode() ? (e.err_msg = "验证PIN码失败", o.call(this, e)) : o.call(this, e)
- })) : o.call(this, e)
- })
- }
-
- function creditForLoad_init(e, c, o, s, l) {
- console.log(TAG + "creditForLoad_init--------圈存初始化:" + e + ":" + c + ":" + o), o = dataTool.tenToHex(parseInt(o), 8);
- var a = JLCmdTool.JL_ICC_CreditInit(e, c, o),
- i = JLObuWechat33Request.ICCChannelTransmission("00", [a]);
- JLBleManager.sendCommand(i, e => {
- e.code == code.successCode() ? (s.call(this, {
- fireFlag: config.ICCInitForLoad()
- }), JLObuWechat33Reveice.recevieCreditForInit(e => {
- e.code != code.successCode() ? (e.err_msg = "圈存初始化失败", l.call(this, e)) : l.call(this, e)
- })) : l.call(this, e)
- })
- }
-
- function creditForLoad_Load(e, c, o, s) {
- console.log(TAG + "creditForLoad_Load--------圈存写卡:" + e + "," + c);
- var l = JLCmdTool.JL_ICC_CreditForLoad(e, c),
- a = JLObuWechat33Request.ICCChannelTransmission("00", [l]);
- JLBleManager.sendCommand(a, e => {
- e.code == code.successCode() ? (o.call(this, {
- fireFlag: config.ICCCreditForLoad()
- }), JLObuWechat33Reveice.recevieCreditForLoad(e => {
- e.code != code.successCode() ? (e.err_msg = "圈存写卡失败", s.call(this, e)) : s.call(this, e)
- })) : s.call(this, e)
- })
- }
- export function getCarInfo(e, c, o) {
- console.log(TAG + "getCarInfo--------读车辆信息 random" + e), service.ESAMReset(e => {
- c.call(this, e)
- }, s => {
- s.code == code.successCode() ? service.selectTheDirectory(3, e => {
- c.call(this, e)
- }, s => {
- carInfo_getrand(e => {
- c.call(this, e)
- }, s => {
- 0 != e.length && null != e && "undefined" != e || (e = s.data), carInfo_ReadCarFile(e, e => {
- c.call(this, e)
- }, e => {
- o.call(this, e)
- })
- })
- }) : o.call(this, s)
- })
- }
-
- function carInfo_getrand(e, c) {
- console.log(TAG + "carInfo_getrand--------获取随机数");
- var o = JLCmdTool.JL_ESAM_Random("08"),
- s = JLObuWechat33Request.ESAMChannelTransmission("00", [o]);
- JLBleManager.sendCommand(s, o => {
- o.code == code.successCode() ? (e.call(this, {
- fireFlag: config.ESAMRandom()
- }), JLObuWechat33Reveice.receiveObuRandom(e => {
- e.code != code.successCode() ? (e.err_msg = "获取车辆信息随机数失败", c.call(this, e)) : c.call(this, e)
- })) : c.call(this, o)
- })
- }
-
- function carInfo_ReadCarFile(e, c, o) {
- console.log(TAG + "carInfo_ReadCarFile--------读车辆信息文件");
- var s = [];
- s[0] = JLCmdTool.JL_ESAM_FileCar(e, "3B");
- var l = JLObuWechat33Request.ESAMChannelTransmission("00", s);
- JLBleManager.sendCommand(l, e => {
- e.code == code.successCode() ? (c.call(this, {
- fireFlag: config.ReadCarInfo()
- }), JLObuWechat33Reveice.receiveCarInfo(e => {
- e.code != code.successCode() ? (e.err_msg = "读取车辆信息失败", o.call(this, e)) : o.call(this, e)
- })) : o.call(this, e)
- })
- }
- export function readRetainFile(e, c, o, s) {
- var l = dataTool.hexTobin(e),
- a = dataTool.binTohex(dealFileName(l));
- len_hex = dataTool.tenToHex(c), file_cmd = JLCmdTool.JL_ICC_RetainFile(a, len_hex), service.ICCReset(e => {
- o.call(this, e)
- }, e => {
- e.code == code.successCode() ? service.selectTheDirectory(1, e => {
- o.call(this, e)
- }, e => {
- e.code == code.successCode() ? retainFile_ReadRetainFile(e => {
- o.call(this, e)
- }, e => {
- s.call(this, e)
- }) : s.call(this, e)
- }) : s.call(this, e)
- })
- }
-
- function retainFile_ReadRetainFile(e, c) {
- console.log(TAG + "retainFile_ReadRetainFile--------读保留文件");
- var o = JLCmdTool.JL_ICC_RetainFile(file_cmd, len_hex),
- s = JLObuWechat33Request.ICCChannelTransmission("00", [o]);
- JLBleManager.sendCommand(s, o => {
- o.code == code.successCode() ? (e.call(this, {
- fireFlag: config.ICCReadRetainFile()
- }), JLObuWechat33Reveice.receive0015File(e => {
- e.code != code.successCode() ? (e.err_msg = "读取保留文件信息失败", c.call(this, e)) : c.call(this, e)
- })) : c.call(this, o)
- })
- }
-
- function dealFileName(e) {
- var c = e.substr(e.length - 5, 5);
- return c = "100" + c
- }
- export function getSystemInfo(e, c) {
- service.ESAMReset(c => {
- e.call(this, c)
- }, o => {
- o.code == code.successCode() ? service.selectTheDirectory(2, c => {
- e.call(this, c)
- }, o => {
- o.code == code.successCode() ? systemInfo_ReadSystemInfoFile(c => {
- e.call(this, c)
- }, e => {
- c.call(this, e)
- }) : c.call(this, o)
- }) : c.call(this, o)
- })
- }
-
- function systemInfo_ReadSystemInfoFile(e, c) {
- console.log(TAG + "systemInfo_ReadSystemInfoFile--------读系统信息文件");
- var o = JLCmdTool.JL_ESAM_FileSystem("00", "1B"),
- s = JLObuWechat33Request.ESAMChannelTransmission("00", [o]);
- JLBleManager.sendCommand(s, o => {
- o.code == code.successCode() ? (e.call(this, {
- fireFlag: config.ReadSystemInfo()
- }), JLObuWechat33Reveice.receiveSystemInfo(e => {
- e.code != code.successCode() ? (e.err_msg = "读取Obu系统信息失败", c.call(this, e)) : c.call(this, e)
- })) : c.call(this, o)
- })
- }
- export function cardInfo_WriteCardInfoFile(e, c, o) {
- console.log(TAG + "systemInfo_WriteObuInfoFile--------写卡信息"), console.log(TAG + "cmd--------写卡信息文件" + e);
- var s = JLObuWechat33Request.ICCChannelTransmission("00", e);
- JLBleManager.sendCommand(s, e => {
- e.code == code.successCode() ? (c.call(this, {
- fireFlag: config.WriteCardInfo()
- }), JLObuWechat33Reveice.receiveWriteCardInfo(e => {
- e.code != code.successCode() ? (e.err_msg = "写卡信息失败", o.call(this, e)) : o.call(this, e)
- })) : o.call(this, e)
- })
- }
- export function systemInfo_WriteObuInfoFile(e, c, o) {
- console.log(TAG + "systemInfo_WriteObuInfoFile--------写系统信息文件或车辆信息文件"), console.log(TAG + "cmd--------写系统信息文件或车辆信息文件指令" + e);
- var s = JLObuWechat33Request.ESAMChannelTransmission("00", e);
- JLBleManager.sendCommand(s, e => {
- e.code == code.successCode() ? (c.call(this, {
- fireFlag: config.WriteObuInfo()
- }), JLObuWechat33Reveice.receiveWriteObuInfo(e => {
- e.code != code.successCode() ? (e.err_msg = "写Obu系统信息失败", o.call(this, e)) : o.call(this, e)
- })) : o.call(this, e)
- })
- }
- export function getObuRandom(e, c, o) {
- console.log(TAG + "getObuRandom--------获取随机数"), 0 == parseInt(e) || 1 == parseInt(e) ? service.ESAMReset(e => {
- c.call(this, e)
- }, s => {
- s.code == code.successCode() ? 0 === e ? service.selectTheDirectory(2, e => {
- c.call(this, e)
- }, e => {
- e.code == code.successCode() ? systemInfo_ReadRandom(e => {
- c.call(this, e)
- }, e => {
- o.call(this, e)
- }) : o.call(this, e)
- }) : service.selectTheDirectory(3, e => {
- c.call(this, e)
- }, e => {
- e.code == code.successCode() ? systemInfo_ReadRandom(e => {
- c.call(this, e)
- }, e => {
- o.call(this, e)
- }) : o.call(this, e)
- }) : o.call(this, s)
- }) : o.call(this, {
- code: Code.errorCode(),
- msg: "",
- data: ""
- })
- }
-
- function systemInfo_ReadRandom(e, c) {
- console.log(TAG + "systemInfo_ReadRandom--------读随机数");
- var o = [];
- o[0] = JLCmdTool.JL_ESAM_Random("04");
- var s = JLObuWechat33Request.ESAMChannelTransmission("00", o);
- JLBleManager.sendCommand(s, o => {
- o.code == code.successCode() ? (e.call(this, {
- fireFlag: config.ESAMRandom()
- }), JLObuWechat33Reveice.receiveObuRandom(e => {
- e.code != code.successCode() ? (e.err_msg = "获取系统信息随机数失败", c.call(this, e)) : c.call(this, e)
- })) : c.call(this, o)
- })
- }
- export function getCardRandom(e, c, o, s) {
- console.log(TAG + "getCardRandom--------获取随机数"), 0 == parseInt(e) || 1 == parseInt(e) ? service.ICCReset(e => {
- o.call(this, e)
- }, l => {
- l.code == code.successCode() ? 0 === e ? service.selectTheDirectory(1, e => {
- o.call(this, e)
- }, e => {
- e.code == code.successCode() ? cardInfo_ReadRandom(c, e => {
- o.call(this, e)
- }, e => {
- s.call(this, e)
- }) : s.call(this, e)
- }) : service.selectTheDirectory(0, e => {
- o.call(this, e)
- }, e => {
- e.code == code.successCode() ? cardInfo_ReadRandom(c, e => {
- o.call(this, e)
- }, e => {
- s.call(this, e)
- }) : s.call(this, e)
- }) : s.call(this, l)
- }) : s.call(this, {
- code: Code.errorCode(),
- msg: "请填写正确type",
- data: ""
- })
- }
-
- function cardInfo_ReadRandom(e, c, o) {
- console.log(TAG + "cardInfo_ReadRandom--------读随机数");
- var s = [];
- s[0] = JLCmdTool.JL_ICC_Rand(e);
- var l = JLObuWechat33Request.ICCChannelTransmission("00", s);
- JLBleManager.sendCommand(l, e => {
- e.code == code.successCode() ? (c.call(this, {
- fireFlag: config.ICCRandom()
- }), JLObuWechat33Reveice.receiveCardRandom(e => {
- e.code != code.successCode() ? (e.err_msg = "获取卡片信息随机数失败", o.call(this, e)) : o.call(this, e)
- })) : o.call(this, e)
- })
- }
|