1
0
forked from dyf/APP

修复不在控制页时收到蓝牙消息,进入设备页后未同步显示的问题

This commit is contained in:
liub
2026-02-13 11:50:30 +08:00
parent fc88bd6f7d
commit 27097fecc4
2 changed files with 13 additions and 18 deletions

View File

@ -779,23 +779,23 @@ class BleHelper {
str: str, str: str,
hexs: hexs hexs: hexs
}; };
console.log("监听到特征值:" + JSON.stringify(recData)); // console.log("监听到特征值:",recData);
if (this.cfg.receivDataCallback) { if (this.cfg.receivDataCallback) {
if (this.cfg.receivDataCallback.length > 0) { if (this.cfg.receivDataCallback.length > 0) {
console.log("有人订阅消息") // console.log("有人订阅消息")
this.cfg.receivDataCallback.forEach(( this.cfg.receivDataCallback.forEach((
rec) => { rec) => {
console.log("有人订阅消息111", ) // console.log("有人订阅消息111", )
if (rec.callback) { if (rec.callback) {
try { try {
console.log("正在处理订阅消息",rec); // console.log("正在处理订阅消息",rec);
rec.callback(recData, f, rec.callback(recData, f,
rec.key, this.cfg rec.key, this.cfg
.receivDataCallback .receivDataCallback
); );
console.log("处理订阅消息完毕"); // console.log("处理订阅消息完毕");
} catch (err) { } catch (err) {
console.error( console.error(
"订阅消息出现异常", "订阅消息出现异常",

View File

@ -49,20 +49,20 @@ class BleReceive {
let handler = null; let handler = null;
let keys = Object.keys(this.HandlerMap); let keys = Object.keys(this.HandlerMap);
let devKey = f.device.detailPageUrl ? f.device.detailPageUrl.replace(/\//g, '').toLowerCase() : ''; let devKey = f.device.detailPageUrl ? f.device.detailPageUrl.replace(/\//g, '').toLowerCase() : '';
// console.log("查找handler - detailPageUrl:", f.device.detailPageUrl, "转换后:", devKey);
for (let index = 0; index < keys.length; index++) { for (let index = 0; index < keys.length; index++) {
let devKey = f.device.detailPageUrl ? f.device.detailPageUrl.replace(/\//g, "").toLowerCase() : ''; let devKey = f.device.detailPageUrl ? f.device.detailPageUrl.replace(/\//g, "").toLowerCase() : '';
let key = keys[index].replace(/\//g, '').toLowerCase(); let key = keys[index].replace(/\//g, '').toLowerCase();
if (key == devKey) { if (key == devKey) {
handler = this.HandlerMap[keys[index]]; handler = this.HandlerMap[keys[index]];
// console.log("找到匹配的handler:", keys[index]);
break; break;
} }
} }
if (handler) { if (handler) {
let data = handler(receive, f, path, recArr); let data = handler(receive, f, path, recArr);
// console.log("设备"+f.device.deviceName+"收到消息,数据:", data); this.setBleFormData(data, f);
return data; return data;
} else { } else {
console.error("已收到消息,但无指定处理程序, deviceUrl:", f.device.detailPageUrl, "可用handlers:", keys); console.error("已收到消息,但无指定处理程序, deviceUrl:", f.device.detailPageUrl, "可用handlers:", keys);
@ -159,7 +159,7 @@ class BleReceive {
formData.modeCurr = modeCurr; formData.modeCurr = modeCurr;
formData.warnLevel = warn; formData.warnLevel = warn;
formData.iswarn = iswarn; formData.iswarn = iswarn;
this.setBleFormData(formData, f);
let recCnt = recArr.find(v => { let recCnt = recArr.find(v => {
return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl
@ -208,7 +208,7 @@ class BleReceive {
if (str.indexOf('mac address:') == 0) { if (str.indexOf('mac address:') == 0) {
let formData = {}; let formData = {};
formData.macAddress = str.split(':')[1]; formData.macAddress = str.split(':')[1];
this.setBleFormData(formData, f);
return formData; return formData;
} else { } else {
let receiveData = { let receiveData = {
@ -327,7 +327,7 @@ class BleReceive {
receiveData.fourGStrenth = fourGStrenth; receiveData.fourGStrenth = fourGStrenth;
receiveData.SOS = sosTxt; receiveData.SOS = sosTxt;
receiveData.qzwarn = sosTxt === 'sg'; receiveData.qzwarn = sosTxt === 'sg';
this.setBleFormData(receiveData, f);
console.log("recArr=", recArr); console.log("recArr=", recArr);
let recCnt = recArr.find(v => { let recCnt = recArr.find(v => {
return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl return v.key.replace(/\//g, "").toLowerCase() == f.device.detailPageUrl
@ -415,8 +415,7 @@ class BleReceive {
console.log('将数据转文本失败', ex); console.log('将数据转文本失败', ex);
} }
} }
// console.log("todo",receiveData);
this.setBleFormData(receiveData, f);
return receiveData; return receiveData;
} }
@ -503,8 +502,6 @@ class BleReceive {
} }
} }
this.setBleFormData(formData, f);
return formData; return formData;
} catch (error) { } catch (error) {
console.log('7305数据解析错误:', error); console.log('7305数据解析错误:', error);
@ -605,8 +602,6 @@ class BleReceive {
} }
} }
this.setBleFormData(formData, f);
return formData; return formData;
} catch (error) { } catch (error) {
console.log('7305数据解析错误:', error); console.log('7305数据解析错误:', error);