# 模拟电动扳手服务器使用说明 ## 概述 `wrench_simulator.py` 是一个模拟电动扳手服务器,用于测试和开发。它模拟真实扳手的行为,接收设定参数并返回正确的响应。 ## 功能特性 1. **接收参数设置(功能码0x10)**:接收并解析扭矩参数设置,返回应答 2. **接收启停控制(功能码0x01)**:接收启动/停止命令,返回应答 3. **自动返回成功结果(功能码0x15)**:启动后等待1秒,自动发送成功结果 4. **支持远程控制(功能码0x11)**:支持启用/停止远程控制 5. **多客户端支持**:支持多个客户端同时连接 ## 使用方法 ### 1. 启动模拟扳手服务器 ```bash python wrench_simulator.py ``` 服务器将监听 `0.0.0.0:7888`(默认配置),等待客户端连接。 ### 2. 运行测试脚本 在另一个终端运行: ```bash python test_simulator.py ``` 或者直接使用 `wrench_controller.py`: ```bash python wrench_controller.py ``` ## 工作流程 1. **客户端连接**:客户端连接到服务器 2. **启用远程控制**:发送功能码0x11启用远程控制 3. **设定参数**:发送功能码0x10设定扭矩参数 4. **启动扳手**:发送功能码0x01启动扳手(正转或反转) 5. **等待结果**:服务器等待1秒后自动发送成功结果(功能码0x15) ## 协议支持 ### 已实现的功能码 - **0x11**: 启停远程控制 - **0x01**: 扳手启停控制 - **0x06**: 应答控制 - **0x10**: 参数设置 - **0x15**: 执行结果反馈 - **0x17**: 结果反馈确认 ### 返回状态码 - **0x00**: 成功-OK - **0x01**: 成功-扭矩到达(默认) - **0x02**: 成功-位置到达 ## 配置说明 可以在代码中修改以下参数: ```python simulator = WrenchSimulator( host="0.0.0.0", # 监听地址 port=7888, # 监听端口 address=0x01 # 设备地址码 ) ``` ## 注意事项 1. 确保端口7888未被占用 2. 模拟服务器会自动递增螺栓号 3. 实际扭矩值会略高于目标扭矩值(+5 Nm)以模拟成功 4. 只有在启用远程控制后,启停命令才会生效 ## 测试场景 ### 场景1:基本测试 - 启用远程控制 - 设定扭矩参数(M1模式,300Nm) - 启动扳手 - 接收成功结果 ### 场景2:角度模式测试 - 启用远程控制 - 设定扭矩参数(M2模式,目标角度90°) - 启动扳手 - 接收成功结果 ## 调试信息 服务器会输出详细的调试信息: - 📥 接收到的数据(十六进制) - 📤 发送的响应(十六进制) - 📋 处理的功能码 - ✅ 成功操作 - ❌ 错误信息 ## 故障排除 1. **连接被拒绝**:检查服务器是否已启动 2. **端口被占用**:修改端口号或关闭占用端口的程序 3. **无响应**:检查网络连接和防火墙设置