Initial commit
This commit is contained in:
209
MANUAL_DEBUG_GUIDE.md
Normal file
209
MANUAL_DEBUG_GUIDE.md
Normal 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)
|
||||
});
|
||||
```
|
||||
|
||||
现在您可以完全控制调试过程,不会被后台自动更新干扰了!🎮🛠️✨
|
||||
Reference in New Issue
Block a user