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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790
  1. const dataHandler = require('./DataHandler.js');
  2. const dataUtil = require('./DataUtil.js');
  3. module['exports'] = {
  4. 'connectDevice': connectDevice,
  5. 'disconnectDevice': disconnectDevice,
  6. 'transCmd': transCmd
  7. };
  8. const codeEnum = {
  9. 'successCode': 0x0,
  10. 'failureCode': 0x1,
  11. 'stopScanFailure': 0x2,
  12. 'creatConnectionFailure': 0x3,
  13. 'getServiceFailure': 0x4,
  14. 'noTargetServiceId': 0x5,
  15. 'getCharacteristicsFailure': 0x6,
  16. 'noTargetCharacteristic': 0x7,
  17. 'monitorNotificationFailure': 0x8,
  18. 'authResponseFailure': 0x9,
  19. 'initResponseFailure': 0xa,
  20. 'initDeviceFailure': 0xb,
  21. 'dataFrameTransboundary': 0xc,
  22. 'notPassBccCheck': 0xd,
  23. 'sendDataFailure': 0xe,
  24. 'paraError': 0xf,
  25. 'timeout': 0x64
  26. };
  27. const FUNCTION = 'function';
  28. const serviceUUID = '0000FEE7-0000-1000-8000-00805F9B34FB';
  29. const writeUUID = '0000FEC7-0000-1000-8000-00805F9B34FB';
  30. const readUUID = '0000FEC8-0000-1000-8000-00805F9B34FB';
  31. const connectTime = 0x14 * 0x3e8;
  32. const startA2Time = 0xf0;
  33. const waitA2ResponseTime = 0x3e8;
  34. var haveFoundDevice = new Array();
  35. var connectDeviceId;
  36. var connectCallback;
  37. var connectTimer;
  38. var startA2Timer;
  39. var waitA2ResponseTimer;
  40. var frame = '';
  41. var frameLen = 0x0;
  42. var frames = new Array();
  43. var framesLen = 0x0;
  44. var dataHandlerCallback;
  45. var sendBufferArray = new Array();
  46. var cmds = new Array();
  47. var sendIndex;
  48. var resendCount = 0x3;
  49. function toObject(_0x5ee6db, _0x2168f6, _0x5458ea) {
  50. return {
  51. 'code': _0x5ee6db,
  52. 'data': _0x2168f6,
  53. 'msg': _0x5458ea
  54. };
  55. }
  56. function startConnectBle() {
  57. var _0x4550a1 = {
  58. 'LgFYT': function(_0x4df026) {
  59. return _0x4df026();
  60. },
  61. 'FfEro': function(_0x38c3b0, _0x1b0988) {
  62. return _0x38c3b0 != _0x1b0988;
  63. },
  64. 'KcCvQ': function(_0x3006b6, _0x5dfc29) {
  65. return _0x3006b6(_0x5dfc29);
  66. },
  67. 'nSmfC': function(_0x753390, _0x288deb) {
  68. return _0x753390 == _0x288deb;
  69. },
  70. 'HDjvs': function(_0x333986, _0x27c566) {
  71. return _0x333986(_0x27c566);
  72. },
  73. 'vNjFd': function(_0x56353e, _0x31166a, _0x337558, _0x2158b6) {
  74. return _0x56353e(_0x31166a, _0x337558, _0x2158b6);
  75. },
  76. 'rpUfi': 'creatConnectionFailure'
  77. };
  78. my['connectBLEDevice']({
  79. 'deviceId': connectDeviceId,
  80. 'success': () => {
  81. _0x4550a1['LgFYT'](monitorNotification);
  82. },
  83. 'fail': () => {
  84. if (_0x4550a1['FfEro'](typeof connectTimer, undefined)) {
  85. _0x4550a1['KcCvQ'](clearTimeout, connectTimer);
  86. }
  87. _0x4550a1['nSmfC'](typeof connectCallback, FUNCTION) && _0x4550a1['HDjvs'](connectCallback,
  88. _0x4550a1['vNjFd'](toObject, codeEnum[_0x4550a1['rpUfi']], undefined, _0x4550a1[
  89. 'rpUfi']));
  90. }
  91. });
  92. }
  93. function monitorNotification() {
  94. var _0x15a729 = {
  95. 'FQWjo': function(_0x239328, _0x5e5e72) {
  96. return _0x239328 != _0x5e5e72;
  97. },
  98. 'wabUq': function(_0x1d6cfc, _0x1835f4) {
  99. return _0x1d6cfc(_0x1835f4);
  100. },
  101. 'rMkXp': function(_0x2282e8, _0x52c590) {
  102. return _0x2282e8 == _0x52c590;
  103. },
  104. 'CsEKL': function(_0x462c55, _0x2953a2) {
  105. return _0x462c55(_0x2953a2);
  106. },
  107. 'UabTl': function(_0x1025a3, _0x27ba6b, _0x5c3d09, _0x16168e) {
  108. return _0x1025a3(_0x27ba6b, _0x5c3d09, _0x16168e);
  109. },
  110. 'hgeYg': 'successCode',
  111. 'zTsAo': 'success',
  112. 'HqniW': function(_0x4bc615, _0xa92ae7) {
  113. return _0x4bc615 != _0xa92ae7;
  114. },
  115. 'KHsMO': function(_0x32d2c4, _0x420f44) {
  116. return _0x32d2c4(_0x420f44);
  117. },
  118. 'SoqrE': function(_0x498cdb, _0xe84ff6) {
  119. return _0x498cdb == _0xe84ff6;
  120. },
  121. 'zLNFl': function(_0x6a3c7f, _0x2b857e) {
  122. return _0x6a3c7f(_0x2b857e);
  123. },
  124. 'VmmOk': 'monitorNotificationFailure',
  125. 'Qqyhu': 'deviceId',
  126. 'VDZGo': 'serviceId',
  127. 'qVkFg': 'characteristicId',
  128. 'yyhYj': function(_0xdf816c, _0x521c06) {
  129. return _0xdf816c(_0x521c06);
  130. },
  131. 'ZDyaC': 'value'
  132. };
  133. my['notifyBLECharacteristicValueChange']({
  134. 'deviceId': connectDeviceId,
  135. 'serviceId': serviceUUID,
  136. 'characteristicId': readUUID,
  137. 'state': !![],
  138. 'success': () => {
  139. if (_0x15a729['FQWjo'](typeof connectTimer, undefined)) {
  140. _0x15a729['wabUq'](clearTimeout, connectTimer);
  141. }
  142. _0x15a729['rMkXp'](typeof connectCallback, FUNCTION) && _0x15a729['CsEKL'](connectCallback,
  143. _0x15a729['UabTl'](toObject, codeEnum[_0x15a729['hgeYg']], undefined, _0x15a729[
  144. 'zTsAo']));
  145. },
  146. 'fail': () => {
  147. if (_0x15a729['HqniW'](typeof connectTimer, undefined)) {
  148. _0x15a729['KHsMO'](clearTimeout, connectTimer);
  149. }
  150. _0x15a729['SoqrE'](typeof connectCallback, FUNCTION) && _0x15a729['zLNFl'](connectCallback,
  151. _0x15a729['UabTl'](toObject, codeEnum[_0x15a729['VmmOk']], undefined, _0x15a729[
  152. 'VmmOk']));
  153. }
  154. });
  155. my['offBLECharacteristicValueChange']();
  156. my['onBLECharacteristicValueChange'](_0x4f49b5 => {
  157. if (_0x15a729['SoqrE'](_0x4f49b5[_0x15a729['Qqyhu']], connectDeviceId) && _0x15a729['SoqrE'](_0x4f49b5[
  158. _0x15a729['VDZGo']]['toUpperCase'](), serviceUUID) && _0x15a729['SoqrE'](_0x4f49b5[_0x15a729[
  159. 'qVkFg']]['toUpperCase'](), readUUID)) {
  160. _0x15a729['yyhYj'](analyticData, _0x4f49b5[_0x15a729['ZDyaC']]);
  161. }
  162. });
  163. }
  164. function analyticData(_0x3417d9) {
  165. var _0x24bb41 = {
  166. 'fkEQK': 'log',
  167. 'lJZMS': function(_0x1a1e7e, _0x255b7d) {
  168. return _0x1a1e7e + _0x255b7d;
  169. },
  170. 'WghKg': '接收:',
  171. 'RdUuU': function(_0x2a33ca, _0xde3fe4) {
  172. return _0x2a33ca == _0xde3fe4;
  173. },
  174. 'wDxxL': 'length',
  175. 'pcIMI': function(_0x5af80b, _0x377ebd) {
  176. return _0x5af80b * _0x377ebd;
  177. },
  178. 'FsLxz': function(_0x292e0f, _0x385cbc, _0x40df32) {
  179. return _0x292e0f(_0x385cbc, _0x40df32);
  180. },
  181. 'EqWvk': 'slice',
  182. 'xmqLR': function(_0x45b3d4, _0x169f32) {
  183. return _0x45b3d4 > _0x169f32;
  184. },
  185. 'pELDv': function(_0x1020e3, _0x552548) {
  186. return _0x1020e3(_0x552548);
  187. },
  188. 'KldZO': function(_0xb6a01e, _0x67c89, _0x95af07, _0x425215) {
  189. return _0xb6a01e(_0x67c89, _0x95af07, _0x425215);
  190. },
  191. 'aNsFx': 'dataFrameTransboundary',
  192. 'umeEs': '数据长度越界',
  193. 'IhEpG': function(_0x1f0d96, _0x4073a5) {
  194. return _0x1f0d96 == _0x4073a5;
  195. },
  196. 'oFlFY': function(_0xb947a1, _0x501994) {
  197. return _0xb947a1 === _0x501994;
  198. },
  199. 'pasmO': '2712',
  200. 'EVDJj': function(_0x292a1d, _0x3bcf3f) {
  201. return _0x292a1d + _0x3bcf3f;
  202. },
  203. 'esmRD': function(_0x36b007, _0x2a55b2) {
  204. return _0x36b007 - _0x2a55b2;
  205. },
  206. 'lofjH': 'push',
  207. 'AIPqy': function(_0x3d76a1, _0x304925) {
  208. return _0x3d76a1 == _0x304925;
  209. },
  210. 'dDmxx': function(_0x4684fd, _0x5e4d24) {
  211. return _0x4684fd < _0x5e4d24;
  212. },
  213. 'jIOte': function(_0x162c2f, _0x44804f) {
  214. return _0x162c2f < _0x44804f;
  215. },
  216. 'NRiaj': function(_0x44b2bd, _0x20d1f4) {
  217. return _0x44b2bd / _0x20d1f4;
  218. },
  219. 'mjcGA': function(_0x865e0, _0x345bbd) {
  220. return _0x865e0 * _0x345bbd;
  221. },
  222. 'lLaCr': function(_0x5b6b8d, _0x4d70e4) {
  223. return _0x5b6b8d * _0x4d70e4;
  224. },
  225. 'jYryt': function(_0x17ba85, _0x468780) {
  226. return _0x17ba85 != _0x468780;
  227. },
  228. 'kSoQX': function(_0x68fad0, _0x2bdebe, _0x463e29) {
  229. return _0x68fad0(_0x2bdebe, _0x463e29);
  230. },
  231. 'KmMCF': function(_0x5bef66, _0x25a02d) {
  232. return _0x5bef66 == _0x25a02d;
  233. },
  234. 'ZxDQy': function(_0x25ebdd, _0x762e99) {
  235. return _0x25ebdd == _0x762e99;
  236. },
  237. 'HoabD': function(_0x150f78, _0x255976) {
  238. return _0x150f78(_0x255976);
  239. },
  240. 'BfdbC': 'notPassBccCheck',
  241. 'YZwBs': 'bcc校验不通过',
  242. 'hlOAm': function(_0x40cbbd, _0x230231) {
  243. return _0x40cbbd == _0x230231;
  244. },
  245. 'iMZzn': function(_0x146f7f, _0x21851f, _0x4a3eb0, _0x5905c2) {
  246. return _0x146f7f(_0x21851f, _0x4a3eb0, _0x5905c2);
  247. },
  248. 'gfLSq': 'successCode',
  249. 'QjwgR': '无效数据'
  250. };
  251. console[_0x24bb41['fkEQK']](_0x24bb41['lJZMS'](_0x24bb41['WghKg'], _0x3417d9));
  252. if (_0x24bb41['RdUuU'](frame[_0x24bb41['wDxxL']], 0x0)) {
  253. frameLen = _0x24bb41['pcIMI'](_0x24bb41['FsLxz'](parseInt, _0x3417d9[_0x24bb41['EqWvk']](0x4, 0x8), 0x10), 0x2);
  254. }
  255. frame += _0x3417d9;
  256. if (_0x24bb41['xmqLR'](frame[_0x24bb41['wDxxL']], frameLen)) {
  257. frame = '';
  258. frameLen = 0x0;
  259. _0x24bb41['RdUuU'](typeof dataHandlerCallback, FUNCTION) && _0x24bb41['pELDv'](dataHandlerCallback, _0x24bb41[
  260. 'KldZO'](toObject, codeEnum[_0x24bb41['aNsFx']], '', _0x24bb41['umeEs']));
  261. } else if (_0x24bb41['IhEpG'](frame[_0x24bb41['wDxxL']], frameLen)) {
  262. let _0x217ea6 = frame[_0x24bb41['EqWvk']](0x8, 0xc);
  263. if (_0x24bb41['oFlFY'](_0x217ea6, _0x24bb41['pasmO'])) {
  264. let _0x479193 = frame[_0x24bb41['EqWvk']](0x10);
  265. let _0x3fa5f5 = _0x479193[_0x24bb41['EqWvk']](0x8, -0x6);
  266. frame = '';
  267. frameLen = 0x0;
  268. if (_0x24bb41['IhEpG'](frames[_0x24bb41['wDxxL']], 0x0)) {
  269. let _0xd9322e = _0x24bb41['FsLxz'](parseInt, _0x3fa5f5[_0x24bb41['EqWvk']](0x4, 0x6), 0x10);
  270. framesLen = _0x24bb41['EVDJj'](_0x24bb41['esmRD'](_0xd9322e, 0x80), 0x1);
  271. }
  272. frames[_0x24bb41['lofjH']](_0x3fa5f5);
  273. if (_0x24bb41['AIPqy'](frames[_0x24bb41['wDxxL']], framesLen)) {
  274. let _0x25470e = !![];
  275. for (let _0x5e68eb = 0x0; _0x24bb41['dDmxx'](_0x5e68eb, frames[_0x24bb41['wDxxL']]); _0x5e68eb++) {
  276. let _0x38da37 = frames[_0x5e68eb];
  277. let _0x9db696 = 0x0;
  278. for (let _0x875234 = 0x1; _0x24bb41['jIOte'](_0x875234, _0x24bb41['esmRD'](_0x24bb41['pELDv'](
  279. parseInt, _0x24bb41['NRiaj'](_0x38da37[_0x24bb41['wDxxL']], 0x2)), 0x1)); _0x875234++) {
  280. let _0x4f3402 = _0x24bb41['FsLxz'](parseInt, _0x38da37[_0x24bb41['EqWvk']](_0x24bb41['mjcGA'](
  281. _0x875234, 0x2), _0x24bb41['lLaCr'](_0x24bb41['EVDJj'](_0x875234, 0x1), 0x2)), 0x10);
  282. _0x9db696 ^= _0x4f3402;
  283. }
  284. if (_0x24bb41['jYryt'](_0x9db696, _0x24bb41['kSoQX'](parseInt, _0x38da37[_0x24bb41['EqWvk']](-0x2),
  285. 0x10))) {
  286. _0x25470e = ![];
  287. break;
  288. }
  289. }
  290. if (_0x24bb41['KmMCF'](_0x25470e, ![])) {
  291. frames = new Array();
  292. framesLen = 0x0;
  293. _0x24bb41['ZxDQy'](typeof dataHandlerCallback, FUNCTION) && _0x24bb41['HoabD'](dataHandlerCallback,
  294. _0x24bb41['KldZO'](toObject, codeEnum[_0x24bb41['BfdbC']], '', _0x24bb41['YZwBs']));
  295. } else {
  296. let _0x15f00a = '';
  297. for (let _0x5e68eb = 0x0; _0x24bb41['jIOte'](_0x5e68eb, frames[_0x24bb41['wDxxL']]); _0x5e68eb++) {
  298. let _0x38da37 = frames[_0x5e68eb];
  299. _0x15f00a += _0x38da37[_0x24bb41['EqWvk']](0x8, -0x2);
  300. }
  301. frames = new Array();
  302. framesLen = 0x0;
  303. _0x24bb41['hlOAm'](typeof dataHandlerCallback, FUNCTION) && _0x24bb41['HoabD'](dataHandlerCallback,
  304. _0x24bb41['iMZzn'](toObject, codeEnum[_0x24bb41['gfLSq']], _0x15f00a, '成功'));
  305. }
  306. }
  307. } else {
  308. console[_0x24bb41['fkEQK']](_0x24bb41['QjwgR']);
  309. frame = '';
  310. frameLen = 0x0;
  311. }
  312. }
  313. }
  314. function sendDataToDevice(_0x2807ea, _0x312487) {
  315. var _0x236c37 = {
  316. 'AryFh': '0|4|6|5|2|7|1|3',
  317. 'MhTmj': function(_0x44d5e7) {
  318. return _0x44d5e7();
  319. },
  320. 'HnMcm': 'concat'
  321. };
  322. var _0x3d7fb7 = _0x236c37['AryFh']['split']('|'),
  323. _0x20a7c5 = 0x0;
  324. while (!![]) {
  325. switch (_0x3d7fb7[_0x20a7c5++]) {
  326. case '0':
  327. dataHandlerCallback = _0x312487;
  328. continue;
  329. case '1':
  330. framesLen = 0x0;
  331. continue;
  332. case '2':
  333. frameLen = 0x0;
  334. continue;
  335. case '3':
  336. _0x236c37['MhTmj'](runningSendData);
  337. continue;
  338. case '4':
  339. sendBufferArray = new Array()[_0x236c37['HnMcm']](_0x2807ea);
  340. continue;
  341. case '5':
  342. frame = '';
  343. continue;
  344. case '6':
  345. sendIndex = 0x0;
  346. continue;
  347. case '7':
  348. frames = new Array();
  349. continue;
  350. }
  351. break;
  352. }
  353. }
  354. function connectDevice(_0x2821e2, _0x65b5e0, _0x7ce0c6) {
  355. var _0x53989e = {
  356. 'HtLBo': function(_0x1a8514, _0x115888) {
  357. return _0x1a8514 == _0x115888;
  358. },
  359. 'RjdoP': function(_0x481733, _0x1fa86c) {
  360. return _0x481733(_0x1fa86c);
  361. },
  362. 'KiSCX': function(_0x39838c, _0x3b8b3b, _0x1913e7, _0x542790) {
  363. return _0x39838c(_0x3b8b3b, _0x1913e7, _0x542790);
  364. },
  365. 'Mfpkb': 'timeout',
  366. 'dXRTU': '2|3|4|1|6|5|0',
  367. 'uNSuf': function(_0x4875e3) {
  368. return _0x4875e3();
  369. },
  370. 'xOnTU': function(_0x54dcbb, _0x3b6199) {
  371. return _0x54dcbb != _0x3b6199;
  372. },
  373. 'irVVK': function(_0x2d2207, _0x3b8012) {
  374. return _0x2d2207 != _0x3b8012;
  375. },
  376. 'HLIVO': function(_0x512ec1, _0x3c0087, _0x501450) {
  377. return _0x512ec1(_0x3c0087, _0x501450);
  378. },
  379. 'WnITT': function(_0xc61bf4, _0x160b66) {
  380. return _0xc61bf4 != _0x160b66;
  381. },
  382. 'VjmOl': function(_0x2b34fb, _0x60a9f2) {
  383. return _0x2b34fb(_0x60a9f2);
  384. },
  385. 'FlTBJ': function(_0x47b413, _0x5dcddd) {
  386. return _0x47b413 == _0x5dcddd;
  387. },
  388. 'QXsIl': function(_0x301674, _0x1afebe, _0x33c25d, _0x226a1b) {
  389. return _0x301674(_0x1afebe, _0x33c25d, _0x226a1b);
  390. },
  391. 'ItFKy': 'failureCode',
  392. 'bKJpu': 'error\x20Device'
  393. };
  394. if (_0x2821e2['name']['startsWith']('JT')) {
  395. var _0x4f004c = _0x53989e['dXRTU']['split']('|'),
  396. _0x240cb2 = 0x0;
  397. while (!![]) {
  398. switch (_0x4f004c[_0x240cb2++]) {
  399. case '0':
  400. _0x53989e['uNSuf'](startConnectBle);
  401. continue;
  402. case '1':
  403. if (_0x53989e['xOnTU'](typeof startA2Timer, undefined)) {
  404. _0x53989e['RjdoP'](clearTimeout, startA2Timer);
  405. }
  406. continue;
  407. case '2':
  408. connectDeviceId = _0x2821e2['deviceId'];
  409. continue;
  410. case '3':
  411. connectCallback = _0x65b5e0;
  412. continue;
  413. case '4':
  414. if (_0x53989e['irVVK'](typeof connectTimer, undefined)) {
  415. _0x53989e['RjdoP'](clearTimeout, connectTimer);
  416. }
  417. continue;
  418. case '5':
  419. connectTimer = _0x53989e['HLIVO'](setTimeout, () => {
  420. _0x53989e['HtLBo'](typeof connectCallback, FUNCTION) && _0x53989e['RjdoP'](
  421. connectCallback, _0x53989e['KiSCX'](toObject, codeEnum[_0x53989e['Mfpkb']],
  422. undefined, _0x53989e['Mfpkb']));
  423. }, connectTime);
  424. continue;
  425. case '6':
  426. if (_0x53989e['WnITT'](typeof waitA2ResponseTimer, undefined)) {
  427. _0x53989e['VjmOl'](clearTimeout, waitA2ResponseTimer);
  428. }
  429. continue;
  430. }
  431. break;
  432. }
  433. } else {
  434. _0x53989e['FlTBJ'](typeof _0x65b5e0, FUNCTION) && _0x53989e['VjmOl'](_0x65b5e0, _0x53989e['QXsIl'](toObject,
  435. codeEnum[_0x53989e['ItFKy']], undefined, _0x53989e['bKJpu']));
  436. }
  437. }
  438. function disconnectDevice(_0x183fbd) {
  439. var _0x4071bf = {
  440. 'frIQf': function(_0x1f7632, _0x33d5dc) {
  441. return _0x1f7632(_0x33d5dc);
  442. },
  443. 'ofMRL': function(_0x477653, _0x4380db, _0x1b9232, _0x1e0ccb) {
  444. return _0x477653(_0x4380db, _0x1b9232, _0x1e0ccb);
  445. },
  446. 'UduKH': 'successCode',
  447. 'WHXlI': function(_0x5991ca, _0x4da18a) {
  448. return _0x5991ca(_0x4da18a);
  449. },
  450. 'FOJqJ': function(_0xc13793, _0x5bcf74, _0x5af3f6, _0x38e867) {
  451. return _0xc13793(_0x5bcf74, _0x5af3f6, _0x38e867);
  452. }
  453. };
  454. const _0x1ac8cc = _0x4071bf['WHXlI'](String, connectDeviceId);
  455. my['disconnectBLEDevice']({
  456. 'deviceId': _0x1ac8cc,
  457. 'success': () => {
  458. _0x4071bf['frIQf'](_0x183fbd, _0x4071bf['ofMRL'](toObject, codeEnum[_0x4071bf['UduKH']],
  459. undefined, '成功'));
  460. },
  461. 'fail': _0x25c60d => {
  462. _0x4071bf['WHXlI'](_0x183fbd, _0x4071bf['FOJqJ'](toObject, _0x25c60d['errCode'], _0x25c60d,
  463. _0x25c60d['errMsg']));
  464. }
  465. });
  466. }
  467. function promise(_0x8611a8, _0x17d44c) {
  468. var _0x57a13e = {
  469. 'qsFjE': function(_0x517708, _0x4ac289) {
  470. return _0x517708 === _0x4ac289;
  471. },
  472. 'akmwR': 'successCode',
  473. 'EkyRW': '发送数据成功',
  474. 'lgoBh': function(_0x5955f7, _0x484dfe) {
  475. return _0x5955f7 == _0x484dfe;
  476. },
  477. 'JpDLA': function(_0x1b21d5, _0xec32a) {
  478. return _0x1b21d5 + _0xec32a;
  479. },
  480. 'XEszP': 'fff\x20d\x20',
  481. 'lUuNc': function(_0x50dd78, _0x5270ad) {
  482. return _0x50dd78(_0x5270ad);
  483. },
  484. 'PIrza': '数据返回错误',
  485. 'UxBAQ': 'TLV指令集有指令执行失败',
  486. 'dDJyk': '条指令执行失败',
  487. 'OcOiy': '错误码:',
  488. 'semfe': function(_0x3f09af, _0xca4372) {
  489. return _0x3f09af - _0xca4372;
  490. },
  491. 'nNxDK': function(_0x22879a, _0x48a432) {
  492. return _0x22879a - _0x48a432;
  493. },
  494. 'devEz': '发送数据失败',
  495. 'TYSxn': function(_0x330c0f, _0x3d61ad, _0x24dc40) {
  496. return _0x330c0f(_0x3d61ad, _0x24dc40);
  497. }
  498. };
  499. return new Promise((_0x55a6de, _0x1fe213) => {
  500. var _0x4d6053 = {
  501. 'PoesZ': function(_0x3e2f31, _0x4bf6fe) {
  502. return _0x57a13e['qsFjE'](_0x3e2f31, _0x4bf6fe);
  503. },
  504. 'vweUD': _0x57a13e['akmwR'],
  505. 'pHbgn': _0x57a13e['EkyRW'],
  506. 'QwVqQ': function(_0x4c7e24, _0x215668) {
  507. return _0x57a13e['lgoBh'](_0x4c7e24, _0x215668);
  508. },
  509. 'yKdUw': function(_0x5b259c, _0x34d601) {
  510. return _0x57a13e['JpDLA'](_0x5b259c, _0x34d601);
  511. },
  512. 'cfsqJ': _0x57a13e['XEszP'],
  513. 'CAXDc': function(_0x1f07df, _0x540d04) {
  514. return _0x57a13e['lUuNc'](_0x1f07df, _0x540d04);
  515. },
  516. 'jBiNJ': _0x57a13e['PIrza'],
  517. 'BzlXW': _0x57a13e['UxBAQ'],
  518. 'BVcHJ': function(_0x282541, _0x1ca91d) {
  519. return _0x57a13e['JpDLA'](_0x282541, _0x1ca91d);
  520. },
  521. 'ijqLl': _0x57a13e['dDJyk'],
  522. 'GnLZC': _0x57a13e['OcOiy'],
  523. 'Gnptf': function(_0x2d29b6, _0xc6eca5) {
  524. return _0x57a13e['semfe'](_0x2d29b6, _0xc6eca5);
  525. },
  526. 'irfex': function(_0x280066, _0xfbe0d9) {
  527. return _0x57a13e['nNxDK'](_0x280066, _0xfbe0d9);
  528. },
  529. 'pdxpx': _0x57a13e['devEz'],
  530. 'hMeRj': function(_0x6ff70f, _0x965777) {
  531. return _0x57a13e['lUuNc'](_0x6ff70f, _0x965777);
  532. }
  533. };
  534. if (_0x57a13e['qsFjE'](_0x17d44c, '10')) {
  535. var _0x404319 = dataUtil['makeA3SendData']('00', dataHandler['makeTLV']([_0x8611a8]));
  536. } else {
  537. var _0x404319 = dataUtil['makeA8SendData']('00', dataHandler['makeTLV']([_0x8611a8]));
  538. }
  539. _0x57a13e['TYSxn'](sendDataToDevice, _0x404319, _0xe8c5dc => {
  540. if (_0x4d6053['PoesZ'](_0xe8c5dc['code'], codeEnum[_0x4d6053['vweUD']])) {
  541. console['log'](_0x4d6053['pHbgn']);
  542. if (_0x4d6053['PoesZ'](_0xe8c5dc['data']['slice'](0x2, 0x4), '00') || _0x4d6053['PoesZ']
  543. (_0xe8c5dc['data']['slice'](0x2, 0x4), 'cf')) {
  544. let _0x2f8bc7 = _0xe8c5dc['data']['slice'](0xa);
  545. let _0x28359e = dataHandler['resolveTLV'](_0xe8c5dc['data']['slice'](0xa));
  546. console['log'](_0x28359e);
  547. if (_0x4d6053['QwVqQ'](_0x28359e['length'], 0x1)) {
  548. console['log'](_0x4d6053['yKdUw'](_0x4d6053['cfsqJ'], _0x28359e[0x0]['slice'](-
  549. 0x4)));
  550. _0x4d6053['CAXDc'](_0x55a6de, _0x28359e[0x0]);
  551. } else {
  552. _0x4d6053['CAXDc'](_0x1fe213, _0x4d6053['jBiNJ']);
  553. }
  554. } else {
  555. console['log'](_0x4d6053['BzlXW']);
  556. let _0x27885e = _0xe8c5dc['data']['slice'](0xa);
  557. let _0x28359e = dataHandler['resolveTLV'](_0xe8c5dc['data']['slice'](0xa));
  558. console['log'](_0x4d6053['BVcHJ'](_0x4d6053['BVcHJ']('第', _0x28359e['length']),
  559. _0x4d6053['ijqLl']));
  560. console['log'](_0x4d6053['BVcHJ'](_0x4d6053['GnLZC'], _0x28359e[_0x4d6053['Gnptf'](
  561. _0x28359e['length'], 0x1)]['slice'](-0x4)));
  562. _0x4d6053['CAXDc'](_0x1fe213, _0x4d6053['BVcHJ'](_0x4d6053['GnLZC'], _0x28359e[
  563. _0x4d6053['irfex'](_0x28359e['length'], 0x1)]['slice'](-0x4)));
  564. }
  565. } else {
  566. console['log'](_0x4d6053['pdxpx']);
  567. _0x4d6053['hMeRj'](_0x1fe213, _0xe8c5dc['msg']);
  568. }
  569. });
  570. });
  571. }
  572. function transCmd(_0xde7eb4, _0x1a4d21, _0x42d68b) {
  573. var _0x4b1f24 = {
  574. 'VWmXt': '2|0|5|6|4|1|3',
  575. 'BTFJV': function(_0x593ed3, _0x258eab) {
  576. return _0x593ed3 != _0x258eab;
  577. },
  578. 'EfnxL': function(_0x5699d5, _0x1706e0) {
  579. return _0x5699d5 == _0x1706e0;
  580. },
  581. 'vjylQ': function(_0x1c233c, _0x3cea84) {
  582. return _0x1c233c(_0x3cea84);
  583. },
  584. 'XIzkY': function(_0x30ea72, _0x4663fa, _0x5d8443, _0x1db964) {
  585. return _0x30ea72(_0x4663fa, _0x5d8443, _0x1db964);
  586. },
  587. 'aZcbR': 'paraError',
  588. 'QKxlV': 'transCmd\x20type\x20错误',
  589. 'NKEag': function(_0x32678f, _0x555d45) {
  590. return _0x32678f === _0x555d45;
  591. },
  592. 'lewiC': function(_0xf0ccd3, _0x4e82ba) {
  593. return _0xf0ccd3 > _0x4e82ba;
  594. },
  595. 'hinmB': function(_0x44482e, _0x444ede, _0x35e820) {
  596. return _0x44482e(_0x444ede, _0x35e820);
  597. },
  598. 'uMjay': function(_0x2ed622, _0x35f52b) {
  599. return _0x2ed622(_0x35f52b);
  600. },
  601. 'gDogZ': function(_0xe55150, _0x595c7c, _0x56893a, _0x58d923) {
  602. return _0xe55150(_0x595c7c, _0x56893a, _0x58d923);
  603. },
  604. 'VvCBp': 'successCode',
  605. 'bdmhr': function(_0x2b7e16, _0x23f031) {
  606. return _0x2b7e16 != _0x23f031;
  607. },
  608. 'GHLRh': 'failureCode',
  609. 'PfAjO': function(_0x4c80a4, _0x53c5b0) {
  610. return _0x4c80a4 + _0x53c5b0;
  611. },
  612. 'fSnFT': function(_0x347e38, _0x495cfe) {
  613. return _0x347e38 < _0x495cfe;
  614. },
  615. 'uHiMI': function(_0x2cda5d, _0x35c360, _0xd476cd) {
  616. return _0x2cda5d(_0x35c360, _0xd476cd);
  617. }
  618. };
  619. var _0x56efdb = _0x4b1f24['VWmXt']['split']('|'),
  620. _0x5c6cad = 0x0;
  621. while (!![]) {
  622. switch (_0x56efdb[_0x5c6cad++]) {
  623. case '0':
  624. if (_0x4b1f24['BTFJV'](_0x1a4d21, '10') && _0x4b1f24['BTFJV'](_0x1a4d21, '20')) {
  625. _0x4b1f24['EfnxL'](typeof _0x42d68b, FUNCTION) && _0x4b1f24['vjylQ'](_0x42d68b, _0x4b1f24['XIzkY'](
  626. toObject, codeEnum[_0x4b1f24['aZcbR']], undefined, _0x4b1f24['QKxlV']));
  627. return;
  628. }
  629. continue;
  630. case '1':
  631. var _0x3872ac;
  632. continue;
  633. case '2':
  634. var _0x450e50 = {
  635. 'jFsDk': function(_0x5e5e20, _0x4b4109) {
  636. return _0x4b1f24['NKEag'](_0x5e5e20, _0x4b4109);
  637. },
  638. 'VtjGx': function(_0x49740d, _0x1c0619) {
  639. return _0x4b1f24['lewiC'](_0x49740d, _0x1c0619);
  640. },
  641. 'rIuhY': function(_0x1cf62a, _0x4ffeea, _0x49e833) {
  642. return _0x4b1f24['hinmB'](_0x1cf62a, _0x4ffeea, _0x49e833);
  643. },
  644. 'Hkerm': function(_0x633663, _0x3342f2) {
  645. return _0x4b1f24['EfnxL'](_0x633663, _0x3342f2);
  646. },
  647. 'zJxPi': function(_0x57e236, _0x23f1cf) {
  648. return _0x4b1f24['uMjay'](_0x57e236, _0x23f1cf);
  649. },
  650. 'txDHM': function(_0x500bb4, _0x2da146, _0x4c893b, _0x316b5a) {
  651. return _0x4b1f24['gDogZ'](_0x500bb4, _0x2da146, _0x4c893b, _0x316b5a);
  652. },
  653. 'ubpqa': _0x4b1f24['VvCBp'],
  654. 'KJSIC': function(_0x351d3c, _0x57c472) {
  655. return _0x4b1f24['bdmhr'](_0x351d3c, _0x57c472);
  656. },
  657. 'ItIGB': function(_0x4b9e41, _0x2f987a) {
  658. return _0x4b1f24['EfnxL'](_0x4b9e41, _0x2f987a);
  659. },
  660. 'FbhVT': function(_0x2f8fb3, _0x13611f) {
  661. return _0x4b1f24['uMjay'](_0x2f8fb3, _0x13611f);
  662. },
  663. 'FMfyH': function(_0x3cfda6, _0x549cf4, _0x1b8f8e, _0x47bb7e) {
  664. return _0x4b1f24['gDogZ'](_0x3cfda6, _0x549cf4, _0x1b8f8e, _0x47bb7e);
  665. },
  666. 'SlTcx': _0x4b1f24['GHLRh'],
  667. 'UoKQH': function(_0x2e3130, _0x257953) {
  668. return _0x4b1f24['PfAjO'](_0x2e3130, _0x257953);
  669. }
  670. };
  671. continue;
  672. case '3':
  673. for (var _0x556edf = 0x0; _0x4b1f24['fSnFT'](_0x556edf, _0xde7eb4['length']); _0x556edf++) {
  674. if (_0x4b1f24['EfnxL'](_0x556edf, 0x0)) {
  675. _0x5f38a8 = cmds['shift']();
  676. _0x3872ac = _0x4b1f24['uHiMI'](promise, _0x5f38a8, _0x1a4d21);
  677. }
  678. _0x3872ac = _0x3872ac['then'](_0x4a18c6 => {
  679. if (_0x450e50['jFsDk'](_0x4a18c6, undefined)) {
  680. return;
  681. }
  682. _0x443598['push'](_0x4a18c6);
  683. if (_0x450e50['VtjGx'](cmds['length'], 0x0)) {
  684. _0x5f38a8 = cmds['shift']();
  685. return _0x450e50['rIuhY'](promise, _0x5f38a8, _0x1a4d21);
  686. }
  687. _0x450e50['Hkerm'](typeof _0x42d68b, FUNCTION) && _0x450e50['zJxPi'](_0x42d68b,
  688. _0x450e50['txDHM'](toObject, codeEnum[_0x450e50['ubpqa']], _0x443598, '成功'));
  689. }, (_0x4bd031, _0x4e2aee) => {
  690. if (_0x450e50['KJSIC'](_0x4bd031, undefined)) _0x450e50['ItIGB'](typeof _0x42d68b,
  691. FUNCTION) && _0x450e50['FbhVT'](_0x42d68b, _0x450e50['FMfyH'](toObject,
  692. codeEnum[_0x450e50['SlTcx']], _0x443598, _0x450e50['UoKQH'](_0x5f38a8,
  693. _0x4bd031)));
  694. });
  695. }
  696. continue;
  697. case '4':
  698. var _0x5f38a8;
  699. continue;
  700. case '5':
  701. cmds = _0xde7eb4['slice']();
  702. continue;
  703. case '6':
  704. var _0x443598 = new Array();
  705. continue;
  706. }
  707. break;
  708. }
  709. }
  710. function runningSendData() {
  711. var _0x17e77b = {
  712. 'irJvx': function(_0x261733, _0x4b811f) {
  713. return _0x261733 < _0x4b811f;
  714. },
  715. 'UdFhV': 'length',
  716. 'LmxIL': function(_0x293e64) {
  717. return _0x293e64();
  718. },
  719. 'MUxTd': 'log',
  720. 'ALFVf': function(_0x1515f5, _0x1f4861) {
  721. return _0x1515f5 + _0x1f4861;
  722. },
  723. 'nZiqV': function(_0x193b15, _0x561b99) {
  724. return _0x193b15 - _0x561b99;
  725. },
  726. 'DQWTn': '次重发',
  727. 'DbuTP': function(_0x1571c1, _0xf4fc1c) {
  728. return _0x1571c1 > _0xf4fc1c;
  729. },
  730. 'odxHt': function(_0x1cdbe8, _0x69c5bf, _0x1de4e9) {
  731. return _0x1cdbe8(_0x69c5bf, _0x1de4e9);
  732. },
  733. 'nSwdl': function(_0x58ddcf, _0x5dc491) {
  734. return _0x58ddcf == _0x5dc491;
  735. },
  736. 'UMgXP': function(_0x49df71, _0x391d9f) {
  737. return _0x49df71(_0x391d9f);
  738. },
  739. 'ClnKL': function(_0x38f72f, _0x466495, _0x371694, _0x93c6c) {
  740. return _0x38f72f(_0x466495, _0x371694, _0x93c6c);
  741. },
  742. 'CUdZi': 'sendDataFailure',
  743. 'ZekBC': '发送数据失败',
  744. 'ZUshe': 'bufferArrayToHexString',
  745. 'qxlKG': function(_0x23f72f, _0x11dd3b) {
  746. return _0x23f72f + _0x11dd3b;
  747. },
  748. 'qtUjY': '发送:'
  749. };
  750. let _0x5bedc9 = sendBufferArray[sendIndex];
  751. let _0x4d9061 = dataHandler[_0x17e77b['ZUshe']](_0x5bedc9)['toUpperCase']();
  752. console[_0x17e77b['MUxTd']](_0x17e77b['qxlKG'](_0x17e77b['qtUjY'], _0x4d9061));
  753. my['writeBLECharacteristicValue']({
  754. 'deviceId': connectDeviceId,
  755. 'serviceId': serviceUUID,
  756. 'characteristicId': writeUUID,
  757. 'value': _0x4d9061,
  758. 'success': () => {
  759. sendIndex++;
  760. resendCount = 0x3;
  761. if (_0x17e77b['irJvx'](sendIndex, sendBufferArray[_0x17e77b['UdFhV']])) {
  762. _0x17e77b['LmxIL'](runningSendData);
  763. }
  764. },
  765. 'fail': _0x2fd4e7 => {
  766. if (_0x17e77b['DbuTP'](resendCount, 0x0)) {
  767. resendCount--;
  768. _0x17e77b['odxHt'](setTimeout, () => {
  769. console[_0x17e77b['MUxTd']](_0x17e77b['ALFVf'](_0x17e77b['ALFVf']('第',
  770. _0x17e77b['nZiqV'](0x3, resendCount)), _0x17e77b['DQWTn']));
  771. _0x17e77b['LmxIL'](runningSendData);
  772. }, 0xc8);
  773. } else {
  774. _0x17e77b['nSwdl'](typeof dataHandlerCallback, FUNCTION) && _0x17e77b['UMgXP'](
  775. dataHandlerCallback, _0x17e77b['ClnKL'](toObject, codeEnum[_0x17e77b['CUdZi']], '',
  776. _0x17e77b['ZekBC']));
  777. }
  778. }
  779. });
  780. }