1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import {Base} from "@/utils/usbSerial/base";
- import {logs} from "@/utils/util";
- import {orderToData} from "@/utils/ble/hex";
- export class BmiMachine extends Base {
- constructor(topClass, usbSerial) {
- super(topClass, usbSerial)
- this.id = 'bmi'
- this.title = 'BMI体重秤'
- this.config = {
- baudRate: 9600,
- dataBits: 8,
- stopBits: 1,
- parity: 0,
- flowControl: 0,
- }
- }
- read(resp) {
- // resp.value = ASCIIUtils.decodeUtf8(resp.data)
- // logs('bmi usbSerial.read', resp)
- // 7.40kg 98.5cm 9???
- // let str = '0240303037343030303938353030303030303030303030303030303030303030303030303030303037373030303030403503'
- let resArr = this.packetManager(resp.data)
- resArr.forEach(it => {
- let code = it.substring(2, 4)
- let orderContent = it.slice(4, -6)
- let result = {}
- let acceptOrder = this.getAcceptOrder(code)
- if (acceptOrder) result = orderToData(orderContent, acceptOrder.c, 0)
- if (this.notifyFun) this.notifyFun(result)
- })
- }
- getAcceptOrder(cmd) {
- let order = {
- '40': {
- l: 20,
- c: [
- {t: 4, k: 'kg', l: 10, fun: (it) => it ? it / 100 : 0},
- {t: 4, k: 'cm', l: 10, fun: (it) => it / 10},
- {t: 4, k: 'k3', l: 10, fun: (it) => it / 10},
- {t: 4, k: 'k4', l: 10, fun: (it) => it / 10},
- {t: 4, k: 'k5', l: 10, fun: (it) => it / 10},
- {t: 4, k: 'k6', l: 10, fun: (it) => it / 10},
- {t: 4, k: 'k7', l: 10},
- {t: 4, k: 'k8', l: 10, fun: (it) => it / 10},
- {t: 4, k: 'k9', l: 10, fun: (it) => it / 10},
- ]
- },
- }
- return order[cmd] || null
- }
- }
|