From a28d4921a04236322a69df07a80a1613242bb9fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BE=AE=E5=BE=AE=E4=B8=80=E7=AC=91?= <709648985@qq.com>
Date: Thu, 20 Nov 2025 17:51:26 +0800
Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D6155=E8=93=9D=E7=89=99?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/6155/deviceDetail.vue | 229 ++++++++++++++++++++----------------
1 file changed, 129 insertions(+), 100 deletions(-)
diff --git a/pages/6155/deviceDetail.vue b/pages/6155/deviceDetail.vue
index 6c8b781..871ee27 100644
--- a/pages/6155/deviceDetail.vue
+++ b/pages/6155/deviceDetail.vue
@@ -446,6 +446,35 @@
}
},
methods: {
+ calcTotalPackets(frames) {
+ if (!Array.isArray(frames) || frames.length === 0) {
+ return 0;
+ }
+ return frames.reduce((frameSum, frame) => {
+ if (!Array.isArray(frame)) {
+ return frameSum;
+ }
+ const packSum = frame.reduce((packAcc, pack) => {
+ if (!Array.isArray(pack)) {
+ return packAcc;
+ }
+ return packAcc + pack.length;
+ }, 0);
+ return frameSum + packSum;
+ }, 0);
+ },
+ toByteValue(value) {
+ if (typeof value === 'number') {
+ return value;
+ }
+ if (typeof value === 'string') {
+ if (value.startsWith('0x') || value.startsWith('0X')) {
+ return parseInt(value, 16);
+ }
+ return parseInt(`0x${value}`, 16);
+ }
+ return 0;
+ },
deviceRecovry(res) {
if (this.Status.pageHide) {
return;
@@ -921,37 +950,42 @@
}
//视频切片
- let videoCutPacket = (array) => {
+ let videoCutPacket = (data) => {
return new Promise((resolve, reject) => {
try {
- let imgSize = 25600;
- let packetSize = 3200;
- let tdSize = 500;
+ const imgSize = 25600;
+ const packetSize = 3200;
+ const chunkSize = 500;
+ const maxPacketCount = 30;
+ let source = Array.isArray(data) ? data.slice() : [];
let results = [];
- for (let i = 0; i < 30; i++) { //先切出30张,每张25600字节
- let packet = array.slice(0, imgSize);
- array.splice(0, imgSize)
+ for (let i = 0; i < maxPacketCount && source.length >= imgSize; i++) {
+ let frameBytes = source.splice(0, imgSize);
+ let framePackets = [];
- let secondLevel = [];
- for (let j = 0; j < 8; j++) { //每张切8大包,每包3200字节
- let childPacket = packet.slice(0, packetSize);
+ for (let j = 0; j < 8 && frameBytes.length > 0; j++) {
+ let majorPacket = frameBytes.splice(0, packetSize);
+ let childPackets = [];
- packet.splice(0, packetSize);
-
- let thirdLevel = [];
- for (let k = 0; k < 7; k++) { //每1个大包切出7个小包,前6包500字节,第7包200字节,共计56小包
-
- let arr = childPacket.slice(0, tdSize);
-
- childPacket.splice(0, tdSize)
- thirdLevel.push(arr);
+ while (majorPacket.length > 0) {
+ let chunk = majorPacket.splice(0, chunkSize);
+ if (chunk.length) {
+ childPackets.push(chunk);
+ }
+ }
+ if (childPackets.length) {
+ framePackets.push(childPackets);
}
- secondLevel.push(thirdLevel);
}
- results.push(secondLevel);
+
+ if (framePackets.length) {
+ results.push(framePackets);
+ }
}
- updateLoading(these,{text:'切片完成,正在发送'});
+ updateLoading(these, {
+ text: '切片完成,正在发送'
+ });
resolve(results);
} catch (error) {
updateLoading(these, {
@@ -960,31 +994,25 @@
reject(error);
}
});
-
-
-
-
}
//发送视频到设备
let shotVideoClick = (array, type, ReSendNo) => {
var sendImagePackets = () => {
return new Promise((resolve, reject) => {
-
-
-
this.currentPacket = 0;
-
- // 总数据包数
- var totalPackets = 1680;
+ let totalPackets = these.calcTotalPackets(array);
this.totalPackets = totalPackets;
+ if (totalPackets === 0) {
+ reject('没有可发送的数据');
+ return;
+ }
let currentPacket = 1;
let imgIndex = 0;
let imgPackIndex = 0;
let childPacketIndex = 0;
if (ReSendNo) {
-
this.currentPacket = ReSendNo - 1;
currentPacket = ReSendNo;
totalPackets = ReSendNo;
@@ -992,96 +1020,88 @@
}
// 发送单个数据包
const sendNextPacket = () => {
- // console.log("111111")
- if (currentPacket > totalPackets) {
+ if (imgIndex >= array.length) {
resolve();
-
return;
}
- // console.log("111111")
- // 计算当前包的数据
- let packetSize = 500;
-
- if ((currentPacket - 1) % 56 === 0) {
-
- packetSize = 508;
-
+
+ if (!array[imgIndex]) {
+ console.error("没有找到对应的帧数据", imgIndex);
+ reject(`帧数据缺失,索引 ${imgIndex}`);
+ return;
}
-
- if (childPacketIndex === 6) {
- packetSize = 200;
+
+ let childPacketsGroup = array[imgIndex][imgPackIndex];
+ if (!childPacketsGroup || !childPacketsGroup.length) {
+ console.error("帧数据结构异常", imgIndex, imgPackIndex);
+ reject(`帧数据结构异常,帧 ${imgIndex}`);
+ return;
}
-
- if ((currentPacket - 1) % 56 === 55) {
- packetSize = 201;
+
+ let packetData = childPacketsGroup[childPacketIndex];
+ let packetSize = packetData.length;
+
+ const isFirstChild = childPacketIndex === 0;
+ const isLastChild = childPacketIndex === (childPacketsGroup.length - 1);
+
+ if (isFirstChild) {
+ packetSize = packetData.length + 8;
}
-
- console.log("imgIndex=" + imgIndex + ",imgPackIndex=" +
- imgPackIndex +
- ",childPacketIndex=" + childPacketIndex)
-
- let packetData = array[imgIndex][imgPackIndex][childPacketIndex];
-
- let buffer = new ArrayBuffer(packetSize);
- let dataView = new DataView(buffer);
-
- let sortNo = currentPacket.toString(16).padStart(4, '0');
- // console.log("11111");
+
+ if (isLastChild) {
+ packetSize = packetData.length + (isFirstChild ? 9 : 1);
+ }
+
+ const buffer = new ArrayBuffer(packetSize);
+ const dataView = new DataView(buffer);
+
let start = 0;
- if ((currentPacket - 1) % 56 === 0) {
+ if (isFirstChild) {
// 填充头部
dataView.setUint8(0, 0xFA); // 帧头
dataView.setUint8(1, 0x09); // 帧类型:开机画面
dataView.setUint8(2, 0x0C);
dataView.setUint8(3, 0x84);
-
-
dataView.setUint8(4, 0xFD);
dataView.setUint8(5, 0x09);
dataView.setUint8(6, imgIndex);
dataView.setUint8(7, imgPackIndex + 1);
start = 8;
}
- console.log("222222");
+
for (let i = 0; i < packetData.length; i++) {
- dataView.setUint8(start + i, '0x' + packetData[i]);
+ dataView.setUint8(start + i, these.toByteValue(packetData[i]));
}
- // console.log("333333333");
- if ((currentPacket - 1) % 56 === 55) {
- dataView.setUint8(200, 0xFF);
+
+ if (isLastChild) {
+ dataView.setUint8(packetSize - 1, 0xFF);
}
- // console.log("444444");
let inteval = parseInt(this.inteval ? this.inteval : 80);
-
- ble.sendData(f.deviceId, buffer, f.writeServiceId, f
- .wirteCharactId, ).then(() => {
+
+ ble.sendData(f.deviceId, buffer, f.writeServiceId, f.wirteCharactId).then(() => {
if (ReSendNo) {
-
resolve();
return;
}
// 更新进度
this.currentPacket = currentPacket;
-
+
updateLoading(these,{
text:'正在发送:'+currentPacket+"/"+totalPackets
});
-
-
+
childPacketIndex++;
- if (childPacketIndex == 7) {
- imgPackIndex++;
- if (imgPackIndex == 8) {
- imgIndex++;
- imgPackIndex = 0;
- }
+ if (childPacketIndex >= childPacketsGroup.length) {
childPacketIndex = 0;
+ imgPackIndex++;
+ if (imgPackIndex >= array[imgIndex].length) {
+ imgPackIndex = 0;
+ imgIndex++;
+ }
}
// 发送下一个包(添加延迟避免蓝牙缓冲区溢出)
currentPacket++;
-
-
-
+
setTimeout(sendNextPacket, inteval);
}).catch(err => {
if (err.code == 10007) {
@@ -1090,25 +1110,16 @@
setTimeout(sendNextPacket, 100);
return;
}
-
+
console.error(err.errMsg + ",发送失败了" + currentPacket);
updateLoading(these,{text:"发送失败,"+err.errMsg});
reject(err);
});
};
-
-
- // console.log("111111")
-
sendNextPacket();
-
});
}
-
return sendImagePackets();
-
-
-
}
uni.chooseVideo({
@@ -1143,7 +1154,25 @@
setTimeout(() => {
uplploadVideo(path).then(result => {
- videoCutPacket(result.data).then(array => {
+ let data = result.data;
+ let convertedData = [];
+ for (let i = 0; i < data.length; i += 2) {
+ if (i + 1 < data.length) {
+ const byte1 = these.toByteValue(data[i]);
+ const byte2 = these.toByteValue(data[i + 1]);
+ const rgb565 = (byte1 << 8) | byte2;
+ const red = (rgb565 & 0xF800) >> 11;
+ const green = (rgb565 & 0x07E0) >> 5;
+ const blue = (rgb565 & 0x001F);
+ const bgr565 = (blue << 11) | (green << 5) | red;
+ convertedData.push((bgr565 >> 8) & 0xFF);
+ convertedData.push(bgr565 & 0xFF);
+ } else {
+ convertedData.push(these.toByteValue(data[i]));
+ }
+ }
+
+ videoCutPacket(convertedData).then(array => {
let start = new Date();
console.log("开始发送");
@@ -1535,8 +1564,8 @@
});
console.log("result=", result);
- // var str1="FA 06 01 00 FF FF F7 9F EF 6F EC F7 EA 09 CF FF AF FB EF EB EF EB EC 6B EF EB EC 6B EF EB EF FB EE 63 FF FF FF FF F7 9F EF 6F EC F7 EA 09 CF FF AF FB EF EB EF EB EC 6B EF EB EC 6B EF EB EF FB EE 63 FF FF FF FF F7 FF 81 03 ED BB DD B7 CB CF F3 C7 CD 39 BE FF FE FF C0 03 FE FB FD FB F3 F7 8F 87 FF FF FF FF FE FF FE FF FE FF C0 03 FF FB FD FB FD FB FD FB FD FB FB FB FB FF F7 F7 EF F7 9F 8F FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
- // var str2="FA 07 01 00 FF FF EE DD EE DF EF 5B AB DF AA 03 AE FF AE FF EE 03 EE FF EE FF EE 03 EE FF EE FF EE E3 FF FF FF FF EE DD EE DF EF 5B AB DF AA 03 AE FF AE FF EE 03 EE FF EE FF EE 03 EE FF EE FF EE E3 FF FF FF FF EF 77 EF 73 EF 7F 80 01 EF 7F EF 7F EF 03 E7 3B 8E BB EE D7 EE EF ED E7 ED 9B 8B 7D FF FF FF FF FF FF F7 EF F7 F7 EF F7 DF FB FF FF FF FF FE FF 80 01 FE 7F FD BF FB DF F7 E7 9F F9 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
+ // var str1="FA 06 01 00 FF FF F7 9F EF 6F EC F7 EA 09 CF FF AF FB EF EB EF EB EC 6B EF EB EC 6B EF EB EF FB EE 63 FF FF FF FF F7 9F EF 6F EC F7 EA 09 CF FF AF FB EF EB EF EB EC 6B EF EB EC 6B EF EB EF FB EE 63 FF FF FF FF F7 FF 81 03 ED BB DD B7 CB CF F3 C7 CD 39 BE FF FE FF C0 03 FE FB FD FB F3 F7 8F 87 FF FF FF FF FE FF FE FF FE FF C0 03 FF FB FD FB FD FB FD FB FD FB FB FB FB FF F7 F7 EF F7 9F 8F FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
+ // var str2="FA 07 01 00 FF FF EE DD EE DF EF 5B AB DF AA 03 AE FF AE FF EE 03 EE FF EE FF EE 03 EE FF EE FF EE E3 FF FF FF FF EE DD EE DF EF 5B AB DF AA 03 AE FF AE FF EE 03 EE FF EE FF EE 03 EE FF EE FF EE E3 FF FF FF FF EF 77 EF 73 EF 7F 80 01 EF 7F EF 7F EF 03 E7 3B 8E BB EE D7 EE EF ED E7 ED 9B 8B 7D FF FF FF FF FF FF F7 EF F7 F7 EF F7 DF FB FF FF FF FF FE FF 80 01 FE 7F FD BF FB DF F7 E7 9F F9 FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
// var str3="FA 08 01 00 FF FF EF DF EC 01 EF FF AB FF AA 03 AA FB AE FB EE 03 EF DF EF DF EE DB ED DF ED DD EF 1F FF FF FF FF EF BF EF 87 81 77 EE F7 EC 03 81 7F EF 7F EF 7F EF 03 81 7F EF 7F EF 7D EF 7D EF 03 FF FF FF FF F9 F1 CF BF DF FF DF FF C1 FF DD 81 DD F7 DD F7 C1 F7 DF 77 FF 77 BF 77 BF 77 FF F7 FF FF FF FF FD FF FD FF FB FF FB FF F0 07 E7 F7 EF F7 D8 07 BF F7 FF F7 F8 07 FF F7 FF F7 FF C7 FF FF FF FF FF FF FF FF FF FF FE FF FE 7F FE 7F FE FF FD BF FD FF FB DF F7 EF EF F7 DF FB BF FD FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF"
// let arr1=('0x'+(str1.split(' ').join(",0x"))).split(',');
From ac7e1873cdb9d924de165d82db74f1822360c50d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BE=AE=E5=BE=AE=E4=B8=80=E7=AC=91?= <709648985@qq.com>
Date: Fri, 21 Nov 2025 11:07:10 +0800
Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D6155=E7=94=B5=E9=87=8F?=
=?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/6155/deviceDetail.vue | 11 ++++++++++-
utils/BleReceive.js | 3 +--
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/pages/6155/deviceDetail.vue b/pages/6155/deviceDetail.vue
index 871ee27..41c041f 100644
--- a/pages/6155/deviceDetail.vue
+++ b/pages/6155/deviceDetail.vue
@@ -574,12 +574,21 @@
if (!json) {
return;
}
+ console.log("收到设备数据:", json);
let keys = Object.keys(json);
keys.forEach((key) => {
if (key in these.formData) {
- these.formData[key] = json[key];
+ // 确保响应式更新
+ console.log(`更新字段 ${key}: ${these.formData[key]} -> ${json[key]}`);
+ these.$set(these.formData, key, json[key]);
+ } else {
+ console.log(`字段 ${key} 不在 formData 中,跳过更新`);
}
});
+
+ // 强制触发视图更新,确保电量显示同步
+ these.$forceUpdate();
+ console.log("更新后的电量:", these.formData.battary);
if (this.formData.battary <= 20) {
this.showPop({
diff --git a/utils/BleReceive.js b/utils/BleReceive.js
index b5f85e7..5d13216 100644
--- a/utils/BleReceive.js
+++ b/utils/BleReceive.js
@@ -476,8 +476,7 @@ class BleReceive {
let recCnt = recArr.find(v => {
- return v.key.replace(/\//g, "").toLowerCase() === f.device.detailPageUrl.replaceAll(
- '/', '').toLowerCase();
+ return v.key.replace(/\//g, "").toLowerCase() === f.device.detailPageUrl.replace(/\//g, '').toLowerCase();
From eea68b527616b0116c56090c72b158661d1aaffc Mon Sep 17 00:00:00 2001
From: fengerli <528575642@qq.com>
Date: Fri, 21 Nov 2025 11:10:47 +0800
Subject: [PATCH 3/5] =?UTF-8?q?6155=E9=99=90=E5=88=B6=E4=BA=BA=E5=91=98?=
=?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=8C=E6=96=87=E5=AD=97=E4=B8=8D=E8=83=BD?=
=?UTF-8?q?=E8=B6=85=E8=BF=877=E4=B8=AA=E5=AD=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/6155/deviceDetail.vue | 126 ++++++++++++++++++++++--------------
1 file changed, 77 insertions(+), 49 deletions(-)
diff --git a/pages/6155/deviceDetail.vue b/pages/6155/deviceDetail.vue
index 871ee27..1b7ce1a 100644
--- a/pages/6155/deviceDetail.vue
+++ b/pages/6155/deviceDetail.vue
@@ -77,7 +77,7 @@
泛光模式
-
+
+
@@ -929,7 +929,9 @@
if (res.statusCode === 200) {
if (res.data.code == 200) {
console.log("上传完成,耗时:" + m + "分" + s + "秒");
- updateLoading(these,{text:"上传完成,耗时:" + m + "分" + s + "秒,正在切片。"})
+ updateLoading(these, {
+ text: "上传完成,耗时:" + m + "分" + s + "秒,正在切片。"
+ })
resolve(res.data);
return;
@@ -995,7 +997,7 @@
}
});
}
-
+
//发送视频到设备
let shotVideoClick = (array, type, ReSendNo) => {
var sendImagePackets = () => {
@@ -1024,37 +1026,38 @@
resolve();
return;
}
-
+
if (!array[imgIndex]) {
console.error("没有找到对应的帧数据", imgIndex);
reject(`帧数据缺失,索引 ${imgIndex}`);
return;
}
-
+
let childPacketsGroup = array[imgIndex][imgPackIndex];
if (!childPacketsGroup || !childPacketsGroup.length) {
console.error("帧数据结构异常", imgIndex, imgPackIndex);
reject(`帧数据结构异常,帧 ${imgIndex}`);
return;
}
-
+
let packetData = childPacketsGroup[childPacketIndex];
let packetSize = packetData.length;
-
+
const isFirstChild = childPacketIndex === 0;
- const isLastChild = childPacketIndex === (childPacketsGroup.length - 1);
-
+ const isLastChild = childPacketIndex === (childPacketsGroup
+ .length - 1);
+
if (isFirstChild) {
packetSize = packetData.length + 8;
}
-
+
if (isLastChild) {
packetSize = packetData.length + (isFirstChild ? 9 : 1);
}
-
+
const buffer = new ArrayBuffer(packetSize);
const dataView = new DataView(buffer);
-
+
let start = 0;
if (isFirstChild) {
// 填充头部
@@ -1068,28 +1071,30 @@
dataView.setUint8(7, imgPackIndex + 1);
start = 8;
}
-
+
for (let i = 0; i < packetData.length; i++) {
dataView.setUint8(start + i, these.toByteValue(packetData[i]));
}
-
+
if (isLastChild) {
dataView.setUint8(packetSize - 1, 0xFF);
}
let inteval = parseInt(this.inteval ? this.inteval : 80);
-
- ble.sendData(f.deviceId, buffer, f.writeServiceId, f.wirteCharactId).then(() => {
+
+ ble.sendData(f.deviceId, buffer, f.writeServiceId, f
+ .wirteCharactId).then(() => {
if (ReSendNo) {
resolve();
return;
}
// 更新进度
this.currentPacket = currentPacket;
-
- updateLoading(these,{
- text:'正在发送:'+currentPacket+"/"+totalPackets
+
+ updateLoading(these, {
+ text: '正在发送:' + currentPacket + "/" +
+ totalPackets
});
-
+
childPacketIndex++;
if (childPacketIndex >= childPacketsGroup.length) {
childPacketIndex = 0;
@@ -1101,7 +1106,7 @@
}
// 发送下一个包(添加延迟避免蓝牙缓冲区溢出)
currentPacket++;
-
+
setTimeout(sendNextPacket, inteval);
}).catch(err => {
if (err.code == 10007) {
@@ -1110,9 +1115,11 @@
setTimeout(sendNextPacket, 100);
return;
}
-
+
console.error(err.errMsg + ",发送失败了" + currentPacket);
- updateLoading(these,{text:"发送失败,"+err.errMsg});
+ updateLoading(these, {
+ text: "发送失败," + err.errMsg
+ });
reject(err);
});
};
@@ -1125,7 +1132,7 @@
uni.chooseVideo({
sourceType: ['album'],
success: function(res) {
- console.log("res=",res);
+ console.log("res=", res);
let path = res.tempFilePath;
let width = res.width;
let height = res.height;
@@ -1173,29 +1180,32 @@
}
videoCutPacket(convertedData).then(array => {
-
- let start = new Date();
- console.log("开始发送");
- shotVideoClick(array).then(() => {
- console.log("发送完成");
- let end = new Date();
- var diff = (end.getTime() - start.getTime()) / 1000;
- let s =parseInt(diff % 60);
- let m =parseInt((diff - s) / 60);
- console.log("发送完成,耗时:" + m + "分" + s + "秒");
- updateLoading(these,{
- text: "发送完成,耗时:" + m + "分" + s + "秒",
- });
-
- }).catch((ex1) => {
- console.log("出现了异常", ex1)
- }).finally(() => {
- timeDelayCloseLoading();
- });
-
-
-
-
+
+ let start = new Date();
+ console.log("开始发送");
+ shotVideoClick(array).then(() => {
+ console.log("发送完成");
+ let end = new Date();
+ var diff = (end.getTime() - start
+ .getTime()) / 1000;
+ let s = parseInt(diff % 60);
+ let m = parseInt((diff - s) / 60);
+ console.log("发送完成,耗时:" + m + "分" +
+ s + "秒");
+ updateLoading(these, {
+ text: "发送完成,耗时:" + m +
+ "分" + s + "秒",
+ });
+
+ }).catch((ex1) => {
+ console.log("出现了异常", ex1)
+ }).finally(() => {
+ timeDelayCloseLoading();
+ });
+
+
+
+
}).catch(err => {
timeDelayCloseLoading();
});
@@ -1458,6 +1468,24 @@
these.showBleUnConnect()
return;
}
+ let err = false;
+ this.formData.textLines.find((txt) => {
+ if (txt.length === 0 || txt.length > 7) {
+ console.log("txt=", txt);
+ err = true;
+ return true;
+ }
+ return false;
+ })
+ if (err) {
+ this.showPop({
+ message: "单位、部门、姓名必须填写且最多7字",
+ iconUrl: "/static/images/6155/DeviceDetail/uploadErr.png",
+ borderColor: "#e034344d",
+ buttonBgColor: "#E03434",
+ });
+ return;
+ }
showLoading(these, {
text: "请稍候..."
});
From a7f09dfbc22b3688a216a0e6e2d99eb1cf2a597e Mon Sep 17 00:00:00 2001
From: fengerli <528575642@qq.com>
Date: Fri, 21 Nov 2025 11:24:04 +0800
Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87?=
=?UTF-8?q?=E7=94=B5=E9=87=8F=E4=BD=8E=EF=BC=8C=E9=87=8D=E5=A4=8D=E5=BC=B9?=
=?UTF-8?q?=E6=A1=86=E6=8F=90=E7=A4=BA=E4=B8=A4=E4=B8=AA=E5=BC=B9=E6=A1=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
utils/BleReceive.js | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/utils/BleReceive.js b/utils/BleReceive.js
index 5d13216..36aaea6 100644
--- a/utils/BleReceive.js
+++ b/utils/BleReceive.js
@@ -483,11 +483,11 @@ class BleReceive {
});
if (!recCnt) {
if (batteryLevel <= 20) {
-
- uni.showModal({
- content: "设备电量低",
- title: "提示"
- });
+ // 会弹出两个框,暂且注释掉这段代码
+ // uni.showModal({
+ // content: "设备电量低",
+ // title: "提示"
+ // });
}
}
From ad85c922e19571615846a845ecdba5433eb247c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=BE=AE=E5=BE=AE=E4=B8=80=E7=AC=91?= <709648985@qq.com>
Date: Fri, 21 Nov 2025 13:25:38 +0800
Subject: [PATCH 5/5] =?UTF-8?q?6155=E8=A7=A3=E5=86=B3=20iOS=20=E4=B8=8A?=
=?UTF-8?q?=E7=9A=84=E5=88=86=E8=BE=A8=E7=8E=87=E6=A3=80=E6=9F=A5=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/6155/deviceDetail.vue | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/pages/6155/deviceDetail.vue b/pages/6155/deviceDetail.vue
index 41c041f..6dae39d 100644
--- a/pages/6155/deviceDetail.vue
+++ b/pages/6155/deviceDetail.vue
@@ -1136,16 +1136,19 @@
success: function(res) {
console.log("res=",res);
let path = res.tempFilePath;
- let width = res.width;
- let height = res.height;
+ // iOS可能返回浮点数,需要转换为整数进行比较
+ let width = Math.round(res.width);
+ let height = Math.round(res.height);
let duration = res.duration;
+ console.log("视频信息 - 宽度:", width, "高度:", height, "时长:", duration);
let err = [];
if (duration < 2) {
err.push("视频时长至少2秒");
}
- if (width != 160 || height != 80) {
- err.push("视频宽高必须是160*80");
+ // 使用容差比较,允许1像素的误差(iOS可能有精度问题)
+ if (Math.abs(width - 160) > 1 || Math.abs(height - 80) > 1) {
+ err.push("视频宽高必须是160*80,当前分辨率:" + width + "*" + height);
}
if (err.length > 0) {
err = err.join(";");