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 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  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. _wjUtils = require("./wjUtils.js"),
  9. _wjUtils2 = _interopRequireDefault(_wjUtils),
  10. _wjService = require("./wjService.js"),
  11. _wjService2 = _interopRequireDefault(_wjService),
  12. _wjDataInteract = require("./wjDataInteract.js"),
  13. _wjDataInteract2 = _interopRequireDefault(_wjDataInteract),
  14. _wjDataAnalysis = require("./wjDataAnalysis.js"),
  15. _wjDataAnalysis2 = _interopRequireDefault(_wjDataAnalysis),
  16. _wjDataEncode = require("./wjDataEncode.js"),
  17. _wjDataEncode2 = _interopRequireDefault(_wjDataEncode);
  18. function _interopRequireDefault(e) {
  19. return e && e.__esModule ? e : {
  20. default: e
  21. }
  22. }
  23. var timeID, TAG_FUNCTION = "function",
  24. SDK_VERSION = "WJ_BLESDK_WX_WXCDAX_V2.0.1_20240605";
  25. function connectDevice(e, t) {
  26. var i;
  27. _wjService2.default.reallyConnect(e, function(e) {
  28. console.log("设备连接", e), i = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(i)
  29. })
  30. }
  31. function scanDevice(d) {
  32. var c = {},
  33. l = [];
  34. wx.openBluetoothAdapter({
  35. success: function(e) {
  36. wx.startBluetoothDevicesDiscovery({
  37. services: [],
  38. success: function(e) {
  39. wx.onBluetoothDeviceFound(function(e) {
  40. for (var t = 0; t < e.devices.length; t++) {
  41. for (var i = !1, n = 0; n < l.length; n++)
  42. if (e.devices[t].deviceId == l[n].deviceId) {
  43. i = !0;
  44. break
  45. } var o = e.devices[t].name.toUpperCase();
  46. if (0 == i && null != o && (l.push(e.devices[t]), _wjUtils2
  47. .default.showLog("connectedDeviceName:" + o), o
  48. .includes("WJ") || o.includes("WANJI") || o
  49. .includes("ETC") || o.includes("3601") || o
  50. .includes("YTK") || o.includes("HB") || o.includes(
  51. "CQ") || o.includes("YUN") || o.includes(
  52. "SH") || o.includes("HCZJ") || o.includes("NM") || o
  53. .includes("SC") || o.includes("LJ") || o.includes(
  54. "HN"))) {
  55. null != timeID && (clearTimeout(timeID), timeID = null);
  56. var a = e.devices[t].deviceId,
  57. s = (_wjUtils2.default.showLog(
  58. "connectedDeviceId:" + a), {});
  59. s.device_name = o, s.device_id = a, wx
  60. .stopBluetoothDevicesDiscovery({
  61. success: function(e) {
  62. wx.hideLoading(), _wjUtils2.default
  63. .showLog("停止扫描,开始连接"),
  64. connectDevice(s, function(e) {
  65. console.log(
  66. "serviceResult.serviceCode",
  67. e.serviceCode),
  68. console.log(
  69. "connectDevice2",
  70. e), 0 === e
  71. .serviceCode ? (c
  72. .serviceCode =
  73. 0, c
  74. .serviceInfo =
  75. "设备名称:" + s
  76. .device_name + e
  77. .serviceInfo, e
  78. .serviceInfo,
  79. console.log(
  80. "设备名称:" + s
  81. .device_name +
  82. e
  83. .serviceInfo
  84. )) : (c
  85. .serviceCode = e
  86. .serviceCode, c
  87. .serviceInfo =
  88. "连接失败," + e, e
  89. .serviceInfo), (
  90. void 0 === d ?
  91. "undefined" :
  92. _typeof(d)) ==
  93. TAG_FUNCTION && d(c)
  94. })
  95. },
  96. fail: function(e) {
  97. wx.hideLoading(), _wjUtils2.default
  98. .showError(
  99. "stopBluetoothDevicesDiscovery fail",
  100. e)
  101. }
  102. });
  103. break
  104. }
  105. }
  106. }), timeID = setTimeout(function() {
  107. wx.closeBluetoothAdapter(), _wjUtils2.default.showError(
  108. "conn timeout fail"), c.serviceCode = -1, c
  109. .serviceData = "conn timeout fail", (void 0 === d ?
  110. "undefined" : _typeof(d)) == TAG_FUNCTION && d(c), wx
  111. .hideLoading()
  112. }, 5e3)
  113. },
  114. fail: function(e) {
  115. _wjUtils2.default.showError("startBluetoothDevicesDiscovery fail", e), c
  116. .serviceCode = -1, c.serviceData =
  117. "startBluetoothDevicesDiscovery fail", (void 0 === d ? "undefined" :
  118. _typeof(d)) == TAG_FUNCTION && d(c)
  119. }
  120. })
  121. },
  122. fail: function() {
  123. wx.closeBluetoothAdapter({
  124. success: function(e) {
  125. var t = "关闭蓝牙适配器";
  126. _wjUtils2.default.showError(t), c.serviceCode = -1, c.serviceData = t, (
  127. void 0 === d ? "undefined" : _typeof(d)) == TAG_FUNCTION && d(c)
  128. }
  129. }), wx.hideLoading(), wx.showModal({
  130. title: "提示",
  131. content: "蓝牙开关未开启或者手机不支持蓝牙功能!"
  132. })
  133. }
  134. })
  135. }
  136. function disConnectDevice(t) {
  137. var i;
  138. _wjService2.default.reallyDisConnect(function(e) {
  139. i = e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(i)
  140. })
  141. }
  142. function init(e) {
  143. var t = {
  144. serviceCode: 0,
  145. serviceInfo: SDK_VERSION
  146. };
  147. console.log("SDK_VERSION", SDK_VERSION), (void 0 === e ? "undefined" : _typeof(e)) == TAG_FUNCTION && e(t)
  148. }
  149. function getDeviceInfo(t) {
  150. var i = {},
  151. e = "",
  152. n = _wjUtils2.default.getCMD_TYPE();
  153. 0 == n ? e = "810100C0" : 1 == n ? e = "A501C0" : 2 == n && (e = "C5040080020200"), n = _wjDataEncode2.default
  154. .encode(e), _wjDataInteract2.default._StartSendData(n.serviceData.dataEncode, function(e) {
  155. i = (0 == e.serviceCode && (console.log("设备信息res", e), _wjUtils2.default.showLog("获取设备信息成功")), e), (
  156. void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(i)
  157. })
  158. }
  159. function selectICDir(t, i) {
  160. var n = {},
  161. e = "010700A4000002" + t,
  162. o = "",
  163. a = "",
  164. s = (1 == _wjUtils2.default.getTRANSFER_TYPE() && (e = _wjUtils2.default.TPDU2APDU(e)), _wjUtils2.default
  165. .getCMD_TYPE());
  166. 0 == s ? (o = "10", a = "82") : 1 == s ? (o = "00", a = "A3") : 2 == s && (o = "01", a = "C2"), this
  167. .transCommandPlain(e, o, a, function(e) {
  168. 0 == e.serviceCode ? (_wjUtils2.default.showLog("IC卡进目录成功"), (n = e).serviceInfo = "IC卡进" + t +
  169. "目录成功") : n = e, (void 0 === i ? "undefined" : _typeof(i)) == TAG_FUNCTION && i(n)
  170. })
  171. }
  172. function getCardInfo(t) {
  173. var i = {},
  174. e = "",
  175. e = "010500B095002B0205805C000204",
  176. n = "",
  177. o = "",
  178. a = (1 == _wjUtils2.default.getTRANSFER_TYPE() && (e = _wjUtils2.default.TPDU2APDU(e)), _wjUtils2.default
  179. .getCMD_TYPE());
  180. 0 == a ? (n = "10", o = "82") : 1 == a ? (n = "00", o = "A3") : 2 == a && (n = "01", o = "C2"), this
  181. .transCommandPlain(e, n, o, function(e) {
  182. i = 0 == e.serviceCode ? (_wjUtils2.default.showLog("获取卡片信息成功"), _wjDataAnalysis2.default
  183. .analysisCardInfo(e.serviceData.dataBuff)) : e, (void 0 === t ? "undefined" : _typeof(t)) ==
  184. TAG_FUNCTION && t(i)
  185. })
  186. }
  187. function selectESAMDir(t, i) {
  188. var n = {},
  189. e = "010700A4000002" + t,
  190. o = "",
  191. a = "",
  192. s = (1 == _wjUtils2.default.getTRANSFER_TYPE() && (e = _wjUtils2.default.TPDU2APDU(e)), _wjUtils2.default
  193. .getCMD_TYPE());
  194. 0 == s ? (o = "20", a = "82") : 1 == s ? (o = "00", a = "A0") : 2 == s && (o = "02", a = "C2"), this
  195. .transCommandPlain(e, o, a, function(e) {
  196. 0 == e.serviceCode ? (_wjUtils2.default.showLog("ESAM卡进" + t + "目录成功"), (n = e).serviceInfo = "ESAM卡进" +
  197. t + "目录成功") : n = e, (void 0 === i ? "undefined" : _typeof(i)) == TAG_FUNCTION && i(n)
  198. })
  199. }
  200. function getObuSysInfo(t) {
  201. var i = {},
  202. e = "010500B081001B",
  203. n = "",
  204. o = "",
  205. a = (1 == _wjUtils2.default.getTRANSFER_TYPE() && (e = _wjUtils2.default.TPDU2APDU(e)), _wjUtils2.default
  206. .getCMD_TYPE());
  207. 0 == a ? (n = "20", o = "82") : 1 == a ? (n = "00", o = "A0") : 2 == a && (n = "02", o = "C2"), this
  208. .transCommandPlain(e, n, o, function(e) {
  209. i = 0 == e.serviceCode ? (_wjUtils2.default.showLog("获取系统信息成功"), _wjDataAnalysis2.default
  210. .analysisgetObuSysInfo(e.serviceData.dataBuff)) : e, (void 0 === t ? "undefined" : _typeof(
  211. t)) == TAG_FUNCTION && t(i)
  212. })
  213. }
  214. function getRand(t) {
  215. var i = {},
  216. e = "01050084000004",
  217. n = "",
  218. o = "",
  219. a = (1 == _wjUtils2.default.getTRANSFER_TYPE() && (e = _wjUtils2.default.TPDU2APDU(e)), _wjUtils2.default
  220. .getCMD_TYPE());
  221. 0 == a ? (n = "20", o = "82") : 1 == a ? (n = "00", o = "A0") : 2 == a && (n = "02", o = "C2"), this
  222. .transCommandPlain(e, n, o, function(e) {
  223. i = 0 == e.serviceCode ? (_wjUtils2.default.showLog("获取随机数成功"), _wjDataAnalysis2.default
  224. .analysisGetRand(e.serviceData.dataBuff)) : e, (void 0 === t ? "undefined" : _typeof(t)) ==
  225. TAG_FUNCTION && t(i)
  226. })
  227. }
  228. function writeObuSysInfo(e, t) {
  229. var i, n, o, a = {};
  230. null != e && 20 == e.length ? (e = "010A" + e, n = i = "", 1 == _wjUtils2.default.getTRANSFER_TYPE() && (e =
  231. _wjUtils2.default.TPDU2APDU(e)), 0 == (o = _wjUtils2.default.getCMD_TYPE()) ? (i = "20", n = "82") :
  232. 1 == o ? (i = "00", n = "A0") : 2 == o && (i = "02", n = "C2"), this.transCommandPlain(e, i, n, function(
  233. e) {
  234. 0 == e.serviceCode ? (_wjUtils2.default.showLog("OBU激活成功"), (a = e).serviceInfo = "OBU激活成功") : a =
  235. e, (void 0 === t ? "undefined" : _typeof(t)) == TAG_FUNCTION && t(a)
  236. })) : (a.serviceCode = -1, a.serviceInfo = "激活参数错误", (void 0 === t ? "undefined" : _typeof(t)) ==
  237. TAG_FUNCTION && t(a))
  238. }
  239. function getVehCipherInfo(t) {
  240. var i = {},
  241. e = "010F00B400000A01020304050607083B00",
  242. n = "",
  243. o = "",
  244. a = (1 == _wjUtils2.default.getTRANSFER_TYPE() && (e = _wjUtils2.default.TPDU2APDU(e)), _wjUtils2.default
  245. .getCMD_TYPE());
  246. 0 == a ? (n = "20", o = "82") : 1 == a ? (n = "00", o = "A0") : 2 == a && (n = "02", o = "C2"), this
  247. .transCommandPlain(e, n, o, function(e) {
  248. i = 0 == e.serviceCode ? (_wjUtils2.default.showLog("获取车辆信息密文成功"), _wjDataAnalysis2.default
  249. .analysisVehCipherInfo(e.serviceData.dataBuff)) : e, (void 0 === t ? "undefined" : _typeof(
  250. t)) == TAG_FUNCTION && t(i)
  251. })
  252. }
  253. function transCommandPlain(e, t, i, n) {
  254. var o = {},
  255. a = {};
  256. "01" == t || "02" == t || "00" == t ? (a = {}, a = _wjDataEncode2.default.encode(e, t, i), _wjDataInteract2.default
  257. ._StartSendData(a.serviceData.dataEncode, function(e) {
  258. o = (0 == (o = e).serviceCode ? _wjUtils2.default.showLog("APDU透传指令成功") : _wjUtils2.default.showLog(
  259. "APDU透传指令失败"), e), (void 0 === n ? "undefined" : _typeof(n)) == TAG_FUNCTION && n(o)
  260. })) : (o.serviceCode = -1, o.serviceInfo = "command参数错误!", (void 0 === n ? "undefined" : _typeof(n)) ==
  261. TAG_FUNCTION && n(o))
  262. }
  263. function transCommand(e, t, i) {
  264. var n = {};
  265. e = _wjDataEncode2.default.encode(e, "00", t), _wjDataInteract2.default._StartSendData(e.serviceData.dataEncode,
  266. function(e) {
  267. n = (0 == (n = e).serviceCode ? _wjUtils2.default.showLog("APDU透传指令成功") : _wjUtils2.default.showLog(
  268. "APDU透传指令失败"), e), (void 0 === i ? "undefined" : _typeof(i)) == TAG_FUNCTION && i(n)
  269. })
  270. }
  271. module.exports = {
  272. scanDevice: scanDevice,
  273. connectDevice: connectDevice,
  274. init: init,
  275. disConnectDevice: disConnectDevice,
  276. getDeviceInfo: getDeviceInfo,
  277. transCommand: transCommand
  278. };