const wjApi = require("./wjBleAPI.js"); export function disconnectDevice() { wjApi.disConnectDevice((res) => { if (res.serviceCode === 0) { console.log('断开设备成功!') } else { console.log('断开设备失败!') } }) } export function connectDevice(d, f, e) { d.device_id = d.deviceId d.device_name = d.name wjApi.connectDevice(d, function(serviceResult) { console.log('serviceResult.serviceCode', serviceResult.serviceCode) console.log("connectDevice2", serviceResult); if (serviceResult.serviceCode === 0) { f(serviceResult) } else { e(serviceResult) } }, function(serviceResult) { e(serviceResult) }) } //计算请求指令的长度并转为16进制 function getLenth(request) { let num = request.length / 2; let paddedHexString = num.toString(16).padStart(2, '0'); return paddedHexString; } let cmdArr = [] /** * @param {Object} request * @param {Object} channel AC(ESAM)、A3(IC) * @param {Object} callback */ export function transCmd(request, cmdtype, callback) { cmdArr = [] sendCommand(0, request, cmdtype, callback) } function sendCommand(index, request, cmdtype, callback) { let continueExecution = true; // 控制执行的标志 console.log('======================', request.length > index, request.length, index) if (request.length > index) { if (continueExecution) { console.log('执行内容', request[index], cmdtype == 10 ? 'A3' : 'AC') wjApi.transCommand("01" + getLenth(request[index]) + request[index], cmdtype == 10 ? 'A3' : 'AC', function( res) { console.log(res, '输出内容失败:${res.serviceInfo};请看console日志', res.serviceInfo) if (res.serviceCode === 0) { cmdArr.push(res.serviceData.dataBuff.slice(4)) sendCommand(index + 1, request, cmdtype, callback) } else { continueExecution = false } }) } else { console.log('---执行结果----', cmdArr) callback({ code: 1, data: [] }) } } else { console.log({ code: 0, data: cmdArr }, '---输出结果----', cmdArr) callback({ code: 0, data: cmdArr }) } }