完成HBY102

This commit is contained in:
liub
2025-11-17 15:30:57 +08:00
parent cb9ed0b1da
commit 18fd446b07
8 changed files with 164 additions and 51 deletions

View File

@ -6,6 +6,11 @@ const serviceDic = [ //合作供应商的蓝牙主服务
"writeId": "0000FFE1-0000-1000-8000-00805F9B34FB",
"notifyId": "0000FFE2-0000-1000-8000-00805F9B34FB"
},
{
"serviceId": "0000FFF0-0000-1000-8000-00805F9B34FB",
"writeId": "0000FFF2-0000-1000-8000-00805F9B34FB",
"notifyId": "0000FFF1-0000-1000-8000-00805F9B34FB"
},
{
"serviceId": "0000AE30-0000-1000-8000-00805F9B34FB",
"writeId": "0000AE03-0000-1000-8000-00805F9B34FB",
@ -638,9 +643,9 @@ class BleHelper {
let arr = [];
for (var i = 0; i < res.devices.length; i++) {
let item = res.devices[i];
if(item.name){
console.log("发现新设备",item.name+" "+item.RSSI);
}
// if(item.name){
// console.log("发现新设备",item.name+" "+item.RSSI);
// }
let f = serviceDic.find(v => {
return item.advertisServiceUUIDs
@ -648,7 +653,7 @@ class BleHelper {
});
if (f) {
console.log("发现目标设备:", item);
// console.log("发现目标设备:", item);
arr.push(item);
}
@ -1203,7 +1208,7 @@ class BleHelper {
deviceId: id,
success: (res) => {
if (res.services && res.services.length > 0) {
// console.log("获取到服务:" + JSON.stringify(res));
console.log("获取到服务:" + JSON.stringify(res));
this.data.LinkedList.find((v) => {
if (v.deviceId == id) {
@ -1228,7 +1233,7 @@ class BleHelper {
});
if (se) {
// console.log("合作供应商的", s)
console.log("合作供应商的", s)
this.data.LinkedList.find((v) => {
if (v.deviceId == id) {
v.writeServiceId = s.serviceId;
@ -1246,7 +1251,9 @@ class BleHelper {
// notifyCharId));
} else {
} else
{
console.error("预设的蓝牙服务和特征中找不到");
for (var i = 0; i < res.services.length; i++) {
let service = res.services[i];
@ -1266,6 +1273,7 @@ class BleHelper {
Promise.all(promises)
.then(results => {
console.log("results= ",results);
if (!s) {
//非指定供应商的设备,走订阅消息
return this.subScribe(id, true);
@ -1326,10 +1334,10 @@ class BleHelper {
serviceId: serviceId,
success: (res) => {
// console.log("获取到特征:" + JSON.stringify(res));
// res.characteristics.forEach((v) => {
// v.serviceId = serviceId;
// });
console.log("获取到特征:" + JSON.stringify(res));
res.characteristics.forEach((v) => {
v.serviceId = serviceId;
});
//写特征
let writeChar = res.characteristics.find(char => {

View File

@ -7,7 +7,8 @@ class BleReceive {
'/pages/650/HBY650': this.Receive_650.bind(this),
'/pages/670/HBY670': this.Receive_670.bind(this),
'/pages/4877/BJQ4877': this.Receive_4877.bind(this),
'/pages/100/HBY100': this.Receive_100.bind(this)
'/pages/100/HBY100': this.Receive_100.bind(this),
'/pages/102/HBY102':this.Receive_102.bind(this)
};
}
@ -560,6 +561,44 @@ class BleReceive {
}
Receive_102(receive,f,path,recArr){
let receiveData={};
try {
console.log("str=",receive.str);
receiveData = JSON.parse(receive.str);
let recCnt = recArr.find(v => {
return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl
.replace(/\//g, "").toLowerCase();
});
if (!recCnt) {
if (receiveData.sta_PowerPercent<=20) {
uni.showModal({
title: "提示",
content: "设备电量低",
showCancel: false
});
}
if (receiveData.sta_Intrusion===1) {
uni.showModal({
title: "提示",
content: "闯入报警中",
showCancel: false
});
}
}
} catch (error) {
receiveData = {};
console.log("文本解析失败",error)
}
return receiveData;
}
}

View File

@ -363,4 +363,16 @@ export default {
});
},
getOSAndUpload(){
let os=uni.getSystemInfoSync().platform;
let url=''
if(os==='ios'){
url='https://apps.apple.com/cn/app/星汉物联/id6752555460'
}
else if(os==='android'){
url='https://www.pgyer.com/xhwl';
}
return {os:os,url:url};
}
}

View File

@ -1,5 +1,5 @@
import config from '../config/index.js';
export const env = 'production'; //production development //开发of线上 改这里就行
export const env = 'development'; //production development //开发of线上 改这里就行
const BASE = config[env];
const request = (options) => {
console.log("options"+JSON.stringify(options),BASE.BASE_URL)

View File

@ -1,7 +1,7 @@
import request, {
baseURL
} from '@/utils/request.js'
import Common from '@/utils/Common.js'
/**
* 检查并执行wgt热更新
* @param {String} updateUrl - 检查更新的接口地址
@ -178,10 +178,20 @@ function downloadAndInstallWgt(wgtUrl) {
var wating = plus.nativeUI.showWaiting({
title: "下载中0%"
});
// uni.showLoading({
// title: '更新下载中...',
// mask: true
// });
//手动更新
let ManualUpdate=()=>{
setTimeout(()=>{
let url=Common.getOSAndUpload().url
plus.runtime.openURL(url, (res) => {
uni.showToast({
title: '打开失败',
icon: 'none'
});
});
},1000);
}
// 1. 下载wgt包
const downloadTask = uni.downloadFile({
@ -219,20 +229,22 @@ function downloadAndInstallWgt(wgtUrl) {
wating.close();
uni.showToast({
title: '安装失败: ' + error.message,
title: '安装失败,请手动下载更新;' + error.message,
icon: 'none',
duration: 3000
});
console.error('wgt安装失败:', error);
ManualUpdate();
});
} else {
wating.close();
uni.showToast({
title: '下载失败',
title: '下载失败,请手动下载更新;',
icon: 'none',
duration: 2000
});
ManualUpdate();
}
},
fail: (err) => {
@ -243,6 +255,7 @@ function downloadAndInstallWgt(wgtUrl) {
duration: 2000
});
console.error('wgt下载失败:', err);
ManualUpdate();
}
});