一开始使用nordic app调试,可以直接读出数据,天真的以为体重秤都是使用的标准格式,然后就搜出了阿里体重秤格式(http://gaic.alicdn.com/ztms/ble-protocol/%E9%98%BF%E9%87%8C%E5%B0%8F%E6%99%BA%E8%93%9D%E7%89%99%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE-%E4%BA%91%E7%AB%AF%E7%89%88%E7%A7%A4.pdf)
结果尝试了不行,又搜索,找到了小米的格式(https://github.com/oliexdev/openScale/wiki/Xiaomi-Bluetooth-Mi-Scale)
ionic3测试程序如下:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import 'rxjs/add/operator/toPromise';
// import { BluetoothSerial } from '@ionic-native/bluetooth-serial';
import { BLE } from '@ionic-native/ble';
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [BLE]
})
export class HomePage {
constructor(
public navCtrl: NavController,
private ble: BLE
) {
}
test1() {
console.log("scan");
this.ble.scan([], 10).subscribe(device => {
console.log(JSON.stringify(device));
}, error => {
console.log(error);
});
}
test2() {
console.log("connect");
this.ble.connect('88:0F:10:A1:22:AC').subscribe(data => {
console.log(data);
console.log(JSON.stringify(data));
},
error => {
console.log(error);
}
);
}
test4() {
console.log("read");
this.ble.startNotification('88:0F:10:A1:22:AC', '181d', '2a9d').subscribe(buffer => {
var d = new Uint8Array(buffer);
console.log(d);
});
}
test3() {
}
test5() {
console.log("Notification");
this.ble.stopNotification('88:0F:10:A1:22:AC', '181d', '2a9d').then(buffer => {
console.log(buffer);
});
}
}