# 📱 手机连接功能使用指南

## 🚁 无人机战场态势感知系统 - 手机扩展功能

这个功能允许你使用手机作为移动侦察设备，将手机摄像头图像、GPS位置和设备信息实时传输到指挥中心，扩展战场态势感知能力。

## 🌟 功能特性

### 📡 数据传输
- **实时视频流**: 传输手机摄像头画面到指挥中心
- **GPS定位**: 自动获取和传输手机的精确位置
- **设备状态**: 监控电池电量、信号强度等
- **人体检测**: 在手机端进行AI人体检测
- **地图集成**: 检测结果自动显示在指挥中心地图上

### 🛡️ 技术特点
- **低延迟传输**: 优化的数据压缩和传输协议
- **自动重连**: 网络中断后自动重新连接
- **多设备支持**: 支持多台手机同时连接
- **跨平台兼容**: 支持Android、iOS等主流移动设备

## 🚀 快速开始

### 1. 启动服务端

#### 方法一：使用Web模式（推荐）
```bash
python run.py
# 选择 "1. Web模式"
# 在Web界面中点击"启用手机模式"
```

#### 方法二：直接启动Web服务器
```bash
python main_web.py
```

### 2. 配置网络连接

确保手机和电脑在同一网络环境下：
- **局域网连接**: 连接同一WiFi网络
- **热点模式**: 电脑开启热点，手机连接
- **有线网络**: 电脑有线连接，手机连WiFi

### 3. 获取服务器IP地址

在电脑上查看IP地址：

**Windows:**
```cmd
ipconfig
```

**Linux/Mac:**
```bash
ifconfig
# 或
ip addr show
```

记下显示的IP地址（如 192.168.1.100）

### 4. 手机端连接

#### 方法一：使用浏览器（推荐）
1. 打开手机浏览器
2. 访问 `http://[服务器IP]:5000/mobile/mobile_client.html`
3. 例如：`http://192.168.1.100:5000/mobile/mobile_client.html`

#### 方法二：直接访问HTML文件
1. 将 `mobile/mobile_client.html` 复制到手机
2. 在文件中修改服务器IP地址
3. 用浏览器打开HTML文件

### 5. 开始传输
1. 在手机页面中点击"开始传输"
2. 允许摄像头和位置权限
3. 查看连接状态指示灯变绿
4. 在指挥中心Web界面查看实时数据

## 📱 手机端界面说明

### 状态面板
- **📍 GPS坐标**: 显示当前精确位置
- **🔋 电池电量**: 实时电池状态
- **🌐 连接状态**: 与服务器的连接状态

### 控制按钮
- **📹 开始传输**: 启动数据传输
- **⏹️ 停止传输**: 停止传输
- **🔄 重连**: 重新连接服务器

### 统计信息
- **📊 已发送帧数**: 传输的图像帧数量
- **📈 数据量**: 累计传输的数据量

### 日志面板
- 显示详细的操作日志和错误信息
- 帮助诊断连接问题

## 🖥️ 服务端管理

### Web界面控制
访问 `http://localhost:5000` 查看：
- **地图显示**: 实时显示手机位置和检测结果
- **设备管理**: 查看连接的手机列表
- **数据统计**: 查看传输统计信息

### API接口
- `GET /api/mobile/devices` - 获取连接设备列表
- `POST /api/mobile/toggle` - 切换手机模式开关
- `POST /mobile/ping` - 手机连接测试
- `POST /mobile/upload` - 接收手机数据

### 命令行监控
服务器控制台会显示详细日志：
```
📱 新设备连接: iPhone (mobile_12)
📍 设备 mobile_12 位置更新: (39.904200, 116.407400)
🎯 检测到 2 个人
📍 手机检测人员 1: 距离5.2m, 坐标(39.904250, 116.407450)
```

## ⚙️ 高级配置

### 修改传输参数

在手机端HTML文件中可以调整：

```javascript
// 修改服务器地址
this.serverHost = '192.168.1.100';
this.serverPort = 5000;

// 修改传输频率（毫秒）
const interval = 1000; // 1秒传输一次

// 修改图像质量（0.1-1.0）
const frameData = this.canvas.toDataURL('image/jpeg', 0.5);
```

### 网络优化

**低带宽环境:**
- 降低图像质量 (0.3-0.5)
- 增加传输间隔 (2-5秒)
- 减小图像分辨率

**高质量需求:**
- 提高图像质量 (0.7-0.9)
- 减少传输间隔 (0.5-1秒)
- 使用更高分辨率

## 🔧 故障排除

### 常见问题

#### 1. 手机无法连接服务器
- **检查网络**: 确保在同一网络
- **检查IP地址**: 确认服务器IP正确
- **检查防火墙**: 关闭防火墙或开放端口
- **检查端口**: 确认5000端口未被占用

#### 2. 摄像头无法访问
- **权限设置**: 在浏览器中允许摄像头权限
- **HTTPS需求**: 某些浏览器需要HTTPS才能访问摄像头
- **设备占用**: 关闭其他使用摄像头的应用

#### 3. GPS定位失败
- **位置权限**: 允许浏览器访问位置信息
- **网络连接**: 确保网络连接正常
- **室内环境**: 移动到有GPS信号的位置

#### 4. 传输断开
- **网络稳定性**: 检查WiFi信号强度
- **服务器状态**: 确认服务器正常运行
- **自动重连**: 等待自动重连或手动重连

### 调试方法

#### 手机端调试
1. 打开浏览器开发者工具 (F12)
2. 查看Console面板的错误信息
3. 检查Network面板的网络请求

#### 服务端调试
1. 查看控制台输出的日志信息
2. 使用 `python tests/test_system.py` 测试系统
3. 检查网络连接和端口状态

## 🌐 网络配置示例

### 局域网配置
```
电脑 (192.168.1.100) ←→ 路由器 ←→ 手机 (192.168.1.101)
```

### 热点配置
```
电脑热点 (192.168.137.1) ←→ 手机 (192.168.137.2)
```

### 有线+WiFi配置
```
电脑 (有线: 192.168.1.100) ←→ 路由器 ←→ 手机 (WiFi: 192.168.1.101)
```

## 📊 性能建议

### 推荐配置
- **网络**: WiFi 5GHz频段，带宽 ≥ 10Mbps
- **手机**: RAM ≥ 4GB，Android 8+ / iOS 12+
- **服务器**: 双核CPU，RAM ≥ 4GB

### 优化设置
- **高质量模式**: 0.7质量，1秒间隔
- **平衡模式**: 0.5质量，1秒间隔（推荐）
- **省流量模式**: 0.3质量，2秒间隔

## 🚁 实战应用场景

### 军用场景
- **前线侦察**: 士兵携带手机进行前方侦察
- **多点监控**: 多个观察点同时传输情报
- **指挥决策**: 指挥部实时获取战场态势

### 民用场景
- **安保监控**: 保安巡逻时实时传输画面
- **应急救援**: 救援人员现场情况汇报
- **活动监管**: 大型活动现场监控

### 技术演示
- **远程教学**: 实地教学直播
- **技术展示**: 产品演示和技术验证

---

## 📞 技术支持

如有问题，请：
1. 查看控制台日志信息
2. 运行系统测试脚本
3. 检查网络配置
4. 参考故障排除指南

这个手机连接功能大大扩展了战场态势感知系统的应用场景，让移动侦察成为可能！ 