|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- "use strict";
- var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
- return typeof e
- }
- : function (e) {
- return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
- }
- , _kcService = require("./kcService.js")
- , _kcService2 = _interopRequireDefault(_kcService)
- , _kcUtils = require("./kcUtils.js")
- , _kcUtils2 = _interopRequireDefault(_kcUtils)
- , _kcDataDecode = require("./kcDataDecode.js")
- , _kcDataDecode2 = _interopRequireDefault(_kcDataDecode);
- function _interopRequireDefault(e) {
- return e && e.__esModule ? e : {
- default: e
- }
- }
- var TAG_FUNCTION = "function"
- , sendCallback = void 0
- , TimerID = null;
- function _StartSendData(o, e) {
- var s = {}
- , u = 0
- , c = 0;
- null != TimerID && (clearTimeout(TimerID),
- TimerID = null),
- _kcDataDecode2.default.init(),
- TimerID = setTimeout(pro_timeout, 10000),
- _kcUtils2.default.showLog(TimerID, "开启时钟"),
- sendCallback = e,
- _kcService2.default._SetDataListenerCallBack(!0, datacallback),
- function t() {
- var e = "";
- 40 * c >= o[u].length && (u++,
- c = 0);
- u < o.length && (e = o[u].length >= 40 * (c + 1) ? o[u].substring(40 * c, 40 * (c + 1)) : o[u].substring(40 * c, o[u].length));
- if ("" == e)
- _kcUtils2.default.showLog("数据发送完毕!");
- else {
- for (var a = _kcUtils2.default.hexStr2byteArray(e), l = new ArrayBuffer(a.byteLength), r = new DataView(l), i = 0; i < a.byteLength; i++)
- r.setUint8(i, a[i]);
- _kcUtils2.default.showLog("发送数据:", e),
- _kcService2.default._writeBLECharacteristicValue(l, function (e) {
- 0 == e.serviceCode ? (c++,
- t()) : (_kcUtils2.default.showError(TimerID, "数据发送失败,取消时钟"),
- null != TimerID && (clearTimeout(TimerID),
- TimerID = null),
- _kcService2.default._SetDataListenerCallBack(!1),
- s.serviceCode = -2,
- s.serviceInfo = "数据发送失败",
- (void 0 === sendCallback ? "undefined" : _typeof(sendCallback)) == TAG_FUNCTION && sendCallback(s))
- })
- }
- }()
- }
- function datacallback(e) {
- _kcService2.default._SetDataListenerCallBack(!0, datacallback),
- _ReceiveData(e)
- }
- function pro_timeout() {
- var e = {};
- _kcUtils2.default.showError(TimerID, "数据接收超时,取消时钟"),
- null != TimerID && (clearTimeout(TimerID),
- TimerID = null),
- _kcService2.default._SetDataListenerCallBack(!1),
- e.serviceCode = -3,
- e.serviceInfo = "数据接收超时",
- (void 0 === sendCallback ? "undefined" : _typeof(sendCallback)) == TAG_FUNCTION && sendCallback(e)
- }
- function _ReceiveData(e) {
- var t, a = {}, l = _kcUtils2.default.getProtocolType();
- 0 == l ? t = _kcDataDecode2.default.decode_GB(e) : 1 == l && (t = _kcDataDecode2.default.decode_WX(e)),
- 0 == t.serviceCode && (null != (l = PackageDecode(t.serviceData.strData)) ? (_kcUtils2.default.showLog(TimerID, "接收数据成功,取消时钟"),
- null != TimerID && (clearTimeout(TimerID),
- TimerID = null),
- _kcService2.default._SetDataListenerCallBack(!1),
- a.serviceCode = 0,
- a.serviceInfo = "数据接收成功",
- a.serviceData = {},
- a.serviceData.dataBuff = l) : (_kcUtils2.default.showError(TimerID, "数据解析失败,取消时钟"),
- null != TimerID && (clearTimeout(TimerID),
- TimerID = null),
- _kcService2.default._SetDataListenerCallBack(!1),
- a.serviceCode = -1,
- a.serviceInfo = "数据解析失败"),
- (void 0 === sendCallback ? "undefined" : _typeof(sendCallback)) == TAG_FUNCTION) && sendCallback(a)
- }
- function PackageDecode(e) {
- // 获取数据类型
- var t = _kcUtils2.default.getDATA_TYPE(),
- // 将十六进制字符串转换为字节数组
- a = _kcUtils2.default.hexStr2byteArray(e),
- l = 0, // 初始化变量 l
- r = a[1], // 结果码
- i = a[0], // 操作类型
- s = ""; // 初始化变量 s
- // 打印日志
- _kcUtils2.default.showLog("kcPackageDecode:", e);
- // 检查结果码是否为 0
- if (0 != r) {
- _kcUtils2.default.showError("kc结果码非00");
- return null;
- }
- // 根据操作类型选择处理逻辑
- switch (i) {
- case 146:
- case 188:
- case 176:
- case 179:
- case 180:
- // 处理类型为 0
- if (0 == t) {
- var u = 7; // 初始偏移量为 7
-
- // 根据字节数组特定位置的值,计算有效数据长度 l
- if (129 == a[5]) {
- if (129 == a[6]) {
- l = 255 & a[7];
- u += 1;
- } else if (130 == a[6]) {
- l = a[7] << 8;
- l += 255 & a[8];
- u += 2;
- } else {
- l = 255 & a[6];
- }
- }
- // 从字节数组中提取有效数据
- u = a.slice(u, l + u);
- s = _kcUtils2.default.byteArray2hexStr(u);
- } else if (1 == t) {
- // 处理类型为 1
- u = a.slice(5);
- s = _kcUtils2.default.APDU2TPDU(_kcUtils2.default.byteArray2hexStr(u));
- }
- _kcUtils2.default.showLog("kc有效数据长度:", s.length / 2, s);
- _kcUtils2.default.showLog("操作类型ok", i);
- return s;
- case 145:
- case 148:
- case 144:
- // 处理 145, 148, 144 类型
- var o = (255 & a[3]) << 8;
- o += a[2];
- u = a.slice(4, o + 4);
- s = _kcUtils2.default.byteArray2hexStr(u);
- _kcUtils2.default.showLog("kc有效数据长度:", o, s);
- _kcUtils2.default.showLog("操作类型ok", i);
- return s;
- case 181:
- // 处理 181 类型
- var o = a[2];
- u = a.slice(3, o + 3);
- s = _kcUtils2.default.byteArray2hexStr(u);
- _kcUtils2.default.showLog("kc有效数据长度:", o, s);
- _kcUtils2.default.showLog("操作类型ok", i);
- return s;
- case 190:
- // 处理 190 类型
- s = e.substring(e.length - 2);
- _kcUtils2.default.showLog("操作类型ok" + s);
- return s;
- default:
- // 处理未知类型
- _kcUtils2.default.showError("kc通道类型有误");
- return null;
- }
- }
-
- module.exports = {
- _StartSendData: _StartSendData,
- _ReceiveData: _ReceiveData
- };
|