|
|
@@ -85,6 +85,16 @@ function shortToast(msg) {
|
|
|
Toast.makeText(activity, msg, Toast.LENGTH_SHORT).show();
|
|
|
}
|
|
|
|
|
|
+//3byte数组转换为int整数
|
|
|
+function threeBytesToInt(bytes, off) {
|
|
|
+ // var b0 = 0x00;
|
|
|
+ var b0 = new Uint8Array(bytes, off, 1);
|
|
|
+ var b1 = new Uint8Array(bytes, off + 1, 1);
|
|
|
+ var b2 = new Uint8Array(bytes, off + 2, 1);
|
|
|
+ // console.log('threeBytesToInt: ' + '' + buf2hex(b0) + '' + buf2hex(b1) + '' + buf2hex(b2))
|
|
|
+ return (b0 << 16) | (b1 << 8) | b2;
|
|
|
+}
|
|
|
+
|
|
|
// 监听状态变化
|
|
|
// 回调函数参数event对象包括以下属性:
|
|
|
// available - Boolean,蓝牙适配器是否可用;
|
|
|
@@ -183,6 +193,7 @@ export function listenerDeviceFound() {
|
|
|
let DevType = 0; // 设备数据类型
|
|
|
let Power = 0;
|
|
|
let HeartRate = 0;
|
|
|
+ let StepNum = 0;
|
|
|
let Sn = 0;
|
|
|
let now = 0;
|
|
|
let waitTime = 0;
|
|
|
@@ -207,11 +218,13 @@ export function listenerDeviceFound() {
|
|
|
Power = parseInt(new Uint8Array(devices[i].advertisData, 8, 1));
|
|
|
HeartRate = parseInt(new Uint8Array(devices[i].advertisData, 7, 1));
|
|
|
Sn = parseInt(devices[i].localName.substr(6, devices[i].localName.length));
|
|
|
+ StepNum = threeBytesToInt(devices[i].advertisData, 9);
|
|
|
}
|
|
|
else { // [老版]
|
|
|
Power = parseInt(new Uint8Array(devices[i].advertisData, 3, 1));
|
|
|
HeartRate = parseInt(new Uint8Array(devices[i].advertisData, 5, 1));
|
|
|
Sn = parseInt(devices[i].localName.substr(6, devices[i].localName.length));
|
|
|
+ StepNum = 0; // 老版无步数
|
|
|
}
|
|
|
// console.log('VendorID: ' + VendorID + ' DevType: ' + DevType + ' Sn: ' + Sn + ' localName: ' + devices[i].localName + ' HeartRate: ' + HeartRate + ' Power: ' + Power + ' advertisData: ' + buf2hex(devices[i].advertisData));
|
|
|
|
|
|
@@ -230,7 +243,8 @@ export function listenerDeviceFound() {
|
|
|
data = {
|
|
|
"sn": Sn,
|
|
|
"hr": HeartRate,
|
|
|
- "pw": Power
|
|
|
+ "pw": Power,
|
|
|
+ "sts": StepNum
|
|
|
};
|
|
|
dataRcvArr.push(data);
|
|
|
}
|
|
|
@@ -252,10 +266,8 @@ export function uploadBleData() {
|
|
|
// console.log("[uploadBleData] Data (len: " + upData.length+ "): " + upData);
|
|
|
upData = dealUpData(upData);
|
|
|
// console.log("[uploadBleData] Data GZip len: " + upData.length);
|
|
|
- if (ws.getWsState()) {
|
|
|
- ws.sendData(upData);
|
|
|
- }
|
|
|
- else {
|
|
|
+ if (! ws.sendData(upData)) {
|
|
|
+ ws.disconnect();
|
|
|
ws.connect(store.state.wsUrl, store.state.eqSn);
|
|
|
}
|
|
|
}
|