You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

WJBleAPI.js 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. "use strict";
  2. var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
  3. return typeof e
  4. } : function(e) {
  5. return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" :
  6. typeof e
  7. },
  8. _WJService = require("./WJService.js"),
  9. _WJService2 = _interopRequireDefault(_WJService),
  10. _WJDataEncode = require("./WJDataEncode.js"),
  11. _WJDataEncode2 = _interopRequireDefault(_WJDataEncode),
  12. _WJDataInteract = require("./WJDataInteract.js"),
  13. _WJDataInteract2 = _interopRequireDefault(_WJDataInteract),
  14. _WJUtils = require("./WJUtils.js"),
  15. _WJUtils2 = _interopRequireDefault(_WJUtils),
  16. _WJDataAnalysis = require("./WJDataAnalysis.js"),
  17. _WJDataAnalysis2 = _interopRequireDefault(_WJDataAnalysis);
  18. function _interopRequireDefault(e) {
  19. return e && e.__esModule ? e : {
  20. default: e
  21. }
  22. }
  23. var connectedDeviceId, TAG_FUNCTION = "function",
  24. SDK_VERSION = "WJ_BLESDK_ZFB_SD_V1.0.1_20230112";
  25. // function connectDevice(t) {
  26. // _WJService2.default.reallyConnect(function(e) {
  27. // console.log("连接结果:", e.err_msg), (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(e)
  28. // })
  29. // }
  30. function connectDevice(e, t, a) {
  31. var i = {};
  32. _wjService2.default.reallyConnect(e, function(e) {
  33. i.data = [], i.code = e.serviceCode, i.msg = e.serviceInfo, _wjUtils2.default.showLog("连接结果:", i.msg), (
  34. void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(i)
  35. }, function(e) {
  36. (i = {
  37. data: []
  38. }).code = e.serviceCode, i.msg = e.serviceInfo, _wjUtils2.default.showLog("连接状态:", i.msg), (void 0 ===
  39. a ? "undefined" : _typeof(a)) == TAG_FUNCTION && a(i)
  40. })
  41. }
  42. function connectDevice2(e, t) {
  43. _WJService2.default._connectDevice(e, function(e) {
  44. console.log("连接结果:", e.err_msg), (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(e)
  45. })
  46. }
  47. function disconnectDevice(e, t) {
  48. _WJService2.default.reallyDisConnect(e, function(e) {
  49. console.log("断开结果:", e.err_msg), (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(e)
  50. })
  51. }
  52. function authOBU(e, t, a, d) {
  53. var i, s = {},
  54. n = e.length;
  55. n == t && 8 == a.length ? (t = "c5" + _WJUtils2.default.byte2hexStr(4 + parseInt(n / 2)) + e + a, n = _WJUtils2
  56. .default.getCMD_TYPE(), i = {}, e = "", 0 == n ? e = "84" : 1 == n && (e = "A2"), i = _WJDataEncode2.default
  57. .encode(t, "", e), _WJDataInteract2.default._StartSendData(i.serviceData.dataEncode, function(e) {
  58. 0 == e.serviceCode ? (i = _WJDataAnalysis2.default.analysisAuthOBU(e.serviceData.dataBuff), s.code =
  59. i.serviceCode, s.err_msg = i.serviceInfo, s.data = i.serviceData.dataBuff) : s = e, (
  60. void 0 === d ? "undefined" : _typeof(d)) == TAG_FUNCTION && d(s)
  61. })) : (s.serviceCode = -1, s.serviceInfo = "paramater is error!", (void 0 === d ? "undefined" : _typeof(
  62. d)) == TAG_FUNCTION && d(s))
  63. }
  64. function getActState(t) {
  65. var a, d = {},
  66. e = "",
  67. i = _WJUtils2.default.getCMD_TYPE();
  68. 0 == i ? e = "810100C6" : 1 == i && (e = "A501CB"), a = _WJDataEncode2.default.encode(e), _WJDataInteract2.default
  69. ._StartSendData(a.serviceData.dataEncode, function(e) {
  70. 0 == e.serviceCode ? (a = _WJDataAnalysis2.default.analysisGetActState(e.serviceData.dataBuff), d.code =
  71. a.serviceCode, d.err_msg = a.serviceInfo, d.data = a.serviceData.dataBuff) : d = e, (void 0 ===
  72. t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  73. })
  74. }
  75. function lightAct(e, t, a) {
  76. var d, i = {},
  77. s = "",
  78. n = "",
  79. o = _WJUtils2.default.getCMD_TYPE();
  80. 1 == e || 0 == e && 0 < t ? (t = _WJUtils2.default.byte2hexStr(t), n = 0 == e ? "C1" : "C2", d = {}, 0 == o ? s =
  81. "870200" + n + t : 1 == o && (s = "A2"), d = _WJDataEncode2.default.encode(s), _WJDataInteract2.default
  82. ._StartSendData(d.serviceData.dataEncode, function(e) {
  83. 0 == e.serviceCode ? (d = _WJDataAnalysis2.default.analysisLightAct(e.serviceData.dataBuff), i
  84. .code = d.serviceCode, i.err_msg = d.serviceInfo, i.data = d.serviceData.dataBuff) : i = e,
  85. (void 0 === a ? "undefined" : _typeof(a)) == TAG_FUNCTION && a(i)
  86. })) : (i.serviceCode = -1, i.serviceInfo = "paramater is error", (void 0 === a ? "undefined" : _typeof(
  87. a)) == TAG_FUNCTION && a(i))
  88. }
  89. function upNewPipe(e, t) {
  90. var a, d = {},
  91. i = "",
  92. s = _WJUtils2.default.getCMD_TYPE(); - 1 < e ? (e = _WJUtils2.default.byte2hexStr(e), a = {}, 0 == s ? i =
  93. "810200C7" + e : 1 == s && (i = "A2"), a = _WJDataEncode2.default.encode(i), _WJDataInteract2.default
  94. ._StartSendData(a.serviceData.dataEncode, function(e) {
  95. 0 == e.serviceCode ? (a = _WJDataAnalysis2.default.analysisUpNewPipe(e.serviceData.dataBuff), d
  96. .code = a.serviceCode, d.err_msg = a.serviceInfo, d.data = a.serviceData.dataBuff) : d = e,
  97. (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  98. })) : (d.serviceCode = -1, d.serviceInfo = "paramater is error", (void 0 === t ? "undefined" : _typeof(
  99. t)) == TAG_FUNCTION && t(d))
  100. }
  101. function transCmd(e, t, a, d) {
  102. var i, s = {};
  103. "10" == t || "20" == t || "30" == t || "00" == t ? (i = {}, i = _WJDataEncode2.default.encode(e, t, a),
  104. _WJDataInteract2.default._StartSendData(i.serviceData.dataEncode, function(e) {
  105. 0 == e.serviceCode ? (_WJUtils2.default.showLog("APDU透传指令成功"), s.code = 0, s.err_msg =
  106. "transcmd success", s.data = e.serviceData.dataBuff) : (s.err_msg = e.serviceInfo, s.code =
  107. e.serviceCode), (void 0 === d ? "undefined" : _typeof(d)) == TAG_FUNCTION && d(s)
  108. })) : (s.code = -1, s.msg = "cmdtype参数错误!", (void 0 === d ? "undefined" : _typeof(d)) == TAG_FUNCTION && d(
  109. s))
  110. }
  111. function initIC(t) {
  112. var a, d = {},
  113. e = "",
  114. i = _WJUtils2.default.getCMD_TYPE();
  115. 0 == i ? e = "80" : 1 == i && (e = "A9"), a = _WJDataEncode2.default.encode(e), _WJDataInteract2.default
  116. ._StartSendData(a.serviceData.dataEncode, function(e) {
  117. 0 == e.serviceCode ? (a = _WJDataAnalysis2.default.analysisinitIC(e.serviceData.dataBuff), d.code = a
  118. .serviceCode, d.err_msg = a.serviceInfo, d.data = a.serviceData.dataBuff) : (d.code = e
  119. .serviceCode, d.err_msg = e.serviceInfo), (void 0 === t ? "undefined" : _typeof(t)) ==
  120. TAG_FUNCTION && t(d)
  121. })
  122. }
  123. function getDeviceInfo(e, t) {
  124. var a, d = {},
  125. i = "",
  126. s = _WJUtils2.default.getCMD_TYPE();
  127. 0 == s ? i = "810100" + e : 1 == s && (i = "A501" + e), a = _WJDataEncode2.default.encode(i), _WJDataInteract2
  128. .default._StartSendData(a.serviceData.dataEncode, function(e) {
  129. 0 == e.serviceCode ? (_WJUtils2.default.showLog("获取设备信息成功"), a = _WJDataAnalysis2.default
  130. .analysisDeviceInfo(e.serviceData.dataBuff), d.err_msg = "获取设备信息成功", d.code = a.serviceCode, d
  131. .data = a.serviceData) : (d.code = e.serviceCode, d.err_msg = e.serviceInfo), (void 0 === t ?
  132. "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  133. })
  134. }
  135. function selectDir(t, e, a) {
  136. var d, i, s, n, o = {};
  137. 4 == t.length && "10" == e || "20" == e || "00" == e ? (i = "010700A4000002" + t, e = e, s = "", 1 == _WJUtils2
  138. .default.getTRANSFER_TYPE() && (i = _WJUtils2.default.TPDU2APDU(i)), 0 == (n = _WJUtils2.default
  139. .getCMD_TYPE()) ? s = "82" : 1 == n && (s = "AC"), this.transCmd(i, e, s, function(e) {
  140. 0 == e.code ? (console.log(e.data), _WJUtils2.default.showLog("transCmd success", e.data), d =
  141. _WJDataAnalysis2.default._analysisIs9000(e.data), console.log(d), o.code = d.serviceCode,
  142. 0 == d.serviceCode ? (_WJUtils2.default.showLog("进 " + t + " 目录成功"), o.err_msg = "进" + t +
  143. "目录成功") : (_WJUtils2.default.showLog("进 " + t + " 目录失败"), o.err_msg = "进" + t + "目录失败")
  144. ) : o = e, (void 0 === a ? "undefined" : _typeof(a)) == TAG_FUNCTION && a(o)
  145. })) : (o.code = -1, o.err_msg = "参数长度有误", (void 0 === a ? "undefined" : _typeof(a)) == TAG_FUNCTION && a(o))
  146. }
  147. function getCardInfo(t) {
  148. var a, d = {},
  149. e = "010500B095002B0205805C000204",
  150. i = "",
  151. s = "",
  152. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  153. .getCMD_TYPE());
  154. 0 == n ? (i = "10", s = "82") : 1 == n && (i = "00", s = "A3"), this.transCmd(e, i, s, function(e) {
  155. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  156. .analysisCardInfo(e.data), d.code = a.serviceCode, d.err_msg = "获取卡片信息成功", d.data = a
  157. .serviceData) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  158. })
  159. }
  160. function readCardOwnerRecord(t) {
  161. var a, d = {},
  162. e = "010500B0960037",
  163. i = "",
  164. s = "",
  165. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  166. .getCMD_TYPE());
  167. 0 == n ? (i = "10", s = "82") : 1 == n && (i = "00", s = "A3"), this.transCmd(e, i, s, function(e) {
  168. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  169. .analysisCardOwnerRecord(e.data), d.code = a.serviceCode, d.err_msg = "获取持卡人信息成功", d.data = a
  170. .serviceData) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  171. })
  172. }
  173. function readCardTransactionRecord(e, t) {
  174. var a, d = {},
  175. e = "010500B2" + _WJUtils2.default.byte2hexStr(e) + "C400",
  176. i = "",
  177. s = "",
  178. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  179. .getCMD_TYPE());
  180. 0 == n ? (i = "10", s = "82") : 1 == n && (i = "00", s = "A3"), this.transCmd(e, i, s, function(e) {
  181. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  182. .analysisCardTransactionRecord(e.data), d.code = a.serviceCode, d.err_msg = "获取交易记录信息成功", d
  183. .data = a.serviceData) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(
  184. d)
  185. })
  186. }
  187. function authPIN(e, t) {
  188. var a, d, i, s, n = {};
  189. e.length % 2 == 0 && 6 <= e.length && e.length <= 12 ? (d = _WJUtils2.default.byte2hexStr(parseInt(e.length / 2)),
  190. d = "01" + _WJUtils2.default.byte2hexStr(5 + parseInt(e.length / 2)) + "00200000" + d + e, i = e = "", 1 ==
  191. _WJUtils2.default.getTRANSFER_TYPE() && (d = _WJUtils2.default.TPDU2APDU(d)), 0 == (s = _WJUtils2.default
  192. .getCMD_TYPE()) ? (e = "10", i = "82") : 1 == s && (e = "00", i = "A3"), this.transCmd(d, e, i,
  193. function(e) {
  194. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  195. ._analysisIs9000(e.data), n.code = a.serviceCode, 0 == n.code ? (_WJUtils2.default.showLog(
  196. "PIN认证成功"), n.err_msg = "PIN认证成功") : (_WJUtils2.default.showLog("PIN认证失败"), n.err_msg =
  197. "PIN认证失败")) : n = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(n)
  198. })) : (n.code = -1, n.err_msg = "参数长度有误", (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION &&
  199. t(n))
  200. }
  201. function initLoadCreadit(e, t, a, d, i, s) {
  202. var n, o, r = {};
  203. null != e && null != t && null != a && null != d && null != i ? 12 == a.length && 2 == d.length && 2 == i.length ? (
  204. e = new ArrayBuffer(4), (o = new DataView(e)).setInt8(0, t >> 24 & 255), o.setInt8(1, t >> 16 & 255), o
  205. .setInt8(2, t >> 8 & 255), o.setInt8(3, t >> 0 & 255), o = "0110805000" + d + "0B" + i + _WJUtils2.default
  206. .byteArray2hexStr(e) + a, d = t = "", 1 == _WJUtils2.default.getTRANSFER_TYPE() && (o = _WJUtils2.default
  207. .TPDU2APDU(o)), 0 == (i = _WJUtils2.default.getCMD_TYPE()) ? (t = "10", d = "82") : 1 == i && (t = "00",
  208. d = "A3"), this.transCmd(o, t, d, function(e) {
  209. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), n = _WJDataAnalysis2.default
  210. .analysisInitInfo(e.data), r.code = n.serviceCode, r.err_msg = "圈存初始化成功", r.data = n
  211. .serviceData) : r = e, (void 0 === s ? "undefined" : _typeof(s)) == TAG_FUNCTION && s(r)
  212. })) : (r.code = -2, r.err_msg = "参数长度有误!", (void 0 === s ? "undefined" : _typeof(s)) == TAG_FUNCTION && s(
  213. r)) : (r.code = -1, r.err_msg = "参数有空!", (void 0 === s ? "undefined" : _typeof(s)) == TAG_FUNCTION && s(r))
  214. }
  215. function loadCreadit(e, t) {
  216. var a, d, i, s, n = {};
  217. null != e && 22 == e.length ? (e = "0111805200000B" + e + "04", i = d = "", 1 == _WJUtils2.default
  218. .getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), 0 == (s = _WJUtils2.default.getCMD_TYPE()) ? (
  219. d = "10", i = "82") : 1 == s && (d = "00", i = "A3"), this.transCmd(e, d, i, function(e) {
  220. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  221. .analysisLoadCreadit(e.data), n.code = a.serviceCode, n.err_msg = "圈存成功", n.data = a
  222. .serviceData) : n = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(n)
  223. })) : (n.code = -1, n.err_msg = "获取圈存指令失败:参数null或长度有误", (void 0 === t ? "undefined" : _typeof(t)) ==
  224. TAG_FUNCTION && t(n))
  225. }
  226. function getObuSysInfo(t) {
  227. var a, d = {},
  228. e = "010500B081001B",
  229. i = "",
  230. s = "",
  231. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  232. .getCMD_TYPE());
  233. 0 == n ? (i = "20", s = "82") : 1 == n && (i = "00", s = "AC"), this.transCmd(e, i, s, function(e) {
  234. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  235. .analysisgetObuSysInfo(e.data), d.code = a.serviceCode, d.err_msg = "获取系统信息成功", d.data = a
  236. .serviceData) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  237. })
  238. }
  239. function getRand(e, t) {
  240. var a, d = {},
  241. i = "01050084000004",
  242. s = "",
  243. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (i = _WJUtils2.default.TPDU2APDU(i)), _WJUtils2.default
  244. .getCMD_TYPE());
  245. 0 == n ? s = "82" : 1 == n && (s = "AC"), this.transCmd(i, e, s, function(e) {
  246. 0 == e.code ? (_WJUtils2.default.showLog("transCmd success"), a = _WJDataAnalysis2.default
  247. .analysisGetRand(e.data), d.code = a.serviceCode, d.err_msg = "获取随机数成功", d.data = a.serviceData
  248. ) : d = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  249. })
  250. }
  251. function writeOBUInfo(e, t) {
  252. var a, d, i, s, n = {};
  253. null != e && e.length % 2 == 0 ? (e = "01" + _WJUtils2.default.byte2hexStr(parseInt(e.length / 2)) + e, i = d = "",
  254. 1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), 0 == (s = _WJUtils2
  255. .default.getCMD_TYPE()) ? (d = "20", i = "82") : 1 == s && (d = "00", i = "A0"), this.transCmd(e, d, i,
  256. function(e) {
  257. 0 == e.serviceCode ? (a = _WJDataAnalysis2.default._analysisIs9000(e.data), n.code = a.serviceCode,
  258. 0 == n.serviceCode ? (_WJUtils2.default.showLog("写OBU信息成功"), n.err_msg = "写OBU信息成功") : (
  259. _WJUtils2.default.showLog("写OBU信息失败"), n.err_msg = "写OBU信息失败")) : n = e, (void 0 === t ?
  260. "undefined" : _typeof(t)) == TAG_FUNCTION && t(n)
  261. })) : (n.code = -1, n.err_msg = "参数错误", (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(
  262. n))
  263. }
  264. function writeObuIssueSpecial(t) {
  265. var a, d = {},
  266. e = "01050059000001",
  267. i = "",
  268. s = "",
  269. n = (1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), _WJUtils2.default
  270. .getCMD_TYPE());
  271. 0 == n ? (i = "20", s = "82") : 1 == n && (i = "00", s = "A0"), this.transCmd(e, i, s, function(e) {
  272. 0 == e.code ? (a = _WJDataAnalysis2.default._analysisIs9000(e.data), d.code = a.serviceCode, 0 == d
  273. .serviceCode ? (_WJUtils2.default.showLog("写OBU信息成功"), d.err_msg = "写OBU信息成功") : (_WJUtils2
  274. .default.showLog("写OBU信息失败"), d.err_msg = "写OBU信息失败")) : d = e, (void 0 === t ?
  275. "undefined" : _typeof(t)) == TAG_FUNCTION && t(d)
  276. })
  277. }
  278. function writeICInfo(e, t) {
  279. var a, d, i, s, n = {};
  280. null != e && e.length % 2 == 0 ? (e = "01" + _WJUtils2.default.byte2hexStr(parseInt(e.length / 2)) + e, i = d = "",
  281. 1 == _WJUtils2.default.getTRANSFER_TYPE() && (e = _WJUtils2.default.TPDU2APDU(e)), 0 == (s = _WJUtils2
  282. .default.getCMD_TYPE()) ? (d = "10", i = "82") : 1 == s && (d = "00", i = "A3"), this.transCmd(e, d, i,
  283. function(e) {
  284. 0 == e.code ? (a = _WJDataAnalysis2.default._analysisIs9000(e.data), n.code = a.serviceCode, 0 == n
  285. .serviceCode ? (_WJUtils2.default.showLog("写IC信息成功"), n.err_msg = "写IC信息成功") : (_WJUtils2
  286. .default.showLog("写IC信息失败"), n.err_msg = "写IC信息失败")) : n = e, (void 0 === t ?
  287. "undefined" : _typeof(t)) == TAG_FUNCTION && t(n)
  288. })) : (n.code = -1, n.err_msg = "参数错误", (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(
  289. n))
  290. }
  291. module.exports = {
  292. connectDevice: connectDevice,
  293. connectDevice2: connectDevice2,
  294. disconnectDevice: disconnectDevice,
  295. transCmd: transCmd,
  296. getDeviceInfo: getDeviceInfo,
  297. getCardInfo: getCardInfo,
  298. selectDir: selectDir,
  299. getObuSysInfo: getObuSysInfo,
  300. getRand: getRand,
  301. authPIN: authPIN,
  302. initLoadCreadit: initLoadCreadit,
  303. loadCreadit: loadCreadit,
  304. writeOBUInfo: writeOBUInfo,
  305. writeICInfo: writeICInfo,
  306. readCardOwnerRecord: readCardOwnerRecord,
  307. readCardTransactionRecord: readCardTransactionRecord,
  308. initIC: initIC,
  309. authOBU: authOBU,
  310. upNewPipe: upNewPipe,
  311. lightAct: lightAct,
  312. getActState: getActState
  313. };