【发布时间】:2019-07-18 14:45:21
【问题描述】:
我正在使用 ionic 中的 BLE 本机库。我正在尝试在屏幕上显示heartbeat。我能够记录不断变化的heartrate 值。我想要的是在我的 html 页面上显示实时的 heartrate 值。
这是我的代码
<p>{{ heartrate }}</p>
heartrate: number = 0; // global variable
this.ble.startNotification("EB:53:D1:0A:A0:78", "180D", "2A37").subscribe(
(buffer) => {
this.getHeartRateNotifications(buffer);
console.log(buffer);
},
(err) => {
console.log('aa', JSON.stringify(err))
})
getHeartRateNotifications(buffer) {
console.log(buffer);
console.log('array : ', String.fromCharCode.apply(null, new Uint8Array(buffer)));
const value = new DataView(buffer);
console.log("I am value: ", JSON.stringify(value));
const flags = value.getUint8(0);
console.log('FLAGS', flags);
if (this.session.isEven(flags)) {
this.heartRate = value.getUint8(1);
console.log('HEART RATE 8 bit: ', this.heartRate);
} else if (this.session.isOdd(flags)) {
this.heartRate = value.getUint16(2);
console.log('HEART RATE 16 bit: ', this.heartRate);
}
}
【问题讨论】:
-
有什么问题?虽然我不确定
getHeartRateNotifications应该做什么,但它似乎在语法上是正确的。 -
如果这段代码在一个组件类里面,那么在它的模板里,你可以
<p [textContent]="heartRate"></p> -
或者您可以通过执行 "{{ ble.startNotification("EB:53:D1:0A:A0:78", "180D", "2A37") | async }}" 直接显示缓冲区