Initial commit

This commit is contained in:
zyp
2026-05-22 16:13:20 +08:00
commit b3089a254e
1444 changed files with 372077 additions and 0 deletions

209
MANUAL_DEBUG_GUIDE.md Normal file
View File

@@ -0,0 +1,209 @@
# 🛠️ 手动调试模式控制指南
## 🎯 概述
为了方便调试QB303设备显示我已经为您添加了手动调试模式。现在您可以完全控制设备数据的更新时机避免后台自动更新干扰调试。
## 🚀 使用方法
### **1. 开启手动调试模式**
```javascript
// 在浏览器控制台执行
enableManualDebug()
```
**执行后会看到:**
```
🛑 手动调试模式已开启 - 所有自动更新已暂停
📋 可用的手动调试命令:
- manualUpdateDevices() : 手动更新一次所有设备
- disableManualDebug() : 恢复自动更新模式
- testQB303Data() : 测试QB303设备数据
- forceRefreshQB303() : 强制刷新QB303设备显示
```
### **2. 手动更新设备数据**
```javascript
// 手动更新一次所有设备包括无人机、无人车、QB303设备
manualUpdateDevices()
```
### **3. QB303专用调试命令**
```javascript
// 测试QB303设备数据模拟WebSocket数据
testQB303Data()
// 强制刷新QB303设备显示清理重建
forceRefreshQB303()
```
### **4. 恢复自动更新模式**
```javascript
// 关闭手动调试模式恢复每2秒自动更新
disableManualDebug()
```
## 🔍 调试流程建议
### **标准调试流程:**
1. **开启手动模式**
```javascript
enableManualDebug()
```
2. **清理现有数据**
```javascript
// 清理地图上的所有设备标记
clearAllDeviceMarkers()
```
3. **测试QB303设备**
```javascript
// 发送测试数据
testQB303Data()
```
4. **检查数据状态**
```javascript
// 检查QB303设备数据
console.log('QB303设备数据:', window.m3Data.qb303DeviceData);
console.log('localStorage数据:', JSON.parse(localStorage.getItem("index-otherEquipmentList") || "[]"));
```
5. **强制刷新显示**
```javascript
// 如果设备没有显示,强制刷新
forceRefreshQB303()
```
6. **手动更新(可选)**
```javascript
// 手动更新一次所有设备
manualUpdateDevices()
```
## 🎮 高级调试命令
### **地图控制**
```javascript
// 飞行到QB303设备位置
window.m3Data.map.flyTo({
destination: Cesium.Cartesian3.fromDegrees(112.8945530952381, 28.20648476190476, 1000)
});
// 检查图形图层
console.log('图形图层数量:', window.m3Data.graphicLayer.length);
console.log('图形图层内容:', window.m3Data.graphicLayer._graphics);
```
### **数据检查**
```javascript
// 检查设备在线状态
const devices = JSON.parse(localStorage.getItem("index-otherEquipmentList") || "[]");
console.log('在线QB303设备:', devices.filter(d => d.equipmentType === 'QB303设备' && d.online_status));
// 检查设备坐标
devices.forEach(device => {
if (device.equipmentType === 'QB303设备') {
console.log(`设备 ${device.equipmentId}: [${device.longitude}, ${device.latitude}, ${device.altitude}]`);
}
});
```
### **图标测试**
```javascript
// 手动创建测试图标验证显示
const testIcon = new mars3d.graphic.BillboardEntity({
position: [112.8945530952381, 28.20648476190476, 200],
style: {
image: '/img/flyDevices.jpg',
scale: 1.0,
label: {
text: 'TEST-QB303',
fillColor: Cesium.Color.RED
}
}
});
window.m3Data.graphicLayer.addGraphic(testIcon);
console.log('测试图标已添加');
```
## 📊 状态监控
### **实时状态检查**
```javascript
// 创建状态监控函数
window.debugStatus = () => {
console.log('=== 调试状态报告 ===');
console.log('手动调试模式:', manualDebugMode ? '🛑 开启' : '🟢 关闭');
console.log('定时器状态:', timer ? '🔄 运行中' : '⏸️ 已停止');
console.log('QB303设备数量:', Object.keys(window.m3Data.qb303DeviceData || {}).length);
console.log('图形图层数量:', window.m3Data.graphicLayer.length);
const devices = JSON.parse(localStorage.getItem("index-otherEquipmentList") || "[]");
const onlineQB303 = devices.filter(d => d.equipmentType === 'QB303设备' && d.online_status);
console.log('localStorage中在线QB303设备:', onlineQB303.length);
console.log('==================');
};
// 执行状态检查
debugStatus()
```
## 🚨 常见问题解决
### **问题1设备数据更新但地图不显示**
```javascript
// 解决方案:强制刷新
forceRefreshQB303()
```
### **问题2想要重新开始调试**
```javascript
// 完整重置流程
enableManualDebug() // 停止自动更新
clearAllDeviceMarkers() // 清理地图标记
testQB303Data() // 重新发送测试数据
forceRefreshQB303() // 强制刷新显示
```
### **问题3想要恢复正常运行**
```javascript
// 恢复自动模式
disableManualDebug()
```
## 🎯 调试技巧
1. **分步调试**: 一次只执行一个命令,观察结果
2. **检查日志**: 关注控制台的详细输出信息
3. **数据验证**: 先确认数据正确,再检查显示问题
4. **位置确认**: 使用flyTo命令飞行到设备位置查看
5. **图标测试**: 如有疑问,先手动创建测试图标验证
## 📋 快速命令参考
```javascript
// === 基础控制 ===
enableManualDebug() // 开启手动模式
disableManualDebug() // 关闭手动模式
manualUpdateDevices() // 手动更新设备
// === QB303专用 ===
testQB303Data() // 测试QB303数据
forceRefreshQB303() // 强制刷新QB303
// === 调试工具 ===
debugStatus() // 状态报告
clearAllDeviceMarkers() // 清理地图标记
// === 地图控制 ===
// 飞行到QB303位置
window.m3Data.map.flyTo({
destination: Cesium.Cartesian3.fromDegrees(112.895, 28.206, 1000)
});
```
现在您可以完全控制调试过程,不会被后台自动更新干扰了!🎮🛠️✨