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.

BleUtil.js 27KB

1
  1. const dataHandler = require('./DataHandler.js'); const dataUtil = require('./DataUtil.js'); module['exports'] = { 'connectDevice': connectDevice, 'disconnectDevice': disconnectDevice, 'transCmd': transCmd }; const codeEnum = { 'successCode': 0x0, 'failureCode': 0x1, 'stopScanFailure': 0x2, 'creatConnectionFailure': 0x3, 'getServiceFailure': 0x4, 'noTargetServiceId': 0x5, 'getCharacteristicsFailure': 0x6, 'noTargetCharacteristic': 0x7, 'monitorNotificationFailure': 0x8, 'authResponseFailure': 0x9, 'initResponseFailure': 0xa, 'initDeviceFailure': 0xb, 'dataFrameTransboundary': 0xc, 'notPassBccCheck': 0xd, 'sendDataFailure': 0xe, 'paraError': 0xf, 'timeout': 0x64 }; const FUNCTION = 'function'; const serviceUUID = '0000FEE7-0000-1000-8000-00805F9B34FB'; const writeUUID = '0000FEC7-0000-1000-8000-00805F9B34FB'; const readUUID = '0000FEC8-0000-1000-8000-00805F9B34FB'; const connectTime = 0x14 * 0x3e8; const startA2Time = 0xf0; const waitA2ResponseTime = 0x3e8; var haveFoundDevice = new Array(); var connectDeviceId; var connectCallback; var connectTimer; var startA2Timer; var waitA2ResponseTimer; var frame = ''; var frameLen = 0x0; var frames = new Array(); var framesLen = 0x0; var dataHandlerCallback; var sendBufferArray = new Array(); var cmds = new Array(); var sendIndex; var resendCount = 0x3; function toObject(_0x149c13, _0x3866a5, _0x513b59) { return { 'code': _0x149c13, 'data': _0x3866a5, 'msg': _0x513b59 }; } function startConnectBle() { var _0x39f7e7 = { 'pvrqv': function (_0x2f8775) { return _0x2f8775(); }, 'qCdfF': function (_0x52b0d5, _0x1cce83) { return _0x52b0d5 != _0x1cce83; }, 'foNeu': function (_0x8efd3, _0x374dd8) { return _0x8efd3(_0x374dd8); }, 'lqxoG': function (_0x527f5a, _0x30b24a) { return _0x527f5a == _0x30b24a; }, 'iSVxQ': function (_0x28b856, _0x25b387) { return _0x28b856(_0x25b387); }, 'gTweF': function (_0x5e8c45, _0x1e5c5, _0x5496cf, _0xf2d1b2) { return _0x5e8c45(_0x1e5c5, _0x5496cf, _0xf2d1b2); }, 'pNyZL': 'creatConnectionFailure', 'waCGw': 'createBLEConnection' }; wx[_0x39f7e7['waCGw']]({ 'deviceId': connectDeviceId, 'success': function (_0x163be4) { _0x39f7e7['pvrqv'](startGetAndCheckService); }, 'fail': function () { if (_0x39f7e7['qCdfF'](typeof connectTimer, undefined)) { _0x39f7e7['foNeu'](clearTimeout, connectTimer); } _0x39f7e7['lqxoG'](typeof connectCallback, FUNCTION) && _0x39f7e7['iSVxQ'](connectCallback, _0x39f7e7['gTweF'](toObject, codeEnum[_0x39f7e7['pNyZL']], undefined, _0x39f7e7['pNyZL'])); } }); } function startGetAndCheckService() { var _0x12e983 = { 'JSGmd': function (_0x14bd9d, _0x3f89d3) { return _0x14bd9d < _0x3f89d3; }, 'zlttm': 'services', 'trMuO': 'length', 'txYHv': 'uuid', 'iJSjv': function (_0x4a1eba, _0x2b09e0) { return _0x4a1eba == _0x2b09e0; }, 'qVRrb': function (_0x575a4d, _0x2c4ce5) { return _0x575a4d == _0x2c4ce5; }, 'EuxTQ': function (_0x671ccf) { return _0x671ccf(); }, 'toJws': function (_0xfb6b1, _0x482a25) { return _0xfb6b1 != _0x482a25; }, 'XMuaX': function (_0x36c32a, _0x3498b4) { return _0x36c32a(_0x3498b4); }, 'bbOmp': function (_0x576d3e, _0x24a781) { return _0x576d3e == _0x24a781; }, 'Qtmci': function (_0x4d49ce, _0x5052b7, _0x2e9f70, _0x2b47b2) { return _0x4d49ce(_0x5052b7, _0x2e9f70, _0x2b47b2); }, 'Dtomi': 'noTargetServiceId', 'AHvRQ': function (_0x100f3d, _0x5793d6) { return _0x100f3d == _0x5793d6; }, 'zoFlA': function (_0x18c43e, _0x52d31) { return _0x18c43e(_0x52d31); }, 'goMav': 'getServiceFailure', 'YNHsh': 'getBLEDeviceServices' }; wx[_0x12e983['YNHsh']]({ 'deviceId': connectDeviceId, 'success': function (_0x1073ea) { let _0x5ac6af = ![]; for (let _0x162af1 = 0x0; _0x12e983['JSGmd'](_0x162af1, _0x1073ea[_0x12e983['zlttm']][_0x12e983['trMuO']]); _0x162af1++) { let _0x5ae184 = _0x1073ea[_0x12e983['zlttm']][_0x162af1][_0x12e983['txYHv']]; if (_0x12e983['iJSjv'](_0x5ae184, serviceUUID)) { _0x5ac6af = !![]; break; } } if (_0x12e983['qVRrb'](_0x5ac6af, !![])) { _0x12e983['EuxTQ'](startGetAndCheckCharacterisitc); } else { if (_0x12e983['toJws'](typeof connectTimer, undefined)) { _0x12e983['XMuaX'](clearTimeout, connectTimer); } _0x12e983['bbOmp'](typeof connectCallback, FUNCTION) && _0x12e983['XMuaX'](connectCallback, _0x12e983['Qtmci'](toObject, codeEnum[_0x12e983['Dtomi']], undefined, _0x12e983['Dtomi'])); } }, 'fail': function () { if (_0x12e983['toJws'](typeof connectTimer, undefined)) { _0x12e983['XMuaX'](clearTimeout, connectTimer); } _0x12e983['AHvRQ'](typeof connectCallback, FUNCTION) && _0x12e983['zoFlA'](connectCallback, _0x12e983['Qtmci'](toObject, codeEnum[_0x12e983['goMav']], undefined, _0x12e983['goMav'])); } }); } function startGetAndCheckCharacterisitc() { var _0xf40bc4 = { 'ESCgk': function (_0x486916, _0x3ee539) { return _0x486916 < _0x3ee539; }, 'sTyEY': 'characteristics', 'Zdmgr': 'length', 'MbNoh': 'uuid', 'ulTpP': function (_0x19d706, _0x442766) { return _0x19d706 == _0x442766; }, 'uOgVf': function (_0x141a53, _0x529037) { return _0x141a53 == _0x529037; }, 'fPLkc': function (_0x498485, _0x3cd947) { return _0x498485 == _0x3cd947; }, 'CdbSX': function (_0x1fee51) { return _0x1fee51(); }, 'EtRIb': function (_0x2f6f95, _0x5afb48) { return _0x2f6f95 != _0x5afb48; }, 'gUFZU': function (_0x494359, _0x18f814) { return _0x494359(_0x18f814); }, 'yRYCB': function (_0xeafbb6, _0x2a6de1, _0x5e9dba, _0x58e47d) { return _0xeafbb6(_0x2a6de1, _0x5e9dba, _0x58e47d); }, 'HXaXA': 'noTargetCharacteristic', 'bXFzG': function (_0x47ed07, _0x47b7bc) { return _0x47ed07 != _0x47b7bc; }, 'zFWJb': function (_0xd79225, _0x2dfb09) { return _0xd79225(_0x2dfb09); }, 'vSDBY': function (_0x3d88e9, _0x112ce5) { return _0x3d88e9(_0x112ce5); }, 'uycxm': function (_0x464750, _0x34056e, _0x14860d, _0x5ba788) { return _0x464750(_0x34056e, _0x14860d, _0x5ba788); }, 'rezQr': 'getCharacteristicsFailure', 'XQHPI': 'getBLEDeviceCharacteristics' }; wx[_0xf40bc4['XQHPI']]({ 'deviceId': connectDeviceId, 'serviceId': serviceUUID, 'success': function (_0x30ac36) { let _0x31ccc7 = ![]; let _0x21f3ad = ![]; for (let _0x2946ae = 0x0; _0xf40bc4['ESCgk'](_0x2946ae, _0x30ac36[_0xf40bc4['sTyEY']][_0xf40bc4['Zdmgr']]); _0x2946ae++) { let _0x2f2ed6 = _0x30ac36[_0xf40bc4['sTyEY']][_0x2946ae][_0xf40bc4['MbNoh']]; if (_0xf40bc4['ulTpP'](_0x2f2ed6, readUUID)) { _0x31ccc7 = !![]; } else if (_0xf40bc4['ulTpP'](_0x2f2ed6, writeUUID)) { _0x21f3ad = !![]; } if (_0xf40bc4['uOgVf'](_0x31ccc7, !![]) && _0xf40bc4['fPLkc'](_0x21f3ad, !![])) { break; } } if (_0xf40bc4['fPLkc'](_0x31ccc7, !![]) && _0xf40bc4['fPLkc'](_0x21f3ad, !![])) { _0xf40bc4['CdbSX'](monitorNotification); } else { if (_0xf40bc4['EtRIb'](typeof connectTimer, undefined)) { _0xf40bc4['gUFZU'](clearTimeout, connectTimer); } _0xf40bc4['fPLkc'](typeof connectCallback, FUNCTION) && _0xf40bc4['gUFZU'](connectCallback, _0xf40bc4['yRYCB'](toObject, codeEnum[_0xf40bc4['HXaXA']], undefined, _0xf40bc4['HXaXA'])); } }, 'fail': function () { if (_0xf40bc4['bXFzG'](typeof connectTimer, undefined)) { _0xf40bc4['zFWJb'](clearTimeout, connectTimer); } _0xf40bc4['fPLkc'](typeof connectCallback, FUNCTION) && _0xf40bc4['vSDBY'](connectCallback, _0xf40bc4['uycxm'](toObject, codeEnum[_0xf40bc4['rezQr']], undefined, _0xf40bc4['rezQr'])); } }); } function monitorNotification() { var _0x154f78 = { 'Lpkqv': function (_0x57cbbf, _0x393d7a) { return _0x57cbbf != _0x393d7a; }, 'XTtbf': function (_0x13eca1, _0x6d4a10) { return _0x13eca1(_0x6d4a10); }, 'rLGvd': function (_0x9a1744, _0x5da334) { return _0x9a1744 == _0x5da334; }, 'WjzsZ': function (_0x2a8943, _0x5912ee) { return _0x2a8943(_0x5912ee); }, 'siyTj': function (_0x1830f5, _0x3dc8ea, _0x47849c, _0x18dc52) { return _0x1830f5(_0x3dc8ea, _0x47849c, _0x18dc52); }, 'MqZIQ': 'successCode', 'TZkyD': 'success', 'ylkFd': function (_0x4dced7, _0x165ab6) { return _0x4dced7 == _0x165ab6; }, 'HOYcs': 'monitorNotificationFailure', 'ijMuk': 'deviceId', 'vLwgz': 'serviceId', 'gKLKN': 'characteristicId', 'VCKrz': 'value', 'iSiuq': 'notifyBLECharacteristicValueChange', 'eYARS': 'onBLECharacteristicValueChange' }; wx[_0x154f78['iSiuq']]({ 'deviceId': connectDeviceId, 'serviceId': serviceUUID, 'characteristicId': readUUID, 'state': !![], 'success': function (_0x3dee60) { if (_0x154f78['Lpkqv'](typeof connectTimer, undefined)) { _0x154f78['XTtbf'](clearTimeout, connectTimer); } _0x154f78['rLGvd'](typeof connectCallback, FUNCTION) && _0x154f78['WjzsZ'](connectCallback, _0x154f78['siyTj'](toObject, codeEnum[_0x154f78['MqZIQ']], undefined, _0x154f78['TZkyD'])); }, 'fail': function () { if (_0x154f78['Lpkqv'](typeof connectTimer, undefined)) { _0x154f78['WjzsZ'](clearTimeout, connectTimer); } _0x154f78['ylkFd'](typeof connectCallback, FUNCTION) && _0x154f78['WjzsZ'](connectCallback, _0x154f78['siyTj'](toObject, codeEnum[_0x154f78['HOYcs']], undefined, _0x154f78['HOYcs'])); } }); wx[_0x154f78['eYARS']](function (_0x12509f) { if (_0x12509f[_0x154f78['ijMuk']] = connectDeviceId && _0x154f78['ylkFd'](_0x12509f[_0x154f78['vLwgz']], serviceUUID) && _0x154f78['ylkFd'](_0x12509f[_0x154f78['gKLKN']], readUUID)) { _0x154f78['WjzsZ'](analyticData, _0x12509f[_0x154f78['VCKrz']]); } }); } function analyticData(_0x44bae4) { var _0x15dbe1 = { 'QGQiB': 'bufferArrayToHexString', 'GjGSn': 'log', 'ivgZY': function (_0xd48189, _0x4851b6) { return _0xd48189 + _0x4851b6; }, 'kSZIH': '接收:', 'HGCGZ': function (_0x3b4a00, _0x717531) { return _0x3b4a00 == _0x717531; }, 'hRsCl': 'length', 'BiRJA': function (_0x2a5cfe, _0x38dca5) { return _0x2a5cfe * _0x38dca5; }, 'qPfli': function (_0x4e3a7b, _0x2c6f4b, _0x5eaef0) { return _0x4e3a7b(_0x2c6f4b, _0x5eaef0); }, 'frDVs': 'slice', 'xBWmf': function (_0x297fda, _0x2b291f) { return _0x297fda != _0x2b291f; }, 'FIsfs': 'fe01', 'AGTiB': function (_0x417f62, _0x51dd19) { return _0x417f62 > _0x51dd19; }, 'SMsoU': function (_0x1e9f4a, _0x4f6f4c) { return _0x1e9f4a(_0x4f6f4c); }, 'ZoAtS': function (_0x406bea, _0x5e5bea, _0x3c9660, _0x17deaa) { return _0x406bea(_0x5e5bea, _0x3c9660, _0x17deaa); }, 'CdiNZ': 'dataFrameTransboundary', 'kGfWb': '数据长度越界', 'LdFxv': function (_0x58dba8, _0x5c7ad3) { return _0x58dba8 === _0x5c7ad3; }, 'ufqbe': '2712', 'LalFj': function (_0x45919c, _0x14c90f) { return _0x45919c - _0x14c90f; }, 'WoXTw': 'push', 'PcFfh': function (_0x533886, _0x28d0aa) { return _0x533886 == _0x28d0aa; }, 'AQIAs': function (_0x5da22a, _0xb87897) { return _0x5da22a < _0xb87897; }, 'sawFB': function (_0x3c12c9, _0x438cd9) { return _0x3c12c9 - _0x438cd9; }, 'GxSVx': function (_0x3554b2, _0x2f5cf5) { return _0x3554b2(_0x2f5cf5); }, 'VCtjk': function (_0x57efc4, _0x276321) { return _0x57efc4 / _0x276321; }, 'teUPZ': function (_0x5111e1, _0x1298de, _0x19f175) { return _0x5111e1(_0x1298de, _0x19f175); }, 'vpdUb': function (_0x59ef25, _0x155350) { return _0x59ef25 * _0x155350; }, 'pNJBy': function (_0x16c41c, _0x2daa10) { return _0x16c41c * _0x2daa10; }, 'VHSlU': function (_0x50fc65, _0x5d65d1) { return _0x50fc65 == _0x5d65d1; }, 'XWDim': function (_0x376547, _0xe863d6) { return _0x376547(_0xe863d6); }, 'nAYnO': 'notPassBccCheck', 'WouHa': 'bcc校验不通过', 'UjoZD': function (_0x492271, _0x5e8421) { return _0x492271(_0x5e8421); }, 'XNzBn': function (_0x9b4b86, _0x33b175, _0x1d8a83, _0x49fbe4) { return _0x9b4b86(_0x33b175, _0x1d8a83, _0x49fbe4); }, 'mqpli': 'successCode', 'ByKwN': '无效数据' }; let _0x1f10a1 = dataHandler[_0x15dbe1['QGQiB']](_0x44bae4); console[_0x15dbe1['GjGSn']](_0x15dbe1['ivgZY'](_0x15dbe1['kSZIH'], _0x1f10a1)); if (_0x15dbe1['HGCGZ'](frame[_0x15dbe1['hRsCl']], 0x0)) { frameLen = _0x15dbe1['BiRJA'](_0x15dbe1['qPfli'](parseInt, _0x1f10a1[_0x15dbe1['frDVs']](0x4, 0x8), 0x10), 0x2); } frame += _0x1f10a1; if (_0x15dbe1['xBWmf'](frame[_0x15dbe1['frDVs']](0x0, 0x4), _0x15dbe1['FIsfs'])) { frame = ''; frameLen = 0x0; } else if (_0x15dbe1['AGTiB'](frame[_0x15dbe1['hRsCl']], frameLen)) { frame = ''; frameLen = 0x0; _0x15dbe1['HGCGZ'](typeof dataHandlerCallback, FUNCTION) && _0x15dbe1['SMsoU'](dataHandlerCallback, _0x15dbe1['ZoAtS'](toObject, codeEnum[_0x15dbe1['CdiNZ']], '', _0x15dbe1['kGfWb'])); } else if (_0x15dbe1['HGCGZ'](frame[_0x15dbe1['hRsCl']], frameLen)) { let _0x746526 = frame[_0x15dbe1['frDVs']](0x8, 0xc); if (_0x15dbe1['LdFxv'](_0x746526, _0x15dbe1['ufqbe'])) { let _0x4fe30b = frame[_0x15dbe1['frDVs']](0x10); let _0x1a5f8f = _0x4fe30b[_0x15dbe1['frDVs']](0x8, -0x6); frame = ''; frameLen = 0x0; if (_0x15dbe1['HGCGZ'](frames[_0x15dbe1['hRsCl']], 0x0)) { let _0x301308 = _0x15dbe1['qPfli'](parseInt, _0x1a5f8f[_0x15dbe1['frDVs']](0x4, 0x6), 0x10); framesLen = _0x15dbe1['ivgZY'](_0x15dbe1['LalFj'](_0x301308, 0x80), 0x1); } frames[_0x15dbe1['WoXTw']](_0x1a5f8f); if (_0x15dbe1['PcFfh'](frames[_0x15dbe1['hRsCl']], framesLen)) { let _0x3ea6d9 = !![]; for (let _0x4e9e7d = 0x0; _0x15dbe1['AQIAs'](_0x4e9e7d, frames[_0x15dbe1['hRsCl']]); _0x4e9e7d++) { let _0x578b9b = frames[_0x4e9e7d]; let _0x1ba004 = 0x0; for (let _0x3d78bf = 0x1; _0x15dbe1['AQIAs'](_0x3d78bf, _0x15dbe1['sawFB'](_0x15dbe1['GxSVx'](parseInt, _0x15dbe1['VCtjk'](_0x578b9b[_0x15dbe1['hRsCl']], 0x2)), 0x1)); _0x3d78bf++) { let _0x469ca3 = _0x15dbe1['teUPZ'](parseInt, _0x578b9b[_0x15dbe1['frDVs']](_0x15dbe1['vpdUb'](_0x3d78bf, 0x2), _0x15dbe1['pNJBy'](_0x15dbe1['ivgZY'](_0x3d78bf, 0x1), 0x2)), 0x10); _0x1ba004 ^= _0x469ca3; } if (_0x15dbe1['xBWmf'](_0x1ba004, _0x15dbe1['teUPZ'](parseInt, _0x578b9b[_0x15dbe1['frDVs']](-0x2), 0x10))) { _0x3ea6d9 = ![]; break; } } if (_0x15dbe1['VHSlU'](_0x3ea6d9, ![])) { frames = new Array(); framesLen = 0x0; _0x15dbe1['VHSlU'](typeof dataHandlerCallback, FUNCTION) && _0x15dbe1['XWDim'](dataHandlerCallback, _0x15dbe1['ZoAtS'](toObject, codeEnum[_0x15dbe1['nAYnO']], '', _0x15dbe1['WouHa'])); } else { let _0x57f038 = ''; for (let _0x4e9e7d = 0x0; _0x15dbe1['AQIAs'](_0x4e9e7d, frames[_0x15dbe1['hRsCl']]); _0x4e9e7d++) { let _0x578b9b = frames[_0x4e9e7d]; _0x57f038 += _0x578b9b[_0x15dbe1['frDVs']](0x8, -0x2); } frames = new Array(); framesLen = 0x0; _0x15dbe1['VHSlU'](typeof dataHandlerCallback, FUNCTION) && _0x15dbe1['UjoZD'](dataHandlerCallback, _0x15dbe1['XNzBn'](toObject, codeEnum[_0x15dbe1['mqpli']], _0x57f038, '成功')); } } } else { console[_0x15dbe1['GjGSn']](_0x15dbe1['ByKwN']); frame = ''; frameLen = 0x0; } } } function sendDataToDevice(_0x3c597a, _0x1d3048) { var _0x45ae09 = { 'PFmyC': '2|3|7|1|6|4|0|5', 'LrgPZ': 'concat', 'GgiUJ': function (_0x5203bb) { return _0x5203bb(); } }; var _0x29dd99 = _0x45ae09['PFmyC']['split']('|'), _0x48b3bc = 0x0; while (!![]) { switch (_0x29dd99[_0x48b3bc++]) { case '0': framesLen = 0x0; continue; case '1': frame = ''; continue; case '2': dataHandlerCallback = _0x1d3048; continue; case '3': sendBufferArray = new Array()[_0x45ae09['LrgPZ']](_0x3c597a); continue; case '4': frames = new Array(); continue; case '5': _0x45ae09['GgiUJ'](runningSendData); continue; case '6': frameLen = 0x0; continue; case '7': sendIndex = 0x0; continue; }break; } } function connectDevice(_0x1c90e2, _0x5ca937, _0x585ded) { var _0x47b9fb = { 'iGbFl': '7|8|2|0|3|6|1|5|4', 'rzSct': function (_0x25a848, _0x21eac2) { return _0x25a848 != _0x21eac2; }, 'KRppn': function (_0x34b3a8, _0x3a0630) { return _0x34b3a8(_0x3a0630); }, 'FluVK': function (_0x48dd3e, _0x1251f4) { return _0x48dd3e != _0x1251f4; }, 'qelbd': function (_0x1107e7) { return _0x1107e7(); }, 'GsMWq': function (_0x6941ce, _0x176228, _0x5ab273) { return _0x6941ce(_0x176228, _0x5ab273); }, 'WuGVf': function (_0x424ea9, _0x215b89) { return _0x424ea9 != _0x215b89; }, 'mGXxZ': function (_0x50258d, _0x5aded5) { return _0x50258d(_0x5aded5); }, 'odttp': function (_0x3923c5, _0x3b876e) { return _0x3923c5 == _0x3b876e; }, 'lAsVi': function (_0x21daae, _0x152c6b) { return _0x21daae == _0x152c6b; }, 'MEiAZ': function (_0x8a3868, _0x2c30d8, _0x317539, _0x5e147e) { return _0x8a3868(_0x2c30d8, _0x317539, _0x5e147e); }, 'njHIQ': '连接成功', 'qoFPb': '断开连接', 'xHyPe': 'timeout', 'MyqbX': 'deviceId' }; var _0x5765ea = _0x47b9fb['iGbFl']['split']('|'), _0x40a3ac = 0x0; while (!![]) { switch (_0x5765ea[_0x40a3ac++]) { case '0': if (_0x47b9fb['rzSct'](typeof connectTimer, undefined)) { _0x47b9fb['KRppn'](clearTimeout, connectTimer); } continue; case '1': wx['onBLEConnectionStateChange'](function (_0x18f3f9) { if (_0x2843a5['jyKyQ'](connectDeviceId, _0x18f3f9['deviceId'])) { _0x2843a5['lJXDt'](typeof _0x585ded, FUNCTION) && _0x2843a5['wDKDP'](_0x585ded, _0x2843a5['zqFHL'](toObject, _0x18f3f9['connected'] ? 0x0 : 0x1, undefined, _0x18f3f9['connected'] ? _0x2843a5['otXIl'] : _0x2843a5['WFEOh'])); } }); continue; case '2': connectCallback = _0x5ca937; continue; case '3': if (_0x47b9fb['FluVK'](typeof startA2Timer, undefined)) { _0x47b9fb['KRppn'](clearTimeout, startA2Timer); } continue; case '4': _0x47b9fb['qelbd'](startConnectBle); continue; case '5': connectTimer = _0x47b9fb['GsMWq'](setTimeout, () => { _0x2843a5['lJXDt'](typeof connectCallback, FUNCTION) && _0x2843a5['wDKDP'](connectCallback, _0x2843a5['zqFHL'](toObject, codeEnum[_0x2843a5['Cbuvg']], undefined, _0x2843a5['Cbuvg'])); }, connectTime); continue; case '6': if (_0x47b9fb['WuGVf'](typeof waitA2ResponseTimer, undefined)) { _0x47b9fb['mGXxZ'](clearTimeout, waitA2ResponseTimer); } continue; case '7': var _0x2843a5 = { 'jyKyQ': function (_0x5bd09d, _0x16b3b6) { return _0x47b9fb['odttp'](_0x5bd09d, _0x16b3b6); }, 'lJXDt': function (_0x21e56f, _0x4e22d8) { return _0x47b9fb['lAsVi'](_0x21e56f, _0x4e22d8); }, 'wDKDP': function (_0x4a8af0, _0x2fb63f) { return _0x47b9fb['mGXxZ'](_0x4a8af0, _0x2fb63f); }, 'zqFHL': function (_0x17f697, _0xe1581b, _0x3e9690, _0x641a34) { return _0x47b9fb['MEiAZ'](_0x17f697, _0xe1581b, _0x3e9690, _0x641a34); }, 'otXIl': _0x47b9fb['njHIQ'], 'WFEOh': _0x47b9fb['qoFPb'], 'Cbuvg': _0x47b9fb['xHyPe'] }; continue; case '8': connectDeviceId = _0x1c90e2[_0x47b9fb['MyqbX']]; continue; }break; } } function disconnectDevice(_0x2652df) { var _0x331de3 = { 'QrgrA': function (_0x51aeec, _0x3f4eed) { return _0x51aeec(_0x3f4eed); }, 'qSano': function (_0x4e6a17, _0x4ec8a0, _0x40d777, _0x5284e1) { return _0x4e6a17(_0x4ec8a0, _0x40d777, _0x5284e1); }, 'NsZnY': 'successCode', 'yQsSJ': function (_0xaa36e5, _0x5a5e8e) { return _0xaa36e5(_0x5a5e8e); }, 'hwJaF': function (_0x49a7dc, _0x5d72a1) { return _0x49a7dc(_0x5d72a1); } }; const _0x10fc94 = _0x331de3['hwJaF'](String, connectDeviceId); wx['closeBLEConnection']({ 'deviceId': _0x10fc94, 'success'(_0x1b2d61) { console['log'](_0x1b2d61); _0x331de3['QrgrA'](_0x2652df, _0x331de3['qSano'](toObject, codeEnum[_0x331de3['NsZnY']], _0x1b2d61, '成功')); }, 'fail'(_0x378c5f) { console['log'](_0x378c5f); _0x331de3['yQsSJ'](_0x2652df, _0x331de3['qSano'](toObject, _0x378c5f['errCode'], _0x378c5f, _0x378c5f['errMsg'])); } }); } function promise(_0x476dc4, _0x51c005) { var _0x370127 = { 'vwRnQ': function (_0x189eb1, _0x3fa153) { return _0x189eb1 === _0x3fa153; }, 'qUPXh': 'successCode', 'AyjLX': '发送数据成功', 'ItOsk': function (_0x23c0bf, _0x3ddff6) { return _0x23c0bf === _0x3ddff6; }, 'PAFri': function (_0x1b171e, _0x5c3c24) { return _0x1b171e == _0x5c3c24; }, 'ETtYS': function (_0x5c05b8, _0x44fe51) { return _0x5c05b8 + _0x44fe51; }, 'CIxOc': 'fff\x20d\x20', 'WuIGa': function (_0x309d03, _0x311822) { return _0x309d03(_0x311822); }, 'iufKk': '数据返回错误', 'VnzJf': 'TLV指令集有指令执行失败', 'XSXFM': '条指令执行失败', 'rVqXB': function (_0x50ade6, _0x322c5a) { return _0x50ade6 + _0x322c5a; }, 'CYOZz': '错误码:', 'BVcUx': function (_0x3b412f, _0x38e420) { return _0x3b412f - _0x38e420; }, 'iSfUN': function (_0x13d291, _0x301a0f) { return _0x13d291 + _0x301a0f; }, 'DcsPZ': '发送数据失败', 'Deesq': function (_0x3fab66, _0x194d8f) { return _0x3fab66 === _0x194d8f; }, 'SyWFS': function (_0x13ffee, _0x19961e, _0x590700) { return _0x13ffee(_0x19961e, _0x590700); } }; return new Promise((_0x5a84a6, _0x369ad6) => { if (_0x370127['Deesq'](_0x51c005, '10')) { var _0x65a379 = dataUtil['makeA3SendData']('00', dataHandler['makeTLV']([_0x476dc4])); } else { var _0x65a379 = dataUtil['makeA8SendData']('00', dataHandler['makeTLV']([_0x476dc4])); } _0x370127['SyWFS'](sendDataToDevice, _0x65a379, _0x55bd3b => { if (_0x370127['vwRnQ'](_0x55bd3b['code'], codeEnum[_0x370127['qUPXh']])) { console['log'](_0x370127['AyjLX']); if (_0x370127['ItOsk'](_0x55bd3b['data']['slice'](0x2, 0x4), '00') || _0x370127['ItOsk'](_0x55bd3b['data']['slice'](0x2, 0x4), 'cf')) { let _0x4d8e04 = _0x55bd3b['data']['slice'](0xa); let _0x5987a9 = dataHandler['resolveTLV'](_0x55bd3b['data']['slice'](0xa)); console['log'](_0x5987a9); if (_0x370127['PAFri'](_0x5987a9['length'], 0x1)) { console['log'](_0x370127['ETtYS'](_0x370127['CIxOc'], _0x5987a9[0x0]['slice'](-0x4))); _0x370127['WuIGa'](_0x5a84a6, _0x5987a9[0x0]); } else { _0x370127['WuIGa'](_0x369ad6, _0x370127['iufKk']); } } else { console['log'](_0x370127['VnzJf']); let _0x4c93b5 = _0x55bd3b['data']['slice'](0xa); let _0x5987a9 = dataHandler['resolveTLV'](_0x55bd3b['data']['slice'](0xa)); console['log'](_0x370127['ETtYS'](_0x370127['ETtYS']('第', _0x5987a9['length']), _0x370127['XSXFM'])); console['log'](_0x370127['rVqXB'](_0x370127['CYOZz'], _0x5987a9[_0x370127['BVcUx'](_0x5987a9['length'], 0x1)]['slice'](-0x4))); _0x370127['WuIGa'](_0x369ad6, _0x370127['iSfUN'](_0x370127['CYOZz'], _0x5987a9[_0x370127['BVcUx'](_0x5987a9['length'], 0x1)]['slice'](-0x4))); } } else { console['log'](_0x370127['DcsPZ']); _0x370127['WuIGa'](_0x369ad6, _0x55bd3b['msg']); } }); }); } function transCmd(_0x665fde, _0x9c5013, _0x52cc42) { var _0x33c405 = { 'YvtVd': '5|6|0|1|4|3|2', 'GLClT': function (_0x464208, _0x102083) { return _0x464208 < _0x102083; }, 'bZlBX': function (_0x5670d1, _0x5e2071) { return _0x5670d1 == _0x5e2071; }, 'ePLuK': function (_0x4281ff, _0x2b18ae, _0x77d88d) { return _0x4281ff(_0x2b18ae, _0x77d88d); }, 'goZIj': function (_0x181164, _0x1455a0) { return _0x181164 === _0x1455a0; }, 'Klkna': function (_0x4730b2, _0x15de1d) { return _0x4730b2 > _0x15de1d; }, 'RpPAK': function (_0x10020a, _0x416c2d) { return _0x10020a == _0x416c2d; }, 'ysiVL': function (_0x447cce, _0x3a1496) { return _0x447cce(_0x3a1496); }, 'yUbXy': function (_0x54b2f8, _0x1c8def, _0x2f4418, _0x1ef892) { return _0x54b2f8(_0x1c8def, _0x2f4418, _0x1ef892); }, 'nGBqQ': 'successCode', 'fqlTL': function (_0x5e402d, _0x386d9e) { return _0x5e402d != _0x386d9e; }, 'UGNBG': function (_0xce76af, _0x32a699) { return _0xce76af(_0x32a699); }, 'EpeKt': 'failureCode', 'ULhDf': function (_0x4b65ad, _0x3226fa) { return _0x4b65ad + _0x3226fa; }, 'AuWGq': function (_0x1cd881, _0x5e7162) { return _0x1cd881 != _0x5e7162; }, 'vCBmn': function (_0x390c08, _0x290eaa, _0x2298f5, _0x1a3b6d) { return _0x390c08(_0x290eaa, _0x2298f5, _0x1a3b6d); }, 'czUeR': 'paraError', 'zxFsn': 'transCmd\x20type\x20错误' }; var _0x252bf8 = _0x33c405['YvtVd']['split']('|'), _0x48b515 = 0x0; while (!![]) { switch (_0x252bf8[_0x48b515++]) { case '0': cmds = _0x665fde['slice'](); continue; case '1': var _0x3307dd = new Array(); continue; case '2': for (var _0x5ad3b7 = 0x0; _0x33c405['GLClT'](_0x5ad3b7, _0x665fde['length']); _0x5ad3b7++) { if (_0x33c405['bZlBX'](_0x5ad3b7, 0x0)) { _0x59d4bf = cmds['shift'](); _0x47199 = _0x33c405['ePLuK'](promise, _0x59d4bf, _0x9c5013); } _0x47199 = _0x47199['then'](_0x1a4ad7 => { if (_0x212fcb['cLThq'](_0x1a4ad7, undefined)) { return; } _0x3307dd['push'](_0x1a4ad7); if (_0x212fcb['MtWVg'](cmds['length'], 0x0)) { _0x59d4bf = cmds['shift'](); return _0x212fcb['VSzXs'](promise, _0x59d4bf, _0x9c5013); } _0x212fcb['eWsHQ'](typeof _0x52cc42, FUNCTION) && _0x212fcb['ChCCZ'](_0x52cc42, _0x212fcb['LMHxY'](toObject, codeEnum[_0x212fcb['ChGEm']], _0x3307dd, '成功')); }, (_0x479451, _0x5e1935) => { if (_0x212fcb['YdMfE'](_0x479451, undefined)) _0x212fcb['eWsHQ'](typeof _0x52cc42, FUNCTION) && _0x212fcb['vQWBb'](_0x52cc42, _0x212fcb['LMHxY'](toObject, codeEnum[_0x212fcb['pqsDN']], _0x3307dd, _0x212fcb['qPqCm'](_0x59d4bf, _0x479451))); }); } continue; case '3': var _0x47199; continue; case '4': var _0x59d4bf; continue; case '5': var _0x212fcb = { 'cLThq': function (_0x1c2f5a, _0x318bdc) { return _0x33c405['goZIj'](_0x1c2f5a, _0x318bdc); }, 'MtWVg': function (_0x3b86cb, _0x8fbe76) { return _0x33c405['Klkna'](_0x3b86cb, _0x8fbe76); }, 'VSzXs': function (_0x284a9e, _0x46f135, _0x495789) { return _0x33c405['ePLuK'](_0x284a9e, _0x46f135, _0x495789); }, 'eWsHQ': function (_0x5ec9af, _0x135b89) { return _0x33c405['RpPAK'](_0x5ec9af, _0x135b89); }, 'ChCCZ': function (_0x5dbc4a, _0x1d82fc) { return _0x33c405['ysiVL'](_0x5dbc4a, _0x1d82fc); }, 'LMHxY': function (_0x3a5c65, _0x4717a8, _0x91bcde, _0x38b9ac) { return _0x33c405['yUbXy'](_0x3a5c65, _0x4717a8, _0x91bcde, _0x38b9ac); }, 'ChGEm': _0x33c405['nGBqQ'], 'YdMfE': function (_0x4f4e72, _0x2569e2) { return _0x33c405['fqlTL'](_0x4f4e72, _0x2569e2); }, 'vQWBb': function (_0x4febaa, _0x20720c) { return _0x33c405['UGNBG'](_0x4febaa, _0x20720c); }, 'pqsDN': _0x33c405['EpeKt'], 'qPqCm': function (_0x1696bb, _0x279a39) { return _0x33c405['ULhDf'](_0x1696bb, _0x279a39); } }; continue; case '6': if (_0x33c405['fqlTL'](_0x9c5013, '10') && _0x33c405['AuWGq'](_0x9c5013, '20')) { _0x33c405['RpPAK'](typeof _0x52cc42, FUNCTION) && _0x33c405['UGNBG'](_0x52cc42, _0x33c405['vCBmn'](toObject, codeEnum[_0x33c405['czUeR']], undefined, _0x33c405['zxFsn'])); return; } continue; }break; } } function runningSendData() { var _0x444063 = { 'jiMff': function (_0x45fa5b, _0x3d8034) { return _0x45fa5b < _0x3d8034; }, 'aSLAv': 'length', 'fhbyZ': function (_0x4e9a31) { return _0x4e9a31(); }, 'hYRYy': 'log', 'zkPRe': function (_0x3ea1d2, _0x5eba25) { return _0x3ea1d2 + _0x5eba25; }, 'KVGVS': function (_0x38a0ef, _0x112a49) { return _0x38a0ef - _0x112a49; }, 'IjWih': '次重发', 'taPPG': function (_0x4ccaed, _0xd61cfe) { return _0x4ccaed > _0xd61cfe; }, 'lwNXN': function (_0x5d1bc1, _0x30ad6c, _0xc2348e) { return _0x5d1bc1(_0x30ad6c, _0xc2348e); }, 'UARwl': function (_0x3fa6a4, _0x3295e5) { return _0x3fa6a4 == _0x3295e5; }, 'QdEoZ': function (_0x3e937c, _0x4b42b7) { return _0x3e937c(_0x4b42b7); }, 'ckGrj': function (_0x5e5e81, _0x1d9c8c, _0x186773, _0x4ee3e0) { return _0x5e5e81(_0x1d9c8c, _0x186773, _0x4ee3e0); }, 'zoWJN': 'sendDataFailure', 'CpTIF': '发送数据失败', 'xWWJZ': 'bufferArrayToHexString', 'OnMOL': function (_0x238ac5, _0x1e70c5) { return _0x238ac5 + _0x1e70c5; }, 'gOXGH': '发送:', 'XxmyF': 'writeBLECharacteristicValue' }; let _0x4336da = sendBufferArray[sendIndex]; let _0x18a25b = dataHandler[_0x444063['xWWJZ']](_0x4336da); console[_0x444063['hYRYy']](_0x444063['OnMOL'](_0x444063['gOXGH'], _0x18a25b)); wx[_0x444063['XxmyF']]({ 'deviceId': connectDeviceId, 'serviceId': serviceUUID, 'characteristicId': writeUUID, 'value': _0x4336da, 'success': function (_0xd417d) { sendIndex++; resendCount = 0x3; if (_0x444063['jiMff'](sendIndex, sendBufferArray[_0x444063['aSLAv']])) { _0x444063['fhbyZ'](runningSendData); } }, 'fail': function () { if (_0x444063['taPPG'](resendCount, 0x0)) { resendCount--; _0x444063['lwNXN'](setTimeout, () => { console[_0x444063['hYRYy']](_0x444063['zkPRe'](_0x444063['zkPRe']('第', _0x444063['KVGVS'](0x3, resendCount)), _0x444063['IjWih'])); _0x444063['fhbyZ'](runningSendData); }, 0xc8); } else { _0x444063['UARwl'](typeof dataHandlerCallback, FUNCTION) && _0x444063['QdEoZ'](dataHandlerCallback, _0x444063['ckGrj'](toObject, codeEnum[_0x444063['zoWJN']], '', _0x444063['CpTIF'])); } } }); }