蓝牙添加连接、断开、可用、不可用控制
This commit is contained in:
@ -34,6 +34,10 @@
|
||||
<text class="lbl">充电状态</text>
|
||||
<text class="value">{{formData.statu}}</text>
|
||||
</view>
|
||||
<view class="item">
|
||||
<text class="lbl">蓝牙状态</text>
|
||||
<text class="value" :class="formData.bleStatu?'green':'red'">{{formData.bleStatu?'已连接':'未连接'}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="lamp">
|
||||
<view class="title">
|
||||
@ -124,8 +128,8 @@
|
||||
:borderColor="Status.Pop.borderColor" :textColor="Status.Pop.textColor"
|
||||
:buttonBgColor="Status.Pop.buttonBgColor" :buttonTextColor="Status.Pop.buttonTextColor"
|
||||
:iconUrl="Status.Pop.iconUrl" :message="Status.Pop.message" :buttonText="Status.Pop.buttonText"
|
||||
@buttonClick="HidePop" @closePop="closePop" :visiblePrompt="Status.Pop.visiblePrompt" :promptTitle="Status.Pop.promptTitle"
|
||||
v-model="Status.Pop.modelValue" />
|
||||
@buttonClick="HidePop" @closePop="closePop" :visiblePrompt="Status.Pop.visiblePrompt"
|
||||
:promptTitle="Status.Pop.promptTitle" v-model="Status.Pop.modelValue" />
|
||||
|
||||
<!-- 下方菜单 -->
|
||||
<BottomSlideMenuPlus :config="Status.BottomMenu" @close="closeMenu" @itemClick="handleItemClick"
|
||||
@ -152,7 +156,7 @@
|
||||
updateLoading
|
||||
} from '@/utils/loading.js'
|
||||
import BleReceive from '@/utils/BleReceive';
|
||||
|
||||
var pagePath = "pages/6155/HBY6155";
|
||||
|
||||
var ble = null;
|
||||
var these = null;
|
||||
@ -166,6 +170,7 @@
|
||||
data() {
|
||||
return {
|
||||
Status: {
|
||||
pageHide: false,
|
||||
Pop: {
|
||||
showPop: false, //是否显示弹窗
|
||||
popType: 'custom',
|
||||
@ -182,7 +187,7 @@
|
||||
promptTitle: '设备名称',
|
||||
modelValue: '',
|
||||
visibleClose: false,
|
||||
okCallback:null
|
||||
okCallback: null
|
||||
},
|
||||
BottomMenu: {
|
||||
show: false,
|
||||
@ -232,7 +237,8 @@
|
||||
id: '',
|
||||
deviceId: '',
|
||||
textLines: ['', '', ''],
|
||||
mode: ''
|
||||
mode: '',
|
||||
bleStatu: ''
|
||||
},
|
||||
inteval: 200,
|
||||
device: {
|
||||
@ -258,7 +264,7 @@
|
||||
}
|
||||
},
|
||||
onUnload() {
|
||||
ble.removeReceiveCallback(this);
|
||||
ble.removeAllCallback(pagePath);
|
||||
},
|
||||
onLoad: function() {
|
||||
these = this;
|
||||
@ -310,7 +316,12 @@
|
||||
// link();
|
||||
// }
|
||||
console.log("6155");
|
||||
ble.addReceiveCallback(these.bleValueNotify);
|
||||
ble.addReceiveCallback(these.bleValueNotify, pagePath);
|
||||
ble.addStateBreakCallback(these.bleStateBreak, pagePath);
|
||||
ble.addStateRecoveryCallback(these.bleStateRecovry, pagePath);
|
||||
ble.addDisposeCallback(these.deviceDispose, pagePath);
|
||||
ble.addRecoveryCallback(these.deviceRecovry, pagePath);
|
||||
|
||||
let eventChannel = this.getOpenerEventChannel();
|
||||
|
||||
eventChannel.on('detailData', function(data) {
|
||||
@ -346,7 +357,9 @@
|
||||
these.formData.img = device.devicePic;
|
||||
these.formData.id = device.id;
|
||||
these.formData.deviceId = f.deviceId;
|
||||
ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId);
|
||||
ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId).then(res => {
|
||||
these.formData.bleStatu = true;
|
||||
});
|
||||
these.setBleFormData();
|
||||
these.getDetail();
|
||||
|
||||
@ -355,7 +368,10 @@
|
||||
|
||||
},
|
||||
onHide: function() {
|
||||
|
||||
this.Status.pageHide = true;
|
||||
},
|
||||
onShow() {
|
||||
this.Status.pageHide = false;
|
||||
},
|
||||
onBackPress(e) {
|
||||
|
||||
@ -410,13 +426,83 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
previewImg(img){
|
||||
if(!img){
|
||||
deviceRecovry(res) {
|
||||
if (this.Status.pageHide) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (res.deviceId == these.formData.deviceId) {
|
||||
this.formData.bleStatu = true;
|
||||
setTimeout(() => {
|
||||
hideLoading(these, 1000);
|
||||
});
|
||||
uni.showToast({
|
||||
icon: 'success',
|
||||
title: '蓝牙连接成功'
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
deviceDispose(res) {
|
||||
if (this.Status.pageHide) {
|
||||
return;
|
||||
}
|
||||
if (res.deviceId == these.formData.deviceId) {
|
||||
this.formData.bleStatu = false;
|
||||
setTimeout(() => {
|
||||
hideLoading(these, 1000);
|
||||
});
|
||||
uni.showToast({
|
||||
icon: 'fail',
|
||||
title: '蓝牙连接已断开'
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
bleStateBreak() {
|
||||
if (this.Status.pageHide) {
|
||||
return;
|
||||
}
|
||||
//蓝牙适配器不可用
|
||||
this.formData.bleStatu = false;
|
||||
uni.showToast({
|
||||
icon: 'fail',
|
||||
title: '蓝牙已不可用'
|
||||
})
|
||||
hideLoading(this);
|
||||
},
|
||||
bleStateRecovry() {
|
||||
console.log("蓝牙可用");
|
||||
if (this.Status.pageHide) {
|
||||
return;
|
||||
}
|
||||
console.log("蓝牙可用");
|
||||
//蓝牙适配器再次可用,尝试恢复连接
|
||||
showLoading(this, {
|
||||
text: "蓝牙恢复可用,正在连接设备"
|
||||
});
|
||||
ble.LinkBlue(these.formData.deviceId).then(() => {
|
||||
these.formData.bleStatu = true;
|
||||
updateLoading(these, {
|
||||
text: '连接成功'
|
||||
});
|
||||
}).catch(ex => {
|
||||
updateLoading(these, {
|
||||
text: ex.msg
|
||||
})
|
||||
}).finally(() => {
|
||||
setTimeout(() => {
|
||||
hideLoading(these);
|
||||
}, 1000);
|
||||
|
||||
});
|
||||
},
|
||||
previewImg(img) {
|
||||
if (!img) {
|
||||
return;
|
||||
}
|
||||
|
||||
uni.previewImage({
|
||||
urls:[img]
|
||||
urls: [img]
|
||||
})
|
||||
},
|
||||
getDevice: function() {
|
||||
@ -429,18 +515,20 @@
|
||||
return f;
|
||||
},
|
||||
bleValueNotify: function(receive, device, path) {
|
||||
|
||||
let json = recei.ReceiveData(receive, device, path);
|
||||
if(!json){
|
||||
if (this.Status.pageHide) {
|
||||
return;
|
||||
}
|
||||
let keys=Object.keys(json);
|
||||
keys.forEach((key)=>{
|
||||
if(key in these.formData){
|
||||
these.formData[key] = json[key];
|
||||
}
|
||||
let json = recei.ReceiveData(receive, device, path);
|
||||
if (!json) {
|
||||
return;
|
||||
}
|
||||
let keys = Object.keys(json);
|
||||
keys.forEach((key) => {
|
||||
if (key in these.formData) {
|
||||
these.formData[key] = json[key];
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if (this.formData.battary <= 20) {
|
||||
this.showPop({
|
||||
message: "设备电量低",
|
||||
@ -490,6 +578,7 @@
|
||||
events: {
|
||||
BindOver: function(data) {
|
||||
console.log(data)
|
||||
these.formData.bleStatu = true;
|
||||
}
|
||||
},
|
||||
success: function(res) {
|
||||
@ -921,12 +1010,12 @@
|
||||
|
||||
},
|
||||
closePop: function() {
|
||||
this.Status.Pop.showPop = false;
|
||||
|
||||
if (this.Status.Pop.cancelCallback) {
|
||||
this.Status.Pop.cancelCallback();
|
||||
}
|
||||
},
|
||||
this.Status.Pop.showPop = false;
|
||||
|
||||
if (this.Status.Pop.cancelCallback) {
|
||||
this.Status.Pop.cancelCallback();
|
||||
}
|
||||
},
|
||||
HidePop: function() {
|
||||
// console.log("1111");
|
||||
if (this.Status.Pop.clickEvt == 'SendUsr') {
|
||||
|
||||
Reference in New Issue
Block a user