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
42 lines
2.3 KiB
|
4 months ago
|
请为我创建一个基于 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 指令接口
|