| // console.log(ab2hex(bleData.completeData, ' ')) | // console.log(ab2hex(bleData.completeData, ' ')) | ||||
| // 以体脂秤数据解析为例 | // 以体脂秤数据解析为例 | ||||
| let weight, adc; | |||||
| switch (payload[0]) { | |||||
| /* | |||||
| * 例如: A7 00 0E 05 01 00 01 F4 10 19 7A---------50.0kg | |||||
| * 其中 01 00 01 F4 10 为 payload | |||||
| * 具体指令请根据协议解析 | |||||
| */ | |||||
| switch (payload[0]) { // payload[0] 指示当前指令的类型,根据类型区分 | |||||
| /** | |||||
| * 例如: A7 00 0E 05 01 00 01 F4 10 19 7A---------50.0kg | |||||
| * 其中 01 00 01 F4 10 为 payload | |||||
| * 具体指令请根据协议解析 | |||||
| */ | |||||
| case 0x01: | case 0x01: | ||||
| case 0x02: | case 0x02: | ||||
| let weightValue = (payload[1] << 16) | (payload[2] << 8) | payload[3] | let weightValue = (payload[1] << 16) | (payload[2] << 8) | payload[3] | ||||
| // console.log("小数点:" + decPoint) | // console.log("小数点:" + decPoint) | ||||
| // console.log("单位:" + unit) | // console.log("单位:" + unit) | ||||
| if (unit == 1) { // 单位为斤 | if (unit == 1) { // 单位为斤 | ||||
| weight = weightValue / 2 | |||||
| weightValue = weightValue / 2 | |||||
| } else { | } else { | ||||
| // ... 其他单位 | // ... 其他单位 | ||||
| } | } | ||||
| weight = weightValue / (decPoint * 10) // 除去小数点位数 | |||||
| this.weight = weightValue / (decPoint * 10) // 除去小数点位数 | |||||
| break; | break; | ||||
| // ... | |||||
| /* | |||||
| // ... 其他指令请根据协议解析 | |||||
| /** | |||||
| * 例如: A7 00 0E 03 07 02 30 4A 7A---------阻抗测量成功,阻抗 560Ω | * 例如: A7 00 0E 03 07 02 30 4A 7A---------阻抗测量成功,阻抗 560Ω | ||||
| * 其中 07 02 30 为 payload | * 其中 07 02 30 为 payload | ||||
| * 具体指令请根据协议解析 | * 具体指令请根据协议解析 | ||||
| */ | */ | ||||
| case 0x07: | case 0x07: | ||||
| adc = (payload[1] << 8) | payload[2] | |||||
| this.adc = (payload[1] << 8) | payload[2] | |||||
| break; | break; | ||||
| case 0x0A: | case 0x0A: | ||||
| //测量完成 | |||||
| let bodyData = plugin.getBodyData(1, 20, 170, weight, adc) // 体脂秤数据解析 | |||||
| //测量完成 | |||||
| let bodyData = plugin.getBodyData(1, 20, 170, this.weight, this.adc) // 体脂秤数据解析 (男,20岁,身高170,体重,阻抗) | |||||
| console.log("解析后的体脂数据: ", bodyData) | console.log("解析后的体脂数据: ", bodyData) | ||||
| console.log(util.getWeightDisplay(170, weight)) | |||||
| console.log(util.getWeightDisplay(170, this.weight)) | |||||
| break; | break; | ||||
| } | } | ||||