F01PRO新增AiLink蓝牙名称
This commit is contained in:
parent
d3b80546d6
commit
e5b7648729
|
|
@ -1,298 +1,304 @@
|
|||
<template>
|
||||
<view>
|
||||
<view class="content weightPages">
|
||||
<view class="title" v-if="isConnection == 0">连接中,请稍后</view>
|
||||
<view class="title" v-if="isConnection == 1">连接成功,请开始测量</view>
|
||||
<view class="title" v-if="isConnection == 2" @click="openBluetoothAdapter">连接失败,点击重新连接</view>
|
||||
<view class="text">{{textW}}</view>
|
||||
<view class="text">{{textH}}</view>
|
||||
<view class="text" v-if="textImp != ''">{{textImp}}</view>
|
||||
<view class="image" style="margin-top: 200rpx;">
|
||||
<image src="/pageTwo/static/F018P01.gif" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="tips">
|
||||
<text>请确保:</text>
|
||||
<text>1.请确定设备是开机状态</text>
|
||||
<text>2.请确定手机蓝牙、位置信息已打开</text>
|
||||
<text>3.ios系统需打开设置—>应用—>微信里的蓝牙权限</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<view class="content weightPages">
|
||||
<view class="title" v-if="isConnection == 0">连接中,请稍后</view>
|
||||
<view class="title" v-if="isConnection == 1">连接成功,请开始测量</view>
|
||||
<view class="title" v-if="isConnection == 2" @click="openBluetoothAdapter">连接失败,点击重新连接</view>
|
||||
<view class="text">{{textW}}</view>
|
||||
<view class="text">{{textH}}</view>
|
||||
<view class="text" v-if="textImp != ''">{{textImp}}</view>
|
||||
<view class="image" style="margin-top: 200rpx;">
|
||||
<image src="/pageTwo/static/F018P01.gif" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="tips">
|
||||
<text>请确保:</text>
|
||||
<text>1.请确定设备是开机状态</text>
|
||||
<text>2.请确定手机蓝牙、位置信息已打开</text>
|
||||
<text>3.ios系统需打开设置—>应用—>微信里的蓝牙权限</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
mapState
|
||||
} from "vuex";
|
||||
var myTime;
|
||||
const plugin = requirePlugin("sdkPlugin").AiLink;
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
textW: "",
|
||||
textH: "",
|
||||
import {
|
||||
mapState
|
||||
} from "vuex";
|
||||
var myTime;
|
||||
const plugin = requirePlugin("sdkPlugin").AiLink;
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
textW: "",
|
||||
textH: "",
|
||||
textImp: "",
|
||||
height: "",
|
||||
weight: "",
|
||||
imp: 0,
|
||||
macAddr: "",
|
||||
deviceId: "",
|
||||
serviceId: "",
|
||||
readId: "",
|
||||
writeId: "",
|
||||
notifyId: "",
|
||||
isSend: true,
|
||||
Unload: false,
|
||||
isConnection: 0,
|
||||
data01: {},
|
||||
data02: {},
|
||||
BLEResult: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(["user", "isConnected", "isBluetoothTyle"]),
|
||||
userInfo() {
|
||||
return this.user
|
||||
}
|
||||
},
|
||||
onUnload: function() {
|
||||
let that = this
|
||||
console.log('F01PRO:onUnload-' + that.Unload)
|
||||
if (!that.Unload) {
|
||||
clearTimeout(myTime)
|
||||
that.closeBLEConnection()
|
||||
that.closeBluetoothAdapter()
|
||||
height: "",
|
||||
weight: "",
|
||||
imp: 0,
|
||||
macAddr: "",
|
||||
deviceId: "",
|
||||
serviceId: "",
|
||||
readId: "",
|
||||
writeId: "",
|
||||
notifyId: "",
|
||||
isSend: true,
|
||||
Unload: false,
|
||||
isConnection: 0,
|
||||
data01: {},
|
||||
data02: {},
|
||||
BLEResult: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(["user", "isConnected", "isBluetoothTyle"]),
|
||||
userInfo() {
|
||||
return this.user
|
||||
}
|
||||
},
|
||||
onUnload: async function() {
|
||||
let that = this
|
||||
if (!that.Unload) {
|
||||
clearTimeout(myTime)
|
||||
that.$store.state.devicesList2 = []
|
||||
console.log("页面返回onUnload")
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
isConnected: function() {
|
||||
let that = this
|
||||
if (!that.isConnected) {
|
||||
|
||||
that.closeBLEConnection()
|
||||
that.closeBluetoothAdapter()
|
||||
|
||||
if(that.isConnection != 1) {
|
||||
let pages = getCurrentPages();
|
||||
pages[pages.length - 2].$vm.islink = -1;
|
||||
pages[pages.length - 2].$vm.textLink = '开始连接';
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
isConnected: function() {
|
||||
let that = this
|
||||
if (!that.isConnected) {
|
||||
console.log('F01PRO:isConnected-' + that.isConnected)
|
||||
that.handleBack()
|
||||
that.isConnection = 2
|
||||
}
|
||||
},
|
||||
isBluetoothTyle: function() {
|
||||
let that = this
|
||||
if (!that.isBluetoothTyle) {
|
||||
that.handleBack()
|
||||
that.isConnection = 2
|
||||
}
|
||||
},
|
||||
isBluetoothTyle: function() {
|
||||
let that = this
|
||||
if (!that.isBluetoothTyle) {
|
||||
console.log('F01PRO:isBluetoothTyle-' + that.isBluetoothTyle)
|
||||
that.handleBack()
|
||||
that.isConnection = 2
|
||||
}
|
||||
},
|
||||
},
|
||||
onLoad(options) {
|
||||
let that = this
|
||||
that.textW = ""
|
||||
that.textH = ""
|
||||
console.log("options", options)
|
||||
if (options && options.deviceId) {
|
||||
that.deviceId = options.deviceId
|
||||
that.createBLEConnection()
|
||||
}
|
||||
that.handleBack()
|
||||
that.isConnection = 2
|
||||
}
|
||||
},
|
||||
},
|
||||
onLoad(options) {
|
||||
let that = this
|
||||
that.textW = ""
|
||||
that.textH = ""
|
||||
console.log("options", options)
|
||||
if (options && options.deviceId) {
|
||||
that.deviceId = options.deviceId
|
||||
that.createBLEConnection()
|
||||
}
|
||||
|
||||
that.onBLEConnectionStateChange()
|
||||
uni.onBluetoothAdapterStateChange(function(res) {
|
||||
that.$store.commit("changeBluetooth", res.available);
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 重新连接
|
||||
openBluetoothAdapter() {
|
||||
let that = this
|
||||
that.textW = ""
|
||||
that.textH = ""
|
||||
that.isSend = true
|
||||
that.onBLEConnectionStateChange()
|
||||
uni.onBluetoothAdapterStateChange(function(res) {
|
||||
that.$store.commit("changeBluetooth", res.available);
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 重新连接
|
||||
openBluetoothAdapter() {
|
||||
let that = this
|
||||
that.textW = ""
|
||||
that.textH = ""
|
||||
that.isSend = true
|
||||
that.Unload = false
|
||||
uni.openBluetoothAdapter({
|
||||
success: e => {
|
||||
that.isConnection = 0
|
||||
that.startBluetoothDeviceDiscovery()
|
||||
console.log('初始化蓝牙成功:' + e.errMsg);
|
||||
},
|
||||
fail: e => {
|
||||
that.isConnection = 2
|
||||
that.$tools.msg("请确定设备是开机状态、手机蓝牙权限已打开!")
|
||||
}
|
||||
});
|
||||
},
|
||||
// 监听蓝牙连接状态
|
||||
onBLEConnectionStateChange() {
|
||||
let that = this
|
||||
uni.onBLEConnectionStateChange(function(res) {
|
||||
console.log('F01PRO:onBLEConnectionStateChange-' + that.Unload)
|
||||
if (!res.connected) {
|
||||
that.Unload = true
|
||||
that.isConnection = 2
|
||||
clearTimeout(myTime);
|
||||
that.closeBLEConnection()
|
||||
that.closeBluetoothAdapter()
|
||||
}
|
||||
that.$store.commit("changeConnected", res.connected);
|
||||
})
|
||||
},
|
||||
// 开始搜寻附近的蓝牙外围设备
|
||||
startBluetoothDeviceDiscovery() {
|
||||
let that = this
|
||||
uni.startBluetoothDevicesDiscovery({
|
||||
allowDuplicatesKey: false,
|
||||
interval: 500, //上报设备的间隔
|
||||
success: res => {
|
||||
that.isConnection = 0
|
||||
that.onBluetoothDeviceFound();
|
||||
},
|
||||
fail: res => {
|
||||
that.isConnection = 2
|
||||
that.$tools.msg("请确定设备是开机状态、手机蓝牙权限已打开!")
|
||||
}
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 发现外围设备
|
||||
*/
|
||||
onBluetoothDeviceFound() {
|
||||
var that = this;
|
||||
that.isConnection = 0
|
||||
uni.onBluetoothDeviceFound(res => {
|
||||
res.devices.forEach(device => {
|
||||
if (!device.name && !device.localName) {
|
||||
return
|
||||
}
|
||||
if (device.name.indexOf('AiLink_') != -1 || device.name.indexOf('PCF01') != -1 || (device.localName && (device.localName
|
||||
.indexOf('AiLink_') != -1 || device.localName
|
||||
.indexOf('PCF01') != -1))) {
|
||||
clearTimeout(myTime);
|
||||
if (device.deviceId.indexOf(that.deviceId) != -1) {
|
||||
that.stopBluetoothDevicesDiscovery()
|
||||
that.deviceId = device.deviceId
|
||||
const foundDevices = that.$store.state.devicesList2
|
||||
const idx = that.$tools.inArray(foundDevices, "deviceId", device.deviceId)
|
||||
if (idx === -1) {
|
||||
that.$store.state.devicesList2.push(device);
|
||||
} else {
|
||||
that.$store.state.devicesList2[idx] = device
|
||||
}
|
||||
that.createBLEConnection()
|
||||
return;
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 停止搜索蓝牙设备
|
||||
*/
|
||||
stopBluetoothDevicesDiscovery() {
|
||||
uni.stopBluetoothDevicesDiscovery({
|
||||
success: e => {
|
||||
console.log("停止搜索蓝牙设备", e)
|
||||
},
|
||||
});
|
||||
},
|
||||
// 连接蓝牙
|
||||
createBLEConnection() {
|
||||
let that = this;
|
||||
uni.createBLEConnection({
|
||||
deviceId: that.deviceId,
|
||||
success: res => {
|
||||
console.log("设备连接成功,获取设备的services", res);
|
||||
that.isConnection = 0
|
||||
that.getBLEDeviceServices();
|
||||
},
|
||||
fail: res => {
|
||||
that.isConnection = 2
|
||||
console.log("设备连接失败,请重新连接", res);
|
||||
}
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取设备的UUID
|
||||
*/
|
||||
getBLEDeviceServices() {
|
||||
let serviceList = [];
|
||||
let that = this;
|
||||
uni.getBLEDeviceServices({
|
||||
deviceId: that.deviceId,
|
||||
success: res => {
|
||||
console.log("获取设备的UUID成功", res)
|
||||
serviceList = res.services;
|
||||
for (let i = 0; i < serviceList.length; i++) {
|
||||
let service = serviceList[i];
|
||||
if (service.uuid.indexOf('FFE0') != -1) {
|
||||
that.serviceId = service.uuid;
|
||||
that.isConnection = 1
|
||||
that.getBLEDeviceCharacteristics(that.deviceId, service.uuid);
|
||||
console.log("设备的FFE0的serviceId: ", that.serviceId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: res => {
|
||||
console.log('获取设备的UUID失败:', res)
|
||||
}
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取指定服务的特征值
|
||||
*/
|
||||
getBLEDeviceCharacteristics(deviceId, serviceId) {
|
||||
let characteristicsList = [];
|
||||
let that = this;
|
||||
uni.getBLEDeviceCharacteristics({
|
||||
deviceId: deviceId,
|
||||
serviceId: serviceId,
|
||||
success: res => {
|
||||
console.log("服务的特征值成功", res)
|
||||
characteristicsList = res.characteristics;
|
||||
for (let i = 0; i < characteristicsList.length; i++) {
|
||||
let item = characteristicsList[i];
|
||||
if (item.uuid.indexOf('0000FFE1') != -1) {
|
||||
that.uuid1 = item.uuid //下发数据
|
||||
} else if (item.uuid.indexOf('0000FFE2') != -1) {
|
||||
that.uuid2 = item.uuid //监听数据
|
||||
} else if (item.uuid.indexOf('0000FFE3') != -1) {
|
||||
that.uuid3 = item.uuid //写入设置
|
||||
}
|
||||
}
|
||||
// 打开监听
|
||||
uni.notifyBLECharacteristicValueChange({
|
||||
deviceId,
|
||||
serviceId,
|
||||
characteristicId: that.uuid2,
|
||||
state: true,
|
||||
})
|
||||
uni.notifyBLECharacteristicValueChange({
|
||||
deviceId,
|
||||
serviceId,
|
||||
characteristicId: that.uuid3,
|
||||
state: true,
|
||||
})
|
||||
// 初始化插件
|
||||
console.log("初始化插件", that.$store.state.devicesList2)
|
||||
that.$store.state.devicesList2[0].serviceId = that.serviceId
|
||||
|
||||
plugin.initPlugin(res.characteristics, that.$store.state.devicesList2[0])
|
||||
uni.onBLECharacteristicValueChange((characteristic) => {
|
||||
let bleData = plugin.parseBleData(characteristic.value)
|
||||
let dw1 = "kg"
|
||||
console.log("bleData", bleData)
|
||||
if (bleData.status == 0) {
|
||||
let sex0 = that.userInfo.gender == 1 ? 1 : 0
|
||||
let sex = "0x0" + sex0.toString(16)
|
||||
let age = "0x" + that.userInfo.age.toString(16)
|
||||
let height = "0x" + that.userInfo.height.toString(16)
|
||||
let arr = [0x01, parseInt(sex), parseInt(age), parseInt(height), 0x00]
|
||||
plugin.sendDataOfA7(arr)
|
||||
console.log("握手成功", arr)
|
||||
} else if (bleData.status == 1) {
|
||||
let payload = that.$tools.ab2hex(bleData.data, '')
|
||||
let typeInfo = payload.substring(4, 6)
|
||||
let type = payload.substring(0, 2)
|
||||
console.log("开始测量", payload)
|
||||
if(type == '03') {
|
||||
uni.openBluetoothAdapter({
|
||||
success: e => {
|
||||
that.isConnection = 0
|
||||
that.startBluetoothDeviceDiscovery()
|
||||
console.log('初始化蓝牙成功:' + e.errMsg);
|
||||
},
|
||||
fail: e => {
|
||||
that.isConnection = 2
|
||||
that.$tools.msg("请确定设备是开机状态、手机蓝牙权限已打开!")
|
||||
}
|
||||
});
|
||||
},
|
||||
// 监听蓝牙连接状态
|
||||
onBLEConnectionStateChange() {
|
||||
let that = this
|
||||
uni.onBLEConnectionStateChange(function(res) {
|
||||
console.log('F01PRO:onBLEConnectionStateChange-' + res.connected)
|
||||
if (!res.connected) {
|
||||
that.Unload = true
|
||||
that.isConnection = 2
|
||||
clearTimeout(myTime);
|
||||
that.closeBLEConnection()
|
||||
that.closeBluetoothAdapter()
|
||||
}
|
||||
that.$store.commit("changeConnected", res.connected);
|
||||
})
|
||||
},
|
||||
// 开始搜寻附近的蓝牙外围设备
|
||||
startBluetoothDeviceDiscovery() {
|
||||
let that = this
|
||||
uni.startBluetoothDevicesDiscovery({
|
||||
allowDuplicatesKey: false,
|
||||
interval: 500, //上报设备的间隔
|
||||
success: res => {
|
||||
that.isConnection = 0
|
||||
that.onBluetoothDeviceFound();
|
||||
},
|
||||
fail: res => {
|
||||
that.isConnection = 2
|
||||
that.$tools.msg("请确定设备是开机状态、手机蓝牙权限已打开!")
|
||||
}
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 发现外围设备
|
||||
*/
|
||||
onBluetoothDeviceFound() {
|
||||
var that = this;
|
||||
that.isConnection = 0
|
||||
uni.onBluetoothDeviceFound(res => {
|
||||
res.devices.forEach(device => {
|
||||
if (!device.name && !device.localName) {
|
||||
return
|
||||
}
|
||||
if (device.name.indexOf('AiLink_') != -1 || device.name.indexOf('PCF01') != -1 || (device
|
||||
.localName && (device.localName
|
||||
.indexOf('AiLink_') != -1 || device.localName
|
||||
.indexOf('PCF01') != -1))) {
|
||||
clearTimeout(myTime);
|
||||
if (device.deviceId.indexOf(that.deviceId) != -1) {
|
||||
that.stopBluetoothDevicesDiscovery()
|
||||
that.deviceId = device.deviceId
|
||||
const foundDevices = that.$store.state.devicesList2
|
||||
const idx = that.$tools.inArray(foundDevices, "deviceId", device.deviceId)
|
||||
if (idx === -1) {
|
||||
that.$store.state.devicesList2.push(device);
|
||||
} else {
|
||||
that.$store.state.devicesList2[idx] = device
|
||||
}
|
||||
that.createBLEConnection()
|
||||
return;
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 停止搜索蓝牙设备
|
||||
*/
|
||||
stopBluetoothDevicesDiscovery() {
|
||||
uni.stopBluetoothDevicesDiscovery({
|
||||
success: e => {
|
||||
console.log("停止搜索蓝牙设备", e)
|
||||
},
|
||||
});
|
||||
},
|
||||
// 连接蓝牙
|
||||
createBLEConnection() {
|
||||
let that = this;
|
||||
uni.createBLEConnection({
|
||||
deviceId: that.deviceId,
|
||||
success: res => {
|
||||
console.log("设备连接成功,获取设备的services", res);
|
||||
that.isConnection = 0
|
||||
that.getBLEDeviceServices();
|
||||
},
|
||||
fail: res => {
|
||||
that.isConnection = 2
|
||||
console.log("设备连接失败,请重新连接", res);
|
||||
}
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取设备的UUID
|
||||
*/
|
||||
getBLEDeviceServices() {
|
||||
let serviceList = [];
|
||||
let that = this;
|
||||
uni.getBLEDeviceServices({
|
||||
deviceId: that.deviceId,
|
||||
success: res => {
|
||||
console.log("获取设备的UUID成功", res)
|
||||
serviceList = res.services;
|
||||
for (let i = 0; i < serviceList.length; i++) {
|
||||
let service = serviceList[i];
|
||||
if (service.uuid.indexOf('FFE0') != -1) {
|
||||
that.serviceId = service.uuid;
|
||||
that.isConnection = 1
|
||||
that.getBLEDeviceCharacteristics(that.deviceId, service.uuid);
|
||||
console.log("设备的FFE0的serviceId: ", that.serviceId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: res => {
|
||||
console.log('获取设备的UUID失败:', res)
|
||||
}
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取指定服务的特征值
|
||||
*/
|
||||
getBLEDeviceCharacteristics(deviceId, serviceId) {
|
||||
let characteristicsList = [];
|
||||
let that = this;
|
||||
uni.getBLEDeviceCharacteristics({
|
||||
deviceId: deviceId,
|
||||
serviceId: serviceId,
|
||||
success: res => {
|
||||
console.log("服务的特征值成功", res)
|
||||
characteristicsList = res.characteristics;
|
||||
for (let i = 0; i < characteristicsList.length; i++) {
|
||||
let item = characteristicsList[i];
|
||||
if (item.uuid.indexOf('0000FFE1') != -1) {
|
||||
that.uuid1 = item.uuid //下发数据
|
||||
} else if (item.uuid.indexOf('0000FFE2') != -1) {
|
||||
that.uuid2 = item.uuid //监听数据
|
||||
} else if (item.uuid.indexOf('0000FFE3') != -1) {
|
||||
that.uuid3 = item.uuid //写入设置
|
||||
}
|
||||
}
|
||||
// 打开监听
|
||||
uni.notifyBLECharacteristicValueChange({
|
||||
deviceId,
|
||||
serviceId,
|
||||
characteristicId: that.uuid2,
|
||||
state: true,
|
||||
})
|
||||
uni.notifyBLECharacteristicValueChange({
|
||||
deviceId,
|
||||
serviceId,
|
||||
characteristicId: that.uuid3,
|
||||
state: true,
|
||||
})
|
||||
// 初始化插件
|
||||
console.log("初始化插件", that.$store.state.devicesList2)
|
||||
that.$store.state.devicesList2[0].serviceId = that.serviceId
|
||||
|
||||
plugin.initPlugin(res.characteristics, that.$store.state.devicesList2[0])
|
||||
uni.onBLECharacteristicValueChange((characteristic) => {
|
||||
let bleData = plugin.parseBleData(characteristic.value)
|
||||
let dw1 = "kg"
|
||||
console.log("bleData", bleData)
|
||||
if (bleData.status == 0) {
|
||||
let sex0 = that.userInfo.gender == 1 ? 1 : 0
|
||||
let sex = "0x0" + sex0.toString(16)
|
||||
let age = "0x" + that.userInfo.age.toString(16)
|
||||
let height = "0x" + that.userInfo.height.toString(16)
|
||||
let arr = [0x01, parseInt(sex), parseInt(age), parseInt(height), 0x00]
|
||||
plugin.sendDataOfA7(arr)
|
||||
console.log("握手成功", arr)
|
||||
} else if (bleData.status == 1) {
|
||||
let payload = that.$tools.ab2hex(bleData.data, '')
|
||||
let typeInfo = payload.substring(4, 6)
|
||||
let type = payload.substring(0, 2)
|
||||
console.log("开始测量", payload)
|
||||
if (type == '03') {
|
||||
console.log('MCU主动请求用户数据')
|
||||
let sex0 = that.userInfo.gender == 1 ? 1 : 0
|
||||
let sex = "0x0" + sex0.toString(16)
|
||||
|
|
@ -301,185 +307,182 @@
|
|||
let arr = [0x01, parseInt(sex), parseInt(age), parseInt(height), 0x00]
|
||||
plugin.sendDataOfA7(arr)
|
||||
}
|
||||
if (type == "10" || type == "30" || type == "40") { //体脂模式
|
||||
let data = parseInt(payload.substring(6, 12), 16)
|
||||
let msg = parseInt(payload.substring(12, 14), 16).toString(2)
|
||||
let dw = that.$tools.PrefixZero(msg, 8).substring(4, 8)
|
||||
let num = that.$tools.PrefixZero(msg, 8).substring(0, 4)
|
||||
let dw1 = "kg"
|
||||
if (dw == "0001") {
|
||||
dw1 = '斤'
|
||||
}
|
||||
if (dw == "0110") {
|
||||
dw1 = 'lb'
|
||||
}
|
||||
if (num == "0001") {
|
||||
data = data / 10
|
||||
}
|
||||
if (num == "0010") {
|
||||
data = data / 100
|
||||
}
|
||||
if (num == "0011") {
|
||||
data = data / 1000
|
||||
}
|
||||
if (typeInfo == "01") {
|
||||
that.textW = "您的实时体重是:" + data + dw1
|
||||
}
|
||||
if (typeInfo == "02") {
|
||||
that.textW = "您的体重是:" + data + dw1
|
||||
that.weight = data + dw1
|
||||
}
|
||||
}
|
||||
if (type == "14" || type == "41") { //身高模式
|
||||
let height = parseInt(payload.substring(4, 8), 16)
|
||||
let numH = parseInt(payload.substring(10, 12), 16)
|
||||
if (numH == "1") {
|
||||
height = height / 10
|
||||
}
|
||||
if (numH == "2") {
|
||||
height = height / 100
|
||||
}
|
||||
that.textH = "您的身高是:" + height + "cm"
|
||||
that.height = height
|
||||
console.log("身高模式:", that.height)
|
||||
}
|
||||
if (type == "11") { //阻抗模式
|
||||
if (typeInfo == "01") { //测量中
|
||||
that.textImp = '正在测量体脂:请双手紧握扶手'
|
||||
if (type == "10" || type == "30" || type == "40") { //体脂模式
|
||||
let data = parseInt(payload.substring(6, 12), 16)
|
||||
let msg = parseInt(payload.substring(12, 14), 16).toString(2)
|
||||
let dw = that.$tools.PrefixZero(msg, 8).substring(4, 8)
|
||||
let num = that.$tools.PrefixZero(msg, 8).substring(0, 4)
|
||||
let dw1 = "kg"
|
||||
if (dw == "0001") {
|
||||
dw1 = '斤'
|
||||
}
|
||||
if (typeInfo == "02") {
|
||||
that.imp = 0
|
||||
if (dw == "0110") {
|
||||
dw1 = 'lb'
|
||||
}
|
||||
if (num == "0001") {
|
||||
data = data / 10
|
||||
}
|
||||
if (num == "0010") {
|
||||
data = data / 100
|
||||
}
|
||||
if (num == "0011") {
|
||||
data = data / 1000
|
||||
}
|
||||
if (typeInfo == "01") {
|
||||
that.textW = "您的实时体重是:" + data + dw1
|
||||
}
|
||||
if (typeInfo == "02") {
|
||||
that.textW = "您的体重是:" + data + dw1
|
||||
that.weight = data + dw1
|
||||
}
|
||||
}
|
||||
if (type == "14" || type == "41") { //身高模式
|
||||
let height = parseInt(payload.substring(4, 8), 16)
|
||||
let numH = parseInt(payload.substring(10, 12), 16)
|
||||
if (numH == "1") {
|
||||
height = height / 10
|
||||
}
|
||||
if (numH == "2") {
|
||||
height = height / 100
|
||||
}
|
||||
that.textH = "您的身高是:" + height + "cm"
|
||||
that.height = height
|
||||
console.log("身高模式:", that.height)
|
||||
}
|
||||
if (type == "11") { //阻抗模式
|
||||
if (typeInfo == "01") { //测量中
|
||||
that.textImp = '正在测量体脂:请双手紧握扶手'
|
||||
}
|
||||
if (typeInfo == "02") {
|
||||
that.imp = 0
|
||||
that.textImp = ""
|
||||
}
|
||||
if (typeInfo == "04") {
|
||||
}
|
||||
if (typeInfo == "04") {
|
||||
that.textImp = ""
|
||||
that.imp = parseInt(payload.substring(8, 12), 16)
|
||||
}
|
||||
console.log("阻抗:", that.imp)
|
||||
}
|
||||
if (type == '15') {
|
||||
if (typeInfo == "01") {
|
||||
that.data01 = {
|
||||
bodyage: parseInt(payload.substring(26, 28),
|
||||
16),
|
||||
fat_r: parseInt(payload.substring(6, 10),
|
||||
16) / 10,
|
||||
muscle: parseInt(payload.substring(18, 22),
|
||||
16) / 10,
|
||||
kcal: parseInt(payload.substring(22, 26),
|
||||
16),
|
||||
visceral: parseInt(payload.substring(14,
|
||||
18), 16),
|
||||
sfr: parseInt(payload.substring(10, 14),
|
||||
16) / 10,
|
||||
}
|
||||
}
|
||||
if (typeInfo == '02') {
|
||||
that.data02 = {
|
||||
water: parseInt(payload.substring(10, 14),
|
||||
16) / 10,
|
||||
bone: parseInt(payload.substring(6, 10),
|
||||
16) / 10,
|
||||
fatlevlval: parseInt(payload.substring(24,
|
||||
26), 16) /
|
||||
10,
|
||||
protein: parseInt(payload.substring(14, 18),
|
||||
16) / 10,
|
||||
bmi: parseInt(payload.substring(18, 22),
|
||||
16) / 10,
|
||||
}
|
||||
}
|
||||
console.log("体脂数据", that.data01, that.data02)
|
||||
that.BLEResult.info = Object.assign(that.data01, that.data02)
|
||||
}
|
||||
if (type == "80") { //测量结束
|
||||
that.BLEResult.weight = that.weight
|
||||
that.BLEResult.adc = that.imp ? that.imp : 0
|
||||
that.BLEResult.height = (that.height ? that.height : that.userInfo.height) + 'cm'
|
||||
that.BLEResult.aud_id = that.userInfo.id
|
||||
console.log("体脂成功:", that.BLEResult)
|
||||
that.handleGetMeasure(that.BLEResult)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
fail: res => {
|
||||
console.log('获取特征值失败:', JSON.stringify(res))
|
||||
}
|
||||
})
|
||||
},
|
||||
// 保存测量结果
|
||||
handleGetMeasure(data) {
|
||||
console.log("保存结果")
|
||||
let that = this
|
||||
that.$model.getmeasurefunit(data).then(res => {
|
||||
if (res.code == 0) {
|
||||
that.$store.dispatch('getUserInfo', {
|
||||
aud_id: uni.getStorageSync('userid')
|
||||
})
|
||||
that.$store.dispatch("getResult", {
|
||||
aud_id: uni.getStorageSync('userid')
|
||||
})
|
||||
that.imp = parseInt(payload.substring(8, 12), 16)
|
||||
}
|
||||
console.log("阻抗:", that.imp)
|
||||
}
|
||||
if (type == '15') {
|
||||
if (typeInfo == "01") {
|
||||
that.data01 = {
|
||||
bodyage: parseInt(payload.substring(26, 28),
|
||||
16),
|
||||
fat_r: parseInt(payload.substring(6, 10),
|
||||
16) / 10,
|
||||
muscle: parseInt(payload.substring(18, 22),
|
||||
16) / 10,
|
||||
kcal: parseInt(payload.substring(22, 26),
|
||||
16),
|
||||
visceral: parseInt(payload.substring(14,
|
||||
18), 16),
|
||||
sfr: parseInt(payload.substring(10, 14),
|
||||
16) / 10,
|
||||
}
|
||||
}
|
||||
if (typeInfo == '02') {
|
||||
that.data02 = {
|
||||
water: parseInt(payload.substring(10, 14),
|
||||
16) / 10,
|
||||
bone: parseInt(payload.substring(6, 10),
|
||||
16) / 10,
|
||||
fatlevlval: parseInt(payload.substring(24,
|
||||
26), 16) /
|
||||
10,
|
||||
protein: parseInt(payload.substring(14, 18),
|
||||
16) / 10,
|
||||
bmi: parseInt(payload.substring(18, 22),
|
||||
16) / 10,
|
||||
}
|
||||
}
|
||||
console.log("体脂数据", that.data01, that.data02)
|
||||
that.BLEResult.info = Object.assign(that.data01, that.data02)
|
||||
}
|
||||
if (type == "80") { //测量结束
|
||||
that.BLEResult.weight = that.weight
|
||||
that.BLEResult.adc = that.imp ? that.imp : 0
|
||||
that.BLEResult.height = (that.height ? that.height : that.userInfo.height) + 'cm'
|
||||
that.BLEResult.aud_id = that.userInfo.id
|
||||
console.log("体脂成功:", that.BLEResult)
|
||||
that.handleGetMeasure(that.BLEResult)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
fail: res => {
|
||||
console.log('获取特征值失败:', JSON.stringify(res))
|
||||
}
|
||||
})
|
||||
},
|
||||
// 保存测量结果
|
||||
handleGetMeasure(data) {
|
||||
console.log("保存结果")
|
||||
let that = this
|
||||
that.$model.getmeasurefunit(data).then(res => {
|
||||
if (res.code == 0) {
|
||||
that.$store.dispatch('getUserInfo', {
|
||||
aud_id: uni.getStorageSync('userid')
|
||||
})
|
||||
that.$store.dispatch("getResult", {
|
||||
aud_id: uni.getStorageSync('userid')
|
||||
})
|
||||
setTimeout(() => {
|
||||
uni.showToast({
|
||||
title: '测量成功'
|
||||
})
|
||||
},500)
|
||||
} else {
|
||||
}, 500)
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: res.message,
|
||||
icon:"error"
|
||||
icon: "error"
|
||||
})
|
||||
}
|
||||
that.Unload = true
|
||||
setTimeout(function() {
|
||||
}
|
||||
that.Unload = true
|
||||
setTimeout(function() {
|
||||
that.closeBLEConnection()
|
||||
that.closeBluetoothAdapter()
|
||||
that.$store.state.devicesList2 = []
|
||||
// setTimeout(() => {
|
||||
// let pages = getCurrentPages();
|
||||
// pages[pages.length - 2].$vm.getBlereload();
|
||||
// },1000)
|
||||
uni.switchTab({
|
||||
url: "/pages/home/home"
|
||||
})
|
||||
}, 1000)
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 断开蓝牙模块
|
||||
*/
|
||||
closeBluetoothAdapter() {
|
||||
let that = this;
|
||||
uni.closeBluetoothAdapter({
|
||||
success: res => {
|
||||
console.log('F01PRO:蓝牙模块关闭成功');
|
||||
}
|
||||
})
|
||||
},
|
||||
handleBack() {
|
||||
let that = this
|
||||
that.Unload = true
|
||||
|
||||
uni.switchTab({
|
||||
url: "/pages/home/home"
|
||||
})
|
||||
}, 1000)
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 断开蓝牙模块
|
||||
*/
|
||||
closeBluetoothAdapter() {
|
||||
let that = this;
|
||||
uni.closeBluetoothAdapter({
|
||||
success: res => {
|
||||
console.log('F01PRO:蓝牙模块关闭成功');
|
||||
}
|
||||
})
|
||||
},
|
||||
handleBack() {
|
||||
let that = this
|
||||
that.Unload = true
|
||||
console.log('F01PRO:handleBack');
|
||||
that.stopBluetoothDevicesDiscovery() //取消蓝牙搜索
|
||||
that.closeBLEConnection()
|
||||
that.closeBluetoothAdapter()
|
||||
that.stopBluetoothDevicesDiscovery() //取消蓝牙搜索
|
||||
that.closeBLEConnection()
|
||||
that.closeBluetoothAdapter()
|
||||
that.$store.state.devicesList2 = []
|
||||
},
|
||||
/**
|
||||
* 断开蓝牙连接
|
||||
*/
|
||||
closeBLEConnection() {
|
||||
var that = this;
|
||||
uni.closeBLEConnection({
|
||||
deviceId: that.deviceId,
|
||||
success: res => {
|
||||
console.log('F01PRO:断开蓝牙连接成功');
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 断开蓝牙连接
|
||||
*/
|
||||
closeBLEConnection() {
|
||||
var that = this;
|
||||
uni.closeBLEConnection({
|
||||
deviceId: that.deviceId,
|
||||
success: res => {
|
||||
console.log('F01PRO:断开蓝牙连接成功');
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@
|
|||
watch: {
|
||||
isConnected: function() {
|
||||
let that = this
|
||||
console.log("Home:isConnected-", that.isConnected)
|
||||
console.log("------------Home:isConnected-", that.isConnected)
|
||||
if (!that.isConnected) {
|
||||
that.textLink = "开始连接"
|
||||
that.islink = -1
|
||||
|
|
@ -390,7 +390,7 @@
|
|||
},
|
||||
isBluetoothTyle: function() {
|
||||
let that = this
|
||||
console.log("Home:isBluetoothTyle-", that.isBluetoothTyle)
|
||||
console.log("-------------Home:isBluetoothTyle-", that.isBluetoothTyle)
|
||||
if (!that.isBluetoothTyle) {
|
||||
that.textLink = "开始连接"
|
||||
that.islink = -1
|
||||
|
|
@ -660,7 +660,6 @@
|
|||
let that = this
|
||||
const foundDevices = that.devicesList
|
||||
const idx = that.$tools.inArray(foundDevices, "deviceId", device.deviceId)
|
||||
console.log("1111111", device.name)
|
||||
if (idx === -1) {
|
||||
// 体脂秤
|
||||
if (device.name.toLowerCase().indexOf("pcl") != -1) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
<view class="data-v-5409745b"><view class="content weightPages data-v-5409745b"><block wx:if="{{isConnection==0}}"><view class="title data-v-5409745b">连接中,请稍后</view></block><block wx:if="{{isConnection==1}}"><view class="title data-v-5409745b">连接成功,请开始测量</view></block><block wx:if="{{isConnection==2}}"><view data-event-opts="{{[['tap',[['openBluetoothAdapter',['$event']]]]]}}" class="title data-v-5409745b" bindtap="__e">连接失败,点击重新连接</view></block><view class="text data-v-5409745b">{{textW}}</view><view class="text data-v-5409745b">{{textH}}</view><block wx:if="{{textImp!=''}}"><view class="text data-v-5409745b">{{textImp}}</view></block><view class="image data-v-5409745b" style="margin-top:200rpx;"><image src="/pageTwo/static/F018P01.gif" mode="widthFix" class="data-v-5409745b"></image></view><view class="tips data-v-5409745b"><text class="data-v-5409745b">请确保:</text><text class="data-v-5409745b">1.请确定设备是开机状态</text><text class="data-v-5409745b">2.请确定手机蓝牙、位置信息已打开</text><text class="data-v-5409745b">3.ios系统需打开设置—>应用—>微信里的蓝牙权限</text></view></view></view>
|
||||
<view class="data-v-4c084893"><view class="content weightPages data-v-4c084893"><block wx:if="{{isConnection==0}}"><view class="title data-v-4c084893">连接中,请稍后</view></block><block wx:if="{{isConnection==1}}"><view class="title data-v-4c084893">连接成功,请开始测量</view></block><block wx:if="{{isConnection==2}}"><view data-event-opts="{{[['tap',[['openBluetoothAdapter',['$event']]]]]}}" class="title data-v-4c084893" bindtap="__e">连接失败,点击重新连接</view></block><view class="text data-v-4c084893">{{textW}}</view><view class="text data-v-4c084893">{{textH}}</view><block wx:if="{{textImp!=''}}"><view class="text data-v-4c084893">{{textImp}}</view></block><view class="image data-v-4c084893" style="margin-top:200rpx;"><image src="/pageTwo/static/F018P01.gif" mode="widthFix" class="data-v-4c084893"></image></view><view class="tips data-v-4c084893"><text class="data-v-4c084893">请确保:</text><text class="data-v-4c084893">1.请确定设备是开机状态</text><text class="data-v-4c084893">2.请确定手机蓝牙、位置信息已打开</text><text class="data-v-4c084893">3.ios系统需打开设置—>应用—>微信里的蓝牙权限</text></view></view></view>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -140,6 +140,8 @@ Object.defineProperty(exports, "__esModule", {
|
|||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 462));
|
||||
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 465));
|
||||
var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11));
|
||||
var _vuex = __webpack_require__(/*! vuex */ 34);
|
||||
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
||||
|
|
@ -174,17 +176,37 @@ var _default = {
|
|||
return this.user;
|
||||
}
|
||||
}),
|
||||
onUnload: function onUnload() {
|
||||
var that = this;
|
||||
console.log('F01PRO:onUnload-' + that.Unload);
|
||||
if (!that.Unload) {
|
||||
clearTimeout(myTime);
|
||||
that.closeBLEConnection();
|
||||
that.closeBluetoothAdapter();
|
||||
that.$store.state.devicesList2 = [];
|
||||
console.log("页面返回onUnload");
|
||||
onUnload: function () {
|
||||
var _onUnload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
||||
var that, pages;
|
||||
return _regenerator.default.wrap(function _callee$(_context) {
|
||||
while (1) {
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
that = this;
|
||||
if (!that.Unload) {
|
||||
clearTimeout(myTime);
|
||||
that.$store.state.devicesList2 = [];
|
||||
that.closeBLEConnection();
|
||||
that.closeBluetoothAdapter();
|
||||
if (that.isConnection != 1) {
|
||||
pages = getCurrentPages();
|
||||
pages[pages.length - 2].$vm.islink = -1;
|
||||
pages[pages.length - 2].$vm.textLink = '开始连接';
|
||||
}
|
||||
}
|
||||
case 2:
|
||||
case "end":
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee, this);
|
||||
}));
|
||||
function onUnload() {
|
||||
return _onUnload.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
return onUnload;
|
||||
}(),
|
||||
watch: {
|
||||
isConnected: function isConnected() {
|
||||
var that = this;
|
||||
|
|
@ -241,7 +263,7 @@ var _default = {
|
|||
onBLEConnectionStateChange: function onBLEConnectionStateChange() {
|
||||
var that = this;
|
||||
uni.onBLEConnectionStateChange(function (res) {
|
||||
console.log('F01PRO:onBLEConnectionStateChange-' + that.Unload);
|
||||
console.log('F01PRO:onBLEConnectionStateChange-' + res.connected);
|
||||
if (!res.connected) {
|
||||
that.Unload = true;
|
||||
that.isConnection = 2;
|
||||
|
|
@ -545,10 +567,6 @@ var _default = {
|
|||
that.closeBLEConnection();
|
||||
that.closeBluetoothAdapter();
|
||||
that.$store.state.devicesList2 = [];
|
||||
// setTimeout(() => {
|
||||
// let pages = getCurrentPages();
|
||||
// pages[pages.length - 2].$vm.getBlereload();
|
||||
// },1000)
|
||||
uni.switchTab({
|
||||
url: "/pages/home/home"
|
||||
});
|
||||
|
|
|
|||
|
|
@ -436,7 +436,7 @@ var _default = {
|
|||
watch: {
|
||||
isConnected: function isConnected() {
|
||||
var that = this;
|
||||
console.log("Home:isConnected-", that.isConnected);
|
||||
console.log("------------Home:isConnected-", that.isConnected);
|
||||
if (!that.isConnected) {
|
||||
that.textLink = "开始连接";
|
||||
that.islink = -1;
|
||||
|
|
@ -444,7 +444,7 @@ var _default = {
|
|||
},
|
||||
isBluetoothTyle: function isBluetoothTyle() {
|
||||
var that = this;
|
||||
console.log("Home:isBluetoothTyle-", that.isBluetoothTyle);
|
||||
console.log("-------------Home:isBluetoothTyle-", that.isBluetoothTyle);
|
||||
if (!that.isBluetoothTyle) {
|
||||
that.textLink = "开始连接";
|
||||
that.islink = -1;
|
||||
|
|
@ -713,7 +713,6 @@ var _default = {
|
|||
var that = this;
|
||||
var foundDevices = that.devicesList;
|
||||
var idx = that.$tools.inArray(foundDevices, "deviceId", device.deviceId);
|
||||
console.log("1111111", device.name);
|
||||
if (idx === -1) {
|
||||
// 体脂秤
|
||||
if (device.name.toLowerCase().indexOf("pcl") != -1) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue