diff --git a/manifest.json b/manifest.json
index 092a023..a491f5d 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,7 +2,7 @@
"name" : "星汉物联",
"appid" : "__UNI__A21EF43",
"description" : "设备管控",
- "versionName" : "1.0.3",
+ "versionName" : "1.0.5",
"versionCode" : "100",
"transformPx" : false,
/* 5+App特有相关 */
diff --git a/pages/100/HBY100.vue b/pages/100/HBY100.vue
index 1204dd4..e602960 100644
--- a/pages/100/HBY100.vue
+++ b/pages/100/HBY100.vue
@@ -2,23 +2,24 @@
-
+
- {{formData.sta_PowerPercent}}%
+ {{formData.sta_battery}}%
电量
-
+
@@ -36,12 +37,7 @@
-
- 设备强制报警中!
-
- {{formData.warnTime}}s
-
-
+
@@ -245,12 +241,12 @@
var ble = null;
var these = null;
var recei = null;
- var interval=null;
+ var interval = null;
export default {
data() {
return {
Status: {
-
+ pageHide: false,
Pop: {
showPop: false, //是否显示弹窗
popType: 'custom',
@@ -311,7 +307,7 @@
},
formData: {
img: '/static/images/4877/4877equip.png',
- sta_PowerPercent: '',
+ sta_battery: '',
xuhang: '',
blename: '',
deviceId: '',
@@ -320,10 +316,14 @@
statu: '',
macAddress: '',
bleStatu: false,
- sta_SOSType: '', //sos
- sta_GroupType: '', //配组
- sta_ArrowType: '', //箭头方向
- warnTime:0
+ sta_address: '',
+ sta_VoiceType: '',
+ sta_VoiceVolume: '',
+ sta_LightType: '',
+ sta_LightFreq: '',
+ sta_LightDimmer: '',
+ sta_system: ''
+
},
dic: {
SOS: [{
@@ -438,7 +438,7 @@
these.formData.blename = f.name ? f.name : "Unname";
these.formData.deviceName = device.deviceName;
these.formData.img = device.devicePic;
- these.formData.bleStatu=false;
+ these.formData.bleStatu = false;
these.formData.deviceId = f.deviceId;
ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId).then(res => {
these.formData.bleStatu = true;
@@ -510,7 +510,7 @@
buttonBgColor: "#E03434",
okCallback: () => {
clearInterval(interval);
-
+
this.sosSetting({
val: val
});
@@ -528,30 +528,30 @@
return;
}
let task = () => {
-
+
var json = {
- ins_SOSType: this.formData.sta_SOSType==item.val?'sos_off':item.val
+ ins_SOSType: this.formData.sta_SOSType == item.val ? 'sos_off' : item.val
}
json = JSON.stringify(json);
- ble.sendString(f.deviceId, json, f.writeServiceId, f.wirteCharactId, 30).then(res=>{
-
- if (this.formData.sta_SOSType === item.val) {
- this.formData.sta_SOSType = 'sos_off';
- } else {
- this.formData.sta_SOSType = item.val;
- }
-
- if(this.formData.sta_SOSType=='sos'){
- this.formData.warnTime=0;
- clearInterval(interval);
- interval=setInterval(()=>{
- this.formData.warnTime+=1;
- },1000)
- }
-
-
- })
+ ble.sendString(f.deviceId, json, f.writeServiceId, f.wirteCharactId, 30).then(res => {
+
+ if (this.formData.sta_SOSType === item.val) {
+ this.formData.sta_SOSType = 'sos_off';
+ } else {
+ this.formData.sta_SOSType = item.val;
+ }
+
+ if (this.formData.sta_SOSType == 'sos') {
+ this.formData.warnTime = 0;
+ clearInterval(interval);
+ interval = setInterval(() => {
+ this.formData.warnTime += 1;
+ }, 1000)
+ }
+
+
+ })
.catch(ex => {
this.showMsg(ex.msg);
});
@@ -569,12 +569,12 @@
});
} else {
- if(index!==undefined && this.formData.sta_SOSType=='sos'){
+ if (index !== undefined && this.formData.sta_SOSType == 'sos') {
this.showUnWarn(item.val);
- }else{
- task();
+ } else {
+ task();
}
-
+
}
@@ -688,36 +688,58 @@
return className;
},
bleValueNotify: function(receive, device, path, recArr) { //订阅消息
+ if (receive.deviceId !== this.formData.deviceId) {
+ return;
+ }
console.log("收到设备的数据", receive)
- let data = recei.ReceiveData(receive, device, pagePath, recArr);
- console.log("处理后的数据:", data);
- if (data) {
- let keys = Object.keys(data);
- keys.forEach(key => {
- if (key in this.formData) {
- this.formData[key] = data[key];
+ let json = recei.ReceiveData(receive, device, pagePath, recArr);
+
+
+ let key = 'sta_VoiceDate';
+ if (key in json) {
+
+ let val = json[key];
+ console.log("22222", val)
+ if (val === 'start') {
+ //开始发包
+
+ this.sendHex();
+ return;
+ } else if (val === 'finish') {
+
+
+ uni.showModal({
+ title: '提示',
+ content: "发送完成"
+ });
+ return;
+ } else {
+ //重新发送某一包
+
+
+
+ if (val > this.audioData.packetCtn) {
+
+ return;
}
- });
- let msg = [];
- if (data.sta_SOSType == 'sos') {
- msg.push("设备声光报警中");
- }
- if (data.sta_PowerPercent <= 20) {
- msg.push("设备电量低");
+ this.sendHex(val);
+ return;
}
- if (msg.length) {
- msg = msg.join(",");
- this.showMsg(msg);
- }
-
- these.setBleFormData();
}
+ let keys = Object.keys(json);
+
+ keys.forEach(key => {
+ if (key in this.formData) {
+ this.formData[key] = json[key];
+ }
+
+
+ })
+
+
- // // 转换为字节数组
- // const bytes = receive.bytes;
- // parseData(bytes);
@@ -754,7 +776,7 @@
borderColor: "#e034344d",
buttonBgColor: "#E03434",
buttonText: '去连接',
- buttonTextColor: '#FFFFFFde',
+ buttonTextColor: '#232323de',
okCallback: function() {
uni.navigateTo({
@@ -826,7 +848,7 @@
}
},
showPop: function(option) {
-
+ hideLoading(this);
let def = {
showPop: true, //是否显示弹窗
popType: 'custom',
diff --git a/pages/4877/BJQ4877.vue b/pages/4877/BJQ4877.vue
index 1204dd4..9dba199 100644
--- a/pages/4877/BJQ4877.vue
+++ b/pages/4877/BJQ4877.vue
@@ -2,7 +2,8 @@
-
+
@@ -36,7 +37,8 @@
-
+
设备强制报警中!
{{formData.warnTime}}s
@@ -47,7 +49,7 @@
SOS
-
+
@@ -245,12 +247,12 @@
var ble = null;
var these = null;
var recei = null;
- var interval=null;
+ var interval = null;
export default {
data() {
return {
Status: {
-
+ pageHide: false,
Pop: {
showPop: false, //是否显示弹窗
popType: 'custom',
@@ -323,7 +325,7 @@
sta_SOSType: '', //sos
sta_GroupType: '', //配组
sta_ArrowType: '', //箭头方向
- warnTime:0
+ warnTime: 0
},
dic: {
SOS: [{
@@ -398,11 +400,11 @@
ble = BleTool.getBleTool();
- 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);
+ ble.addReceiveCallback(this.bleValueNotify, pagePath);
+ ble.addStateBreakCallback(this.bleStateBreak, pagePath);
+ ble.addStateRecoveryCallback(this.bleStateRecovry, pagePath);
+ ble.addDisposeCallback(this.deviceDispose, pagePath);
+ ble.addRecoveryCallback(this.deviceRecovry, pagePath);
let eventChannel = this.getOpenerEventChannel();
@@ -438,7 +440,7 @@
these.formData.blename = f.name ? f.name : "Unname";
these.formData.deviceName = device.deviceName;
these.formData.img = device.devicePic;
- these.formData.bleStatu=false;
+ these.formData.bleStatu = false;
these.formData.deviceId = f.deviceId;
ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId).then(res => {
these.formData.bleStatu = true;
@@ -467,19 +469,18 @@
return;
}
if (this.formData.sta_ArrowType === val) {
- this.formData.sta_ArrowType = 'arrow_off';
- } else {
- this.formData.sta_ArrowType = val;
+ val = 'arrow_off';
}
var json = {
- ins_ArrowType: this.formData.sta_ArrowType
+ ins_ArrowType: val
}
json = JSON.stringify(json);
- ble.sendString(f.deviceId, json, f.writeServiceId, f.wirteCharactId, 30)
- .catch(ex => {
- this.showMsg(ex.msg);
- });
+ ble.sendString(f.deviceId, json, f.writeServiceId, f.wirteCharactId, 30).then(res => {
+ this.formData.sta_ArrowType = val;
+ }).catch(ex => {
+ this.showMsg(ex.msg);
+ });
},
groupSetting(item, index) {
let f = this.getDevice();
@@ -510,7 +511,7 @@
buttonBgColor: "#E03434",
okCallback: () => {
clearInterval(interval);
-
+
this.sosSetting({
val: val
});
@@ -528,30 +529,31 @@
return;
}
let task = () => {
-
+
var json = {
- ins_SOSType: this.formData.sta_SOSType==item.val?'sos_off':item.val
+ ins_SOSType: this.formData.sta_SOSType == item.val ? 'sos_off' : item.val
}
json = JSON.stringify(json);
- ble.sendString(f.deviceId, json, f.writeServiceId, f.wirteCharactId, 30).then(res=>{
-
- if (this.formData.sta_SOSType === item.val) {
- this.formData.sta_SOSType = 'sos_off';
- } else {
- this.formData.sta_SOSType = item.val;
- }
-
- if(this.formData.sta_SOSType=='sos'){
- this.formData.warnTime=0;
- clearInterval(interval);
- interval=setInterval(()=>{
- this.formData.warnTime+=1;
- },1000)
- }
-
-
- })
+
+ ble.sendString(f.deviceId, json, f.writeServiceId, f.wirteCharactId, 30).then(res => {
+
+ if (this.formData.sta_SOSType === item.val) {
+ this.formData.sta_SOSType = 'sos_off';
+ } else {
+ this.formData.sta_SOSType = item.val;
+ }
+
+ if (this.formData.sta_SOSType == 'sos') {
+ this.formData.warnTime = 0;
+ clearInterval(interval);
+ interval = setInterval(() => {
+ this.formData.warnTime += 1;
+ }, 1000)
+ }
+
+
+ })
.catch(ex => {
this.showMsg(ex.msg);
});
@@ -569,12 +571,12 @@
});
} else {
- if(index!==undefined && this.formData.sta_SOSType=='sos'){
+ if (index !== undefined && this.formData.sta_SOSType == 'sos') {
this.showUnWarn(item.val);
- }else{
- task();
+ } else {
+ task();
}
-
+
}
@@ -688,6 +690,9 @@
return className;
},
bleValueNotify: function(receive, device, path, recArr) { //订阅消息
+ if (receive.deviceId !== this.formData.deviceId) {
+ return;
+ }
console.log("收到设备的数据", receive)
let data = recei.ReceiveData(receive, device, pagePath, recArr);
console.log("处理后的数据:", data);
@@ -754,7 +759,7 @@
borderColor: "#e034344d",
buttonBgColor: "#E03434",
buttonText: '去连接',
- buttonTextColor: '#FFFFFFde',
+ buttonTextColor: '#232323de',
okCallback: function() {
uni.navigateTo({
@@ -826,7 +831,7 @@
}
},
showPop: function(option) {
-
+ hideLoading(this);
let def = {
showPop: true, //是否显示弹窗
popType: 'custom',
diff --git a/pages/6155/deviceDetail.vue b/pages/6155/deviceDetail.vue
index e073e50..e49632b 100644
--- a/pages/6155/deviceDetail.vue
+++ b/pages/6155/deviceDetail.vue
@@ -357,7 +357,7 @@
these.formData.img = device.devicePic;
these.formData.id = device.id;
these.formData.deviceId = f.deviceId;
- these.formData.bleStatu=false;
+ these.formData.bleStatu = false;
ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId).then(res => {
these.formData.bleStatu = true;
});
@@ -515,11 +515,14 @@
return f;
},
- bleValueNotify: function(receive, device, path,recArr) {
+ bleValueNotify: function(receive, device, path, recArr) {
+ if (receive.deviceId !== this.formData.deviceId) {
+ return;
+ }
if (this.Status.pageHide) {
return;
}
- let json = recei.ReceiveData(receive, device, path,recArr);
+ let json = recei.ReceiveData(receive, device, path, recArr);
if (!json) {
return;
}
@@ -572,6 +575,7 @@
borderColor: "#e034344d",
buttonBgColor: "#E03434",
buttonText: '去连接',
+ buttonTextColor: '#232323de',
okCallback: function() {
// console.log("1111");
uni.navigateTo({
@@ -1028,39 +1032,52 @@
this.Status.Pop.showPop = false;
},
showPop: function(option) {
-
hideLoading(this);
- let defaultCfg = {
- showHeader: false,
- headerTxt: "",
- showHeader: false,
- showCancel: false,
- borderColor: '#BBE600',
- buttonBgColor: '#BBE600',
- okCallback: null,
- cancelCallback: null,
+ let def = {
+ showPop: true, //是否显示弹窗
popType: 'custom',
+ bgColor: '#383934bd',
+ borderColor: '#BBE600',
+ textColor: '#ffffffde',
+ buttonBgColor: '#BBE600',
+ buttonTextColor: '#232323DE',
+ iconUrl: '',
+ message: '',
buttonText: '确定',
- clickEvt: ''
- };
- if (!option) {
+ clickEvt: '',
+ visiblePrompt: false,
+ promptTitle: '',
+ modelValue: '',
+ visibleClose: false,
+ okCallback: null,
+ showSlot: false,
+ buttonCancelText: '',
+ showCancel: false,
+ }
- }
- let keys = Object.keys(option);
- for (var i = 0; i < keys.length; i++) {
- let key = keys[i];
- this.Status.Pop[key] = option[key];
- }
- keys = Object.keys(defaultCfg);
- for (var i = 0; i < keys.length; i++) {
+ let keys = Object.keys(def);
+
+ for (let i = 0; i < keys.length; i++) {
let key = keys[i];
if (key in option) {
continue;
}
- this.Status.Pop[key] = defaultCfg[key];
+ this.Status.Pop[key] = def[key];
+ }
+ if (option) {
+ keys = Object.keys(option);
+ for (let i = 0; i < keys.length; i++) {
+ let key = keys[i];
+
+ this.Status.Pop[key] = option[key];
+ }
}
- this.Status.Pop.showPop = true;
+ if (!option.borderColor) {
+ option.borderColor = '#BBE600';
+ option.buttonBgColor = '#BBE600';
+ }
+ these.Status.Pop.showPop = true;
},
sendUsr() {
let f = this.getDevice();
diff --git a/pages/6331/BJQ6331.vue b/pages/6331/BJQ6331.vue
index e30db6a..8a5fcc9 100644
--- a/pages/6331/BJQ6331.vue
+++ b/pages/6331/BJQ6331.vue
@@ -247,6 +247,7 @@
data() {
return {
Status: {
+ pageHide: false,
showLightingSet: false,
showVolumeSet: false,
Pop: {
@@ -675,6 +676,9 @@
},
bleValueNotify: function(receive, device, path) { //订阅消息
+ if (receive.deviceId !== this.formData.deviceId) {
+ return;
+ }
console.log("收到设备的数据", receive)
let data = recei.ReceiveData(receive, device, pagePath);
@@ -717,13 +721,13 @@
showBleUnConnect() {
- these.showPop({
+ this.showPop({
message: "蓝牙未连接过该设备,请使用蓝牙重新添加该设备",
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
buttonText: '去连接',
- buttonTextColor: '#FFFFFFde',
+ buttonTextColor: '#232323de',
okCallback: function() {
uni.navigateTo({
@@ -731,7 +735,7 @@
events: {
BindOver: function(data) {
console.log(data)
- these.formData.bleStatu=true;
+ these.formData.bleStatu = true;
}
},
success: function(res) {
@@ -797,6 +801,7 @@
}
},
showPop: function(option) {
+ hideLoading(this);
let def = {
showPop: true, //是否显示弹窗
popType: 'custom',
@@ -807,14 +812,16 @@
buttonTextColor: '#232323DE',
iconUrl: '',
message: '',
- buttonText: '',
+ buttonText: '确定',
clickEvt: '',
visiblePrompt: false,
promptTitle: '',
modelValue: '',
visibleClose: false,
okCallback: null,
- showSlot: false
+ showSlot: false,
+ buttonCancelText: '',
+ showCancel: false,
}
let keys = Object.keys(def);
@@ -824,14 +831,14 @@
if (key in option) {
continue;
}
- these.Status.Pop[key] = def[key];
+ this.Status.Pop[key] = def[key];
}
if (option) {
keys = Object.keys(option);
for (let i = 0; i < keys.length; i++) {
let key = keys[i];
- these.Status.Pop[key] = option[key];
+ this.Status.Pop[key] = option[key];
}
}
diff --git a/pages/650/HBY650.vue b/pages/650/HBY650.vue
index b3d7e1b..641c8a3 100644
--- a/pages/650/HBY650.vue
+++ b/pages/650/HBY650.vue
@@ -192,7 +192,7 @@
data() {
return {
Status: {
-
+ pageHide: false,
Pop: {
showPop: false, //是否显示弹窗
popType: 'custom',
@@ -345,10 +345,10 @@
these.formData.blename = f.name ? f.name : "Unname";
these.formData.deviceName = device.deviceName;
these.formData.img = device.devicePic;
- these.formData.bleStatu=false;
+ these.formData.bleStatu = false;
these.formData.deviceId = f.deviceId;
- ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId).then(res=>{
- these.formData.bleStatu=true;
+ ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId).then(res => {
+ these.formData.bleStatu = true;
});
these.setBleFormData();
these.getDetail();
@@ -490,9 +490,12 @@
return className;
},
- bleValueNotify: function(receive, device, path,recArr) { //订阅消息
+ bleValueNotify: function(receive, device, path, recArr) { //订阅消息
+ if (receive.deviceId !== this.formData.deviceId) {
+ return;
+ }
console.log("收到设备的数据", receive)
- let data = recei.ReceiveData(receive, device, pagePath,recArr);
+ let data = recei.ReceiveData(receive, device, pagePath, recArr);
if (data) {
if ("staBlue_picture" in data) {
@@ -559,7 +562,7 @@
getDetail() {
var that = this;
usrApi.getDetail(this.device.id).then(res => {
-console.log("res=",res);
+ console.log("res=", res);
if (res && res.code == 200) {
res = res.data;
let personnelInfo = res.personnelInfo;
@@ -684,7 +687,7 @@ console.log("res=",res);
borderColor: "#e034344d",
buttonBgColor: "#E03434",
buttonText: '去连接',
- buttonTextColor: '#FFFFFFde',
+ buttonTextColor: '#232323de',
okCallback: function() {
uni.navigateTo({
@@ -692,7 +695,7 @@ console.log("res=",res);
events: {
BindOver: function(data) {
console.log(data)
- these.formData.bleStatu=true;
+ these.formData.bleStatu = true;
}
},
success: function(res) {
@@ -1261,17 +1264,47 @@ console.log("res=",res);
}
},
showPop: function(option) {
+ hideLoading(this);
+ let def = {
+ showPop: true, //是否显示弹窗
+ popType: 'custom',
+ bgColor: '#383934bd',
+ borderColor: '#BBE600',
+ textColor: '#ffffffde',
+ buttonBgColor: '#BBE600',
+ buttonTextColor: '#232323DE',
+ iconUrl: '',
+ message: '',
+ buttonText: '确定',
+ clickEvt: '',
+ visiblePrompt: false,
+ promptTitle: '',
+ modelValue: '',
+ visibleClose: false,
+ okCallback: null,
+ showSlot: false,
+ buttonCancelText: '',
+ showCancel: false,
+ }
- if (!option) {
- option = {
- a: 1
- };
- }
- let keys = Object.keys(option);
- for (var i = 0; i < keys.length; i++) {
+ let keys = Object.keys(def);
+
+ for (let i = 0; i < keys.length; i++) {
let key = keys[i];
- these.Status.Pop[key] = option[key];
+ if (key in option) {
+ continue;
+ }
+ this.Status.Pop[key] = def[key];
}
+ if (option) {
+ keys = Object.keys(option);
+ for (let i = 0; i < keys.length; i++) {
+ let key = keys[i];
+
+ this.Status.Pop[key] = option[key];
+ }
+ }
+
if (!option.borderColor) {
option.borderColor = '#BBE600';
option.buttonBgColor = '#BBE600';
diff --git a/pages/670/HBY670.vue b/pages/670/HBY670.vue
index 8159e85..120cf2c 100644
--- a/pages/670/HBY670.vue
+++ b/pages/670/HBY670.vue
@@ -523,7 +523,7 @@
these.formData['imei'] = these.device.deviceImei;
}
these.getDetail();
- these.formData.bleStatu=false;
+ these.formData.bleStatu = false;
ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId).then(res => {
these.formData.bleStatu = true;
});
@@ -531,10 +531,10 @@
},
onShow() {
- this.Status.pageHide=false;
+ this.Status.pageHide = false;
},
onHide: function() {
- this.Status.pageHide=true;
+ this.Status.pageHide = true;
},
onBackPress(e) {
ble.removeReceiveCallback(pagePath);
@@ -628,11 +628,12 @@
return;
}
this.showPop({
- message: "蓝牙未连接过该设备,请使用蓝牙重新添加该设备,取消"+(4-this.Status.bleLinkCnt)+"次后不再提醒",
+ message: "蓝牙未连接过该设备,请使用蓝牙重新添加该设备,取消" + (4 - this.Status.bleLinkCnt) + "次后不再提醒",
iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
borderColor: "#e034344d",
buttonBgColor: "#E03434",
buttonText: '去连接',
+ buttonTextColor: '#232323de',
showCancel: true,
cancelCallback: () => {
// this.closePop();
@@ -644,7 +645,7 @@
events: {
BindOver: function(data) {
console.log(data)
- these.formData.bleStatu=true;
+ these.formData.bleStatu = true;
}
},
success: function(res) {
@@ -983,9 +984,11 @@
this.refreshFormData(receiveData, 'auto');
return receiveData;
},
- bleValueNotify: function(receive, device, path,recArr) { //订阅消息
-
- let data = recei.ReceiveData(receive, device, pagePath,recArr);
+ bleValueNotify: function(receive, device, path, recArr) { //订阅消息
+ if (receive.deviceId !== this.formData.deviceId) {
+ return;
+ }
+ let data = recei.ReceiveData(receive, device, pagePath, recArr);
console.log("收到设备的数据", data)
if (data) {
if ("staBlue_picture" in data) {
@@ -1395,12 +1398,12 @@
clearInterval(these.Status.staticWarn.inteval);
these.Status.staticWarn.inteval = null;
these.formData.qzwarn = false;
-
- if(this.Status.Pop.okCallback){
- these.CloseWarn(false);
- these.formData.SOS = 'close';
+
+ if (this.Status.Pop.okCallback) {
+ these.CloseWarn(false);
+ these.formData.SOS = 'close';
}
-
+
return;
}
these.Status.staticWarn.time = these.Status.staticWarn
@@ -1433,9 +1436,10 @@
this.Status.staticWarn.time = 0;
return;
}
- if (these.formData.qzwarn && these.Status.staticWarn.inteval && these.Status.staticWarn.time) {
+ if (these.formData.qzwarn && these.Status.staticWarn.inteval && these.Status.staticWarn
+ .time) {
console.log("222222");
- this.Status.Pop.okCallback=null;
+ this.Status.Pop.okCallback = null;
these.showQzWarn(sendRb);
} else {
sendRb();
@@ -2170,39 +2174,51 @@
},
showPop: function(option) {
hideLoading(this);
- let defaultCfg = {
- showHeader: false,
- headerTxt: "",
- showHeader: false,
- showCancel: false,
- borderColor: '#BBE600',
- buttonBgColor: '#BBE600',
- okCallback: null,
- cancelCallback: null,
+ let def = {
+ showPop: true, //是否显示弹窗
popType: 'custom',
+ bgColor: '#383934bd',
+ borderColor: '#BBE600',
+ textColor: '#ffffffde',
+ buttonBgColor: '#BBE600',
+ buttonTextColor: '#232323DE',
+ iconUrl: '',
+ message: '',
buttonText: '确定',
+ clickEvt: '',
+ visiblePrompt: false,
+ promptTitle: '',
+ modelValue: '',
+ visibleClose: false,
+ okCallback: null,
+ showSlot: false,
+ buttonCancelText: '',
showCancel: false,
- buttonCancelText: '取消',
- clickEvt: ''
- };
- if (!option) {
+ }
- }
- let keys = Object.keys(option);
- for (var i = 0; i < keys.length; i++) {
- let key = keys[i];
- this.Status.Pop[key] = option[key];
- }
- keys = Object.keys(defaultCfg);
- for (var i = 0; i < keys.length; i++) {
+ let keys = Object.keys(def);
+
+ for (let i = 0; i < keys.length; i++) {
let key = keys[i];
if (key in option) {
continue;
}
- this.Status.Pop[key] = defaultCfg[key];
+ this.Status.Pop[key] = def[key];
+ }
+ if (option) {
+ keys = Object.keys(option);
+ for (let i = 0; i < keys.length; i++) {
+ let key = keys[i];
+
+ this.Status.Pop[key] = option[key];
+ }
}
- this.Status.Pop.showPop = true;
+ if (!option.borderColor) {
+ option.borderColor = '#BBE600';
+ option.buttonBgColor = '#BBE600';
+ }
+ these.Status.Pop.showPop = true;
},
sendUsr: function(ReSendNo) {
@@ -2338,9 +2354,9 @@
// 获取当前行文字
const text = textLines[currentPacket - 1] || '';
let arr = gbk.encode(text)
- console.log("arr=",arr);
+ console.log("arr=", arr);
let gbkData = gbk.arr2hex(arr);
- console.log("gbkData=",gbkData);
+ console.log("gbkData=", gbkData);
// 构建数据包
const bufferSize = 5 + gbkData.length / 2; // 头部4字节 + 数据部分
diff --git a/pages/7305/BJQ7305.vue b/pages/7305/BJQ7305.vue
index ad56a7a..457046c 100644
--- a/pages/7305/BJQ7305.vue
+++ b/pages/7305/BJQ7305.vue
@@ -313,7 +313,7 @@
these.formData.img = device.devicePic;
these.formData.id = device.id;
these.formData.deviceId = f.deviceId;
- these.formData.bleStatu=false;
+ these.formData.bleStatu = false;
ble.LinkBlue(f.deviceId, f.writeServiceId, f.wirteCharactId, f.notifyCharactId).then(res => {
console.log("连接成功")
these.formData.bleStatu = true;
@@ -469,7 +469,9 @@
return f;
},
bleValueNotify: function(receive, device, path, recArr) {
-
+ if (receive.deviceId !== this.formData.deviceId) {
+ return;
+ }
if (this.Status.pageHide) {
return;
}
@@ -534,6 +536,7 @@
borderColor: "#e034344d",
buttonBgColor: "#E03434",
buttonText: '去连接',
+ buttonTextColor: '#232323de',
okCallback: function() {
console.log("1111");
uni.navigateTo({
@@ -992,39 +995,52 @@
this.Status.Pop.showPop = false;
},
showPop: function(option) {
-
hideLoading(this);
- let defaultCfg = {
- showHeader: false,
- headerTxt: "",
- showHeader: false,
- showCancel: false,
- borderColor: '#BBE600',
- buttonBgColor: '#BBE600',
- okCallback: null,
- cancelCallback: null,
+ let def = {
+ showPop: true, //是否显示弹窗
popType: 'custom',
+ bgColor: '#383934bd',
+ borderColor: '#BBE600',
+ textColor: '#ffffffde',
+ buttonBgColor: '#BBE600',
+ buttonTextColor: '#232323DE',
+ iconUrl: '',
+ message: '',
buttonText: '确定',
- clickEvt: ''
- };
- if (!option) {
+ clickEvt: '',
+ visiblePrompt: false,
+ promptTitle: '',
+ modelValue: '',
+ visibleClose: false,
+ okCallback: null,
+ showSlot: false,
+ buttonCancelText: '',
+ showCancel: false,
+ }
- }
- let keys = Object.keys(option);
- for (var i = 0; i < keys.length; i++) {
- let key = keys[i];
- this.Status.Pop[key] = option[key];
- }
- keys = Object.keys(defaultCfg);
- for (var i = 0; i < keys.length; i++) {
+ let keys = Object.keys(def);
+
+ for (let i = 0; i < keys.length; i++) {
let key = keys[i];
if (key in option) {
continue;
}
- this.Status.Pop[key] = defaultCfg[key];
+ this.Status.Pop[key] = def[key];
+ }
+ if (option) {
+ keys = Object.keys(option);
+ for (let i = 0; i < keys.length; i++) {
+ let key = keys[i];
+
+ this.Status.Pop[key] = option[key];
+ }
}
- this.Status.Pop.showPop = true;
+ if (!option.borderColor) {
+ option.borderColor = '#BBE600';
+ option.buttonBgColor = '#BBE600';
+ }
+ these.Status.Pop.showPop = true;
},
sendUsr() {
let f = this.getDevice();
diff --git a/pages/common/addBLE/LinkBle.vue b/pages/common/addBLE/LinkBle.vue
index 36da350..b3d95a3 100644
--- a/pages/common/addBLE/LinkBle.vue
+++ b/pages/common/addBLE/LinkBle.vue
@@ -156,14 +156,39 @@
if (these.device.deviceId == receive.deviceId) {
console.log("11111:", receive);
these.device.imei = f.imei;
- if (receive.bytes[0] == 0xFC || receive.str.indexOf('mac address:') == 0) {
+ let flag=false;
+ if (receive.bytes && receive.bytes.length && receive.bytes[0] == 0xFC) {//6155 7305
if (f && f.macAddress) {
- these.device.macAddress = f.macAddress;
- console.log("222222");
- these.Statu.isSearch = false;
- these.initDevice();
+ flag=true;
+ }
+ }
+ else if(receive.str.indexOf('mac address:') == 0){//650 670
+ if (f && f.macAddress) {
+ flag=true;
+ }
+ }
+ else{
+ try{
+ let json=JSON.parse(receive.str);
+ let key = "sta_address";
+ if (key in json) {//100
+ if (f && f.macAddress) {
+ flag=true;
+ }
+ }
+ }catch(err){
+ console.log("出现异常,",err);
}
}
+
+
+ if(flag){
+ these.device.macAddress = f.macAddress;
+ console.log("222222");
+ these.Statu.isSearch = false;
+ these.initDevice();
+ }
+
}
}, pagePath);
eventChannel = this.getOpenerEventChannel();
diff --git a/pages/common/addBLE/addEquip.vue b/pages/common/addBLE/addEquip.vue
index 914554d..e5ae397 100644
--- a/pages/common/addBLE/addEquip.vue
+++ b/pages/common/addBLE/addEquip.vue
@@ -27,7 +27,8 @@
-
+
@@ -172,73 +173,80 @@
let search = option.search;
these = this;
eventChannel = this.getOpenerEventChannel();
- // this.EquipMents = [{
- // "RSSI": -55,
- // "advertisData": "",
- // "advertisServiceUUIDs": [
- // "0000FFE0-0000-1000-8000-00805F9B34FB"
- // ],
- // "deviceId": "EBDA4E6F-3A28-FF65-A845-AE8CC7B78375",
- // "name": "HBY670-BF74EA",
- // "linkStatu": false
- // },
- // {
- // "RSSI": -61,
- // "advertisData": "",
- // "advertisServiceUUIDs": [
- // "0000FFE0-0000-1000-8000-00805F9B34FB"
- // ],
- // "deviceId": "469FB381-B47E-1E40-8073-EF50B5704AAB",
- // "name": "EF4651",
- // "linkStatu": false,
- // "isTarget": true
- // },
- // {
- // "RSSI": -69,
- // "advertisData": "",
- // "advertisServiceUUIDs": [
- // "0000FFE0-0000-1000-8000-00805F9B34FB"
- // ],
- // "deviceId": "4F0DAC91-4391-CB07-905E-72D7F03EFCD3",
- // "name": "4877-BF743D",
- // "linkStatu": false
- // }
- // ];
+ const systemInfo = uni.getSystemInfoSync();
+ if (systemInfo.uniPlatform == 'web') {
+ this.EquipMents = [{
+ "RSSI": -55,
+ "advertisData": "",
+ "advertisServiceUUIDs": [
+ "0000FFE0-0000-1000-8000-00805F9B34FB"
+ ],
+ "deviceId": "EBDA4E6F-3A28-FF65-A845-AE8CC7B78375",
+ "name": "HBY670-BF74EA",
+ "linkStatu": false
+ },
+ {
+ "RSSI": -61,
+ "advertisData": "",
+ "advertisServiceUUIDs": [
+ "0000FFE0-0000-1000-8000-00805F9B34FB"
+ ],
+ "deviceId": "469FB381-B47E-1E40-8073-EF50B5704AAB",
+ "name": "EF4651",
+ "linkStatu": false,
+ "isTarget": true
+ },
+ {
+ "RSSI": -69,
+ "advertisData": "",
+ "advertisServiceUUIDs": [
+ "0000FFE0-0000-1000-8000-00805F9B34FB"
+ ],
+ "deviceId": "4F0DAC91-4391-CB07-905E-72D7F03EFCD3",
+ "name": "4877-BF743D",
+ "linkStatu": false
+ }
+ ];
+
+
+ these.PairEquip = [this.EquipMents[0]];
+ return;
+ }
let StartSubsrib = () => {
these.EquipMents = [];
ble = bleTool.getBleTool();
//蓝牙不可用的回调
- ble.addStateBreakCallback(res=>{
+ ble.addStateBreakCallback(res => {
if (these.Status.isPageHidden) {
return;
}
console.log("处理蓝牙不可用");
hideLoading(these);
- these.PairEquip=[];
- these.EquipMents=[];
+ these.PairEquip = [];
+ these.EquipMents = [];
uni.showToast({
- icon:'fail',
- title:'蓝牙已不可用'
+ icon: 'fail',
+ title: '蓝牙已不可用'
});
these.showOpenSetting();
-
- },pagePath);
+
+ }, pagePath);
//蓝牙再次可用的回调
- ble.addStateRecoveryCallback(res=>{
+ ble.addStateRecoveryCallback(res => {
if (these.Status.isPageHidden) {
return;
}
uni.showToast({
- icon:'success',
- title:'蓝牙恢复可用'
+ icon: 'success',
+ title: '蓝牙恢复可用'
});
these.Status.BottomMenu.show = false;
- these.EquipMents=[];
+ these.EquipMents = [];
these.refreshBleList();
- },pagePath);
-
+ }, pagePath);
+
//蓝牙断开连接的回调
ble.addDisposeCallback(res => {
if (these.Status.isPageHidden) {
@@ -469,9 +477,9 @@
}
hideLoading(these);
-
- eventChannel.emit('BindOver',these.device);
-
+
+ eventChannel.emit('BindOver', these.device);
+
ble.updateCache();
uni.navigateBack();
return true;
@@ -941,4 +949,9 @@
color: #232323;
}
+
+ .filterNone {
+ filter: none !important;
+ -webkit-filter: none !important;
+ }
\ No newline at end of file
diff --git a/utils/BleHelper.js b/utils/BleHelper.js
index 9e65d02..ac03070 100644
--- a/utils/BleHelper.js
+++ b/utils/BleHelper.js
@@ -33,15 +33,18 @@ class BleHelper {
if (linkedDevices && linkedDevices.length && linkedDevices.length > 0) {
// console.log("111111", linkedDevices);
linkedDevices = linkedDevices.filter((v) => {
- if(v){
+ if (v) {
v.Linked = false;
v.notifyState = false;
- }
- return v?true:false;
+ }
+ return v ? true : false;
});
}
+ const systemInfo = uni.getSystemInfoSync();
+
+
setTimeout(() => {
this.OpenBlue().then(() => {
@@ -55,8 +58,8 @@ class BleHelper {
discovering: false, //蓝牙是否正在搜索
searchList: [], //已搜索到的设备列表,
isSubscribe: false, //是否开启了订阅
- LinkedList: linkedDevices //已连接的设备列表
-
+ LinkedList: linkedDevices, //已连接的设备列表
+ platform: systemInfo.uniPlatform
}
this.cfg = {
onDeviceFound: [], //发现新设备的事件
@@ -169,7 +172,9 @@ class BleHelper {
//连接所有已连接过的设备
linkAllDevices() {
// console.log("模块启动时,自动连接已连接过的设备", this.data.LinkedList);
-
+ if(this.data.platform=='web'){
+ return;
+ }
if (this.data.LinkedList && this.data.LinkedList.length > 0) {
let flag = false;
for (var i = 0; i < this.data.LinkedList.length; i++) {
@@ -424,7 +429,12 @@ class BleHelper {
//获取蓝牙适配器状态
CheckBlue() {
-
+ if (this.data.platform == 'web') {
+ return Promise.resolve({
+ available: true,
+ discovering: false
+ });
+ }
return new Promise((resolve, reject) => {
if (this.data.available) {
// console.log("蓝牙模块是可用状态");
@@ -463,6 +473,12 @@ class BleHelper {
//打开蓝牙适配器
OpenBlue() {
+ if (this.data.platform == 'web') {
+ this.data.isOpenBlue = true;
+ this.data.available = true;
+ this.data.isSubscribe = true;
+ return Promise.resolve(true);
+ }
var init = () => {
return new Promise((resolve, reject) => {
if (this.data.isOpenBlue) {
@@ -678,6 +694,7 @@ class BleHelper {
}
let header = "mac address:";
+ let isUpdate = false;
if (str.indexOf(header) == 0) { //650以文本传输mac
console.log("str=", str);
this.data.LinkedList.find((v) => {
@@ -698,10 +715,11 @@ class BleHelper {
.macAddress)
}
});
- this.updateCache();
+ isUpdate = true;
+
}
- if (str.indexOf('imei:') == 0) {
+ if (str.indexOf('imei:') == 0) { //670以此方式传输imei
let imei = str.split(':')[1];
@@ -709,9 +727,10 @@ class BleHelper {
if (v.deviceId == receive
.deviceId) {
v.imei = imei;
+ isUpdate = true;
}
});
- this.updateCache();
+
}
@@ -725,17 +744,48 @@ class BleHelper {
if (v.deviceId == receive
.deviceId) {
v.macAddress = mac;
- // console.log("收到mac地址:", str)
+ isUpdate = true;
}
});
- this.updateCache();
+
}
}
+
+ try {
+ let receivJson = JSON.parse(str);
+ let key = "sta_address"; //HBY100以此方式上传mac地址
+ if (key in receivJson) {
+ this.data.LinkedList.find((v) => {
+ if (v.deviceId == receive
+ .deviceId) {
+ let macStr = receivJson[
+ key];
+ if (macStr.includes(':')) {
+ v.macAddress = macStr;
+ } else {
+ v.macAddress = macStr
+ .replace(/(.{2})/g,
+ '$1:').slice(0,
+ -1)
+ }
+
+ isUpdate = true;
+ }
+ });
+
+ }
+ } catch (convertException) {
+ console.error("文本无法转json", convertException)
+ }
+
+ if (isUpdate) {
+ this.updateCache();
+ }
// console.log("str1=", str);
} catch (ex) {
console.error("将数据转文本失败", ex);
}
-
+
try {
console.log("11111");
let recData = {
@@ -746,7 +796,7 @@ class BleHelper {
str: str,
hexs: hexs
};
- console.log("监听到特征值:" + JSON.stringify(recData));
+ console.log("监听到特征值:" + JSON.stringify(recData));
if (this.cfg.receivDataCallback) {
if (this.cfg.receivDataCallback.length > 0) {
@@ -771,10 +821,10 @@ class BleHelper {
}
})
} else {
- console.log("无人订阅消息");
+ console.log("无人订阅消息");
}
} else {
- console.log("无人订阅receivDataCallback,不处理数据");
+ console.log("无人订阅receivDataCallback,不处理数据");
}
} catch (ex) {
console.error("处理订阅消息失败,ex=", ex);
@@ -811,6 +861,14 @@ class BleHelper {
}
//关闭蓝牙适配器
CloseBlue() {
+ if (this.data.platform == 'web') {
+ this.data.available = false;
+ this.data.discovering = false;
+ this.data.isOpenBlue = false;
+ this.data.searchList = [];
+
+ return Promise.resolve();
+ }
return new Promise((resolve, reject) => {
this.data.available = false;
this.data.discovering = false;
@@ -842,6 +900,9 @@ class BleHelper {
//开始搜索新设备
StartSearch() {
+ if (this.data.platform == 'web') {
+ return Promise.resolve({});
+ }
this.data.searchList = [];
var these = this;
//开始搜索
@@ -902,6 +963,9 @@ class BleHelper {
//停止搜索
StopSearch() {
+ if (this.data.platform == 'web') {
+ return Promise.resolve();
+ }
let p1 = new Promise((resolve, reject) => {
uni.stopBluetoothDevicesDiscovery({
success: (res) => {
@@ -1225,8 +1289,8 @@ class BleHelper {
}
setTimeout(function() {
startgetService(id);
-
- }, 100+repeatCnt*300);
+
+ }, 100 + repeatCnt * 300);
}
},
fail: (ex) => {
@@ -1341,7 +1405,9 @@ class BleHelper {
//连接某个设备
LinkBlue(deviceId, targetServiceId, writeCharId, notifyCharId, maxRetries) {
-
+ if(this.data.platform=='web'){
+ return Promise.resolve(true);
+ }
if (maxRetries === undefined) {
maxRetries = 0; // 最大重试次数
}
@@ -1414,11 +1480,11 @@ class BleHelper {
// .LinkedList);
// 处理 MTU 设置
- if (plus.os.name === 'Android') {
+ if (plus.os.name === 'Android') {
this.setMtu(deviceId);
- }
- resolve(true);
-
+ }
+ resolve(true);
+
}).catch((ex) => {
reject(this.getError(ex));
});
@@ -1502,9 +1568,9 @@ class BleHelper {
}
-
- setMtu(deviceId){
- let prom=new Promise((_succ,_err)=>{
+
+ setMtu(deviceId) {
+ let prom = new Promise((_succ, _err) => {
uni.setBLEMTU({
deviceId: deviceId,
mtu: 512,
@@ -1514,12 +1580,13 @@ class BleHelper {
},
fail: (ex) => {
console.error(
- "mtu设置失败",ex);
- ex=this.getError(ex);
+ "mtu设置失败", ex);
+ ex = this.getError(ex);
_err(
ex
); // MTU设置失败不影响连接成功
- },complete(){
+ },
+ complete() {
console.log("设置mtu完毕");
}
});
@@ -1528,6 +1595,9 @@ class BleHelper {
}
//断开连接
disconnectDevice(deviceId) {
+ if(this.data.platform=='web'){
+ return Promise.resolve();
+ }
var disconnect = (id) => {
return new Promise((resolve, reject) => {
uni.closeBLEConnection({
@@ -1587,11 +1657,11 @@ class BleHelper {
}
//向蓝牙设备发送一个字符串的ASCII码
sendString(deviceid, str, writeServiceId, wirteCharactId, ms) {
- if(str && typeof(str)=='object'){
- str=JSON.stringify(str);
+ if (str && typeof(str) == 'object') {
+ str = JSON.stringify(str);
}
if (str) {
-
+
let buffer = new ArrayBuffer(str.length);
let dataView = new DataView(buffer);
@@ -1631,7 +1701,9 @@ class BleHelper {
}
//向蓝牙设备发送数据,如果没连接将自动连接后再发
sendData(deviceid, buffer, writeServiceId, wirteCharactId, ms) {
-
+ if (this.data.platform == 'web') {
+ return Promise.resolve("h5平台默认成功");
+ }
// console.log("deviceid=" + deviceid + ",writeServiceId=" + writeServiceId + ",wirteCharactId=" +
// wirteCharactId + ",timeout=" + ms)
if (ms === undefined) {
diff --git a/utils/BleReceive.js b/utils/BleReceive.js
index df86874..3897d3f 100644
--- a/utils/BleReceive.js
+++ b/utils/BleReceive.js
@@ -7,6 +7,7 @@ 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_4877.bind(this)
};
}
@@ -519,6 +520,8 @@ class BleReceive {
return receiveData;
}
+
+
}
diff --git a/utils/Common.js b/utils/Common.js
index db0ae79..5fa6c55 100644
--- a/utils/Common.js
+++ b/utils/Common.js
@@ -280,5 +280,33 @@ export default {
}
}
return arr;
+ },
+ //10进制转换为16进制字符串
+ decimalToHexLittleEndian(num, byteCount,revers) {
+ // 处理负数(如果需要支持负数,可先转为补码)
+ if (num < 0) {
+ num = 0xFFFFFFFF + num + 1;
+ }
+
+ // 转为16进制,去除前缀0x,转为大写
+ let hex = num.toString(16).toUpperCase();
+
+ // 计算需要补充的0的数量,确保每个字节占2位
+ let padLength = (byteCount || Math.ceil(hex.length / 2) * 2) - hex.length;
+ if (padLength > 0) {
+ hex = '0'.repeat(padLength) + hex;
+ }
+
+ // 分割为字节数组(每2位一个字节)
+ const bytes = [];
+ for (let i = 0; i < hex.length; i += 2) {
+ bytes.push(hex.substr(i, 2));
+ }
+
+ // 是否反转字节顺序(低位在前)并拼接
+ if(revers){
+ return bytes.reverse().join('');
+ }
+ return bytes.join('');
}
}
\ No newline at end of file