# iot-util **Repository Path**: superYZG/iot-util ## Basic Information - **Project Name**: iot-util - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-11 - **Last Updated**: 2025-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Modbus调试工具集 这是一个完整的Modbus调试工具集,包含命令行工具和可视化GUI界面,支持TCP桥接和RTU串口通信。 ## 🚀 快速开始 ### 方法1:使用专用GUI启动脚本(推荐) ```bash python main.py ``` ### 方法2:使用通用启动器 ```bash python start_modbus_tools.py --gui ``` ### 方法3:直接运行 ```bash python gui/modbus_debug_gui.py ``` ## 📁 项目结构 ``` iot-util/ ├── utils/ # 工具包 │ ├── __init__.py │ ├── gui/ # GUI调试工具 │ │ ├── __init__.py │ │ └── modbus_debug_gui.py # 主GUI程序 │ ├── server/ # 网络通信工具 │ │ ├── __init__.py │ │ ├── data_parse.py # Modbus数据解析库 │ │ ├── tcp_server.py # TCP服务器 │ │ ├── tcp_client.py # TCP客户端 │ │ └── modbus_tcp_bridge.py # TCP桥接工具 │ └── modbus/ # Modbus协议工具 │ ├── __init__.py │ ├── modbus_rs232.py # RS232通信 │ ├── modbus_rtu.py # RTU协议 │ └── modbus_tcp.py # TCP协议 ├── config/ # 配置文件 ├── __init__.py # 项目包初始化 ├── setup.py # 项目安装配置 ├── requirements.txt # 依赖列表 ├── run_gui.py # GUI专用启动脚本 ├── start_modbus_tools.py # 统一启动器 └── README.md # 项目说明 ``` ## ✨ 主要功能 ### 🖥️ GUI调试工具特性 #### 1. TCP服务器控制台 - ✅ 启动/停止内置TCP服务器 - ✅ 实时显示服务器地址和端口 - ✅ 客户端连接管理和状态监控 - ✅ 数据广播功能 - ✅ 自动Modbus数据解析和显示 #### 2. TCP桥接调试 - ✅ 连接到TCP服务器(默认127.0.0.1:9010) - ✅ 连接到Modbus TCP设备(默认127.0.0.1:5020) - ✅ 发送Modbus指令并自动转换TCP响应为RTU格式 - ✅ 实时显示通信日志 - ✅ 自动CRC计算和验证 #### 3. Modbus RTU串口调试 - ✅ 支持多种串口参数配置 - ✅ **实时串口检测** - 每3秒自动刷新,检测新插入的设备 - ✅ 发送和接收RTU格式数据 - ✅ **智能CRC处理**: - 🔲 自动CRC计算勾选框 - 🔍 自动检测指令是否包含CRC - ⚡ 智能添加或验证CRC校验码 - ✅ **颜色区分显示**: - 🖤 发送消息:黑色显示 - 💚 接收消息:绿色显示 - ✅ 自动解析Modbus协议 - ✅ 手动CRC计算工具 ### 🛠️ 命令行工具 - **tcp_server.py** - 功能完整的TCP服务器 - **tcp_client.py** - TCP客户端工具 - **modbus_tcp_bridge.py** - Modbus TCP桥接工具 - **data_parse.py** - Modbus数据解析库 ## 📋 使用方法 ### 方法1:快速启动GUI(推荐) ```bash # 使用专用GUI启动脚本 python main.py ``` ### 方法2:使用通用启动器 ```bash # 启动GUI工具 python start_modbus_tools.py --gui # 启动TCP服务器 python start_modbus_tools.py --server # 启动TCP桥接工具 python start_modbus_tools.py --bridge # 启动TCP客户端 python start_modbus_tools.py --client # 交互式选择 python start_modbus_tools.py ``` ### 方法3:直接运行 ```bash # GUI工具 python utils/gui/modbus_debug_gui.py # TCP服务器 python utils/server/tcp_server.py # TCP桥接工具 python utils/server/modbus_tcp_bridge.py ``` ## 🔧 环境配置 ### Conda环境(推荐) ```bash # 激活iot-gateway环境 conda activate iot-gateway # 安装依赖 conda install pyserial # 或者 pip install pyserial>=3.5 ``` ### 普通Python环境 ```bash pip install pyserial>=3.5 ``` 详细的conda环境配置请参考:[conda_setup.md](conda_setup.md) ## 💡 使用场景 ### 场景1:Modbus设备调试 1. 启动GUI工具 2. 在"Modbus RTU串口"标签页配置串口参数 3. **勾选"自动计算CRC"** - 系统会自动处理CRC校验 4. 输入不带CRC的指令,如:`01 03 00 01 00 01` 5. 发送指令,系统自动添加CRC并发送完整指令 6. 观察日志:发送消息为黑色,接收消息为绿色 ### 场景2:TCP数据转发 1. 启动TCP服务器(用于接收数据) 2. 启动TCP桥接工具 3. 连接Modbus TCP设备 4. 发送指令,数据自动转发到服务器 ### 场景3:协议分析 1. 启动TCP服务器控制台 2. 客户端连接后发送数据 3. 实时查看详细的Modbus协议解析结果 ## 🧪 测试功能 ### TCP服务器测试 ```bash # 1. 启动GUI工具 python main.py # 2. 在TCP服务器控制台中启动服务器 # 3. 运行测试脚本 python test_tcp_server.py ``` 测试脚本会发送多种类型的数据: - ✅ Modbus RTU数据(完整解析) - ✅ 非Modbus数据(原始数据分析) - ✅ 文本数据和二进制数据 ### CRC功能测试 ```bash # 测试CRC计算功能 python test_crc_feature.py ``` 测试包含三种CRC场景: - 📝 没有CRC的指令 → 自动计算并添加 - ✅ 有正确CRC的指令 → 验证通过 - ❌ 有错误CRC的指令 → 检测错误并提供正确版本 ## 🎯 核心亮点 ### 1. 🔄 实时串口检测 - 程序运行时插入新的串口设备会自动检测 - 无需手动刷新,提升调试效率 ### 2. 🔧 智能CRC处理 - **自动CRC勾选框**:一键开启/关闭自动CRC功能 - **智能检测**:自动判断指令是否已包含CRC - **自动计算**:没有CRC时自动计算并添加 - **CRC验证**:有CRC时验证正确性 - **颜色区分**:发送消息黑色,接收消息绿色 ### 3. 🔀 协议转换 - Modbus TCP响应自动转换为RTU格式 - 保持数据完整性 - 适配不同协议需求 ### 4. 📊 三合一界面 - TCP服务器控制台 - TCP桥接调试 - RTU串口调试 - 一个工具解决所有需求 ## 📖 详细文档 更多详细使用说明请查看:[socket_utils/README.md](socket_utils/README.md) ## 🐛 故障排除 ### 常见问题 1. **GUI无法启动** ```bash # 检查依赖 pip install pyserial # 检查Python版本(需要3.6+) python --version ``` 2. **串口无法打开** - 检查串口是否被其他程序占用 - 确认串口参数设置正确 - 检查串口权限(Linux/Mac需要sudo或加入dialout组) 3. **无法连接Modbus设备** - 检查设备IP地址和端口 - 检查网络连接 - 确认设备支持Modbus TCP协议 ## 📝 版本信息 - **版本**: v2.0 - **更新内容**: - ✅ 新增TCP服务器控制台 - ✅ 实时串口检测功能 - ✅ 重构GUI界面布局 - ✅ 优化用户体验 - **更新日期**: 2024年 ## 🤝 贡献 欢迎提交Issue和Pull Request来改进这个工具集! ## 📄 许可证 本项目采用MIT许可证。