You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
2.3 KiB

请为我创建一个基于 FastAPI 的“终端设备控制平台”项目,命名为 TermControlAgent,具备以下特性:
1. 提供统一的 HTTP API 接口,控制各种连接的设备(如手机、嵌入式模块、远程主机等);
2. 支持以下控制协议/方式,并可按设备绑定使用:
- ADB(支持点击、输入、截图、安装、拉日志等)
- ATX(基于 uiautomator2 控制 Android 手机)
- HDC(华为设备控制命令)
- AT 指令(通过串口发送)
- PLNK(假设为自定义通信协议,通过 TCP/串口等)
- SSH(通过远程执行 shell 命令)
3. 项目需具备模块化结构,包含:
- `api/`: 路由层,定义 HTTP 接口(如点击、输入、命令执行等)
- `services/`: 不同协议的控制器/适配器,如 `adb_service.py`、`ssh_service.py`
- `core/`: 配置管理、统一协议路由器、设备状态管理
- `schemas/`: 请求/响应模型(Pydantic)
- `utils/`: 通用工具(串口、TCP、CRC、日志封装等)
- `main.py`: FastAPI 启动入口
4. 具体接口建议包括:
- `GET /devices`:列出所有连接的设备(含类型、状态、协议)
- `POST /devices/{id}/click`:执行点击操作(仅限支持图形界面协议)
- `POST /devices/{id}/input`:输入文字
- `GET /devices/{id}/screenshot`:返回当前屏幕截图
- `POST /devices/{id}/exec`:通过 SSH 执行命令
- `POST /devices/{id}/send-at`:发送 AT 指令并返回原始响应
- `POST /devices/{id}/send-plnk`:通过 PLNK 协议发送十六进制报文并解析响应
- `POST /devices/{id}/install`:上传并安装 APK(ADB / HDC)
- `GET /devices/{id}/logcat`:获取实时日志(支持 ADB)
5. 协议应当使用统一注册与调度器设计,例如通过 `device_id``protocol_type` 映射调用不同 service。
6. 支持 WebSocket 通道推送设备状态(如上线、离线、执行反馈)
7. 输出标准 `requirements.txt` 文件,包含:
- fastapi, uvicorn, adbutils, uiautomator2, pyserial, paramiko (SSH), httpx, websockets 等
8. 请生成以下内容:
- 项目目录结构
- 核心代码框架(至少包含 adb/ssh/at 示例服务类 + 路由注册)
- 示例点击、执行命令、发送 AT 指令接口