# ChenxiConsole **Repository Path**: mymcu/chenxi-console ## Basic Information - **Project Name**: ChenxiConsole - **Description**: 自己用的控制台WPF版,简单的网络工具,支持server和client,计划支持串口,CAN通信等,慢慢来吧 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2025-09-14 - **Last Updated**: 2025-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📱 通信控制台 (WpfApp_ChenxiConsole)

一个功能丰富、界面美观的WPF通信控制台应用程序


WPF应用程序 TCP客户端 TCP服务器 UDP通信 多编码支持 文件加载支持 ECU OTA支持 选项卡管理支持
## 📋 目录 - [项目简介](#-项目简介) - [功能特点](#-功能特点) - [快速开始](#-快速开始) - [使用说明](#-使用说明) - [许可证](#-许可证) ## 📝 项目简介 这是一个基于WPF(Windows Presentation Foundation)开发的现代化通信控制台应用程序,支持TCP/UDP通信、文件加载和ECU OTA升级功能。应用程序实现了TCP客户端功能和UDP通信功能(包括单播、组播和广播),支持与各类服务器进行高效、稳定的通信;同时提供了BIN/HEX文件加载功能,用于文件解析和处理;还添加了ECU OTA升级功能,支持ECU设备的固件升级和配置。应用采用选项卡管理界面,可动态添加和移除TCP/UDP选项卡,同时具有全局异常处理机制,确保应用稳定运行。该应用程序设计简洁直观,操作便捷,适用于各种网络通信测试、调试、文件处理以及设备升级场景。 ## ✨ 功能特点 ### ✨ 核心功能 - **📡 多协议通信**:TCP客户端/服务器、UDP全模式传输 - **🔤 全编码支持**:UTF-8/ASCII/GB2312/GBK/Unicode - **🕒 精准时序**:可切换时间戳,时序优化 - **📦 文件处理**:BIN/HEX解析加载、文件记录管理 - **🔧 设备管控**:ECU OTA升级(含CRC32校验)、TCP/UDP选项卡控制 - **🎨 界面体验**:响应式布局、消息彩色标识、个性化设置 - **🛡️ 稳定运行**:全局异常处理、错误日志记录 ## 📁 项目结构 优化后的模块化结构,按功能职责清晰划分: ``` chenxi-console/ ├── Controls/ # 自定义UI控件 ├── Network/ # 网络通信模块 │ ├── TCP/ # TCP协议实现 │ └── UDP/ # UDP协议实现 ├── Services/ # 核心服务模块 │ ├── FileIO/ # 文件读写服务 │ └── OTA/ # 设备升级服务 ├── App.xaml # 应用入口 ├── MainWindow.xaml # 主窗口界面 └── 配置文件与解决方案文件 ``` 关键模块说明: - **Network**:集中管理所有网络通信相关实现 - **Services**:封装文件处理、OTA升级等核心业务逻辑 - **Controls**:存放可复用的自定义界面组件 ```text ├── MainWindow.xaml # 用户界面定义文件 ├── MainWindow.xaml.cs # 界面交互逻辑代码,包含选项卡管理功能 ├── FileIO/ # 文件IO相关功能模块 │ └── FileLoader.cs # 文件加载器类,处理BIN和HEX文件加载 ├── TCP/ # TCP通信相关功能模块 │ ├── TcpClientInfo.cs # TCP客户端信息类 │ ├── TcpClientManager.cs # TCP客户端管理类,封装通信核心功能 │ ├── TcpServerManager.cs # TCP服务器管理类,处理端口监听和客户端连接 │ ├── TcpConsoleControl.xaml # TCP客户端控制台界面 │ ├── TcpConsoleControl.xaml.cs # TCP客户端控制台界面逻辑 │ ├── TcpServerConsoleControl.xaml # TCP服务器控制台界面 │ └── TcpServerConsoleControl.xaml.cs # TCP服务器控制台界面逻辑 ├── UDP/ # UDP通信相关功能模块 │ ├── UdpManager.cs # UDP通信管理类,支持单播、组播和广播 │ ├── UdpConsoleControl.xaml # UDP控制台界面 │ └── UdpConsoleControl.xaml.cs # UDP控制台界面逻辑 ├── Controls/ # 自定义控件 │ ├── LoadedFilesViewer.xaml # 已加载文件查看器界面 │ └── LoadedFilesViewer.xaml.cs # 已加载文件查看器逻辑 ├── OTA/ # ECU OTA升级相关功能模块 │ ├── EcuOtaManager.cs # ECU OTA升级管理类 │ ├── EcuOtaConfigWindow.xaml # ECU OTA配置窗口 │ └── EcuOtaConfigWindow.xaml.cs # ECU OTA配置窗口逻辑 ├── CAN/ # CAN通信相关功能(待实现) ├── USART/ # USART通信相关功能(待实现) ├── Client/ # 客户端相关功能 ├── App.xaml # 应用程序入口配置 ├── App.xaml.cs # 应用程序入口逻辑,包含全局异常处理 └── WpfApp_ChenxiConsole.csproj # 项目文件 ``` ## 🚀 使用说明 ### 🔄 ECU OTA升级功能 1. 通过主菜单的"OTA升级"选项打开ECU OTA配置窗口 2. 在配置窗口中设置升级参数,包括固件文件路径、升级模式等 3. 点击"开始升级"按钮启动OTA升级过程 4. 升级过程中会显示进度和状态信息 5. 升级完成后会显示成功或失败的提示 ### 📁 文件加载功能 1. 通过应用程序提供的文件加载界面或菜单选择文件 2. 支持BIN和HEX两种文件格式的加载和解析 3. 加载过程中会进行文件格式验证和错误处理 ### 📋 已加载文件查看和清除功能 1. 通过主菜单的"查看已加载文件"选项打开文件查看器 2. 文件查看器会显示所有已加载文件的列表和详细的16进制内容 3. 可以通过"清除"按钮或主菜单选项清除所有已加载的文件记录 ### 🔧 选项卡管理 1. 通过主界面的"添加TCP选项卡"或"添加UDP选项卡"按钮添加新的通信选项卡 2. 每个选项卡可以独立配置和操作 3. 点击选项卡右侧的关闭按钮可以移除不需要的选项卡 ### TCP服务器使用说明 #### 🚀 启动服务器 1. 在主界面点击"添加TCP服务器"选项卡 2. 在服务器设置面板中输入监听端口号 3. 点击"启动服务器"按钮开始监听连接 4. 服务器启动成功后状态指示器将变为绿色 #### 👥 管理客户端连接 1. 服务器启动后,连接的客户端将显示在客户端列表中 2. 可查看每个客户端的IP地址、连接时间和状态 3. 选中特定客户端后可向其单独发送消息 4. 可通过"断开客户端"按钮终止特定连接 #### 📤 发送消息 1. 在服务器消息发送区域输入要广播的消息 2. 选择消息编码格式 3. 点击"广播消息"向所有连接的客户端发送消息 4. 发送的消息将显示在服务器消息记录区域 #### ⏹️ 停止服务器 1. 点击"停止服务器"按钮关闭监听端口 2. 所有客户端连接将被自动断开 3. 服务器状态指示器将变为灰色 ### TCP客户端使用说明 #### 🔌 连接服务器 1. 在TCP选项卡的左侧连接设置面板中,输入目标服务器的IP地址和端口号 2. 点击"连接"按钮,尝试与服务器建立连接 3. 连接成功后,连接状态指示器将变为红色 4. 连接信息将以绿色显示在右侧的消息接收区域 #### 💬 发送消息 1. 确保已成功连接到服务器(连接状态指示器为红色) 2. 在底部的消息发送区域输入要发送的消息 3. 从下拉菜单中选择合适的编码格式(默认为UTF-8) 4. 点击"发送"按钮,发送消息 5. 发送的消息将以蓝色显示在消息接收区域 #### 📤 断开连接 1. 点击"断开"按钮,断开与服务器的连接 2. 断开连接后,连接状态指示器将变为透明 3. 断开连接信息将以绿色显示在消息接收区域 ### UDP通信使用说明 #### 📡 配置UDP连接 1. 在UDP选项卡的左侧设置面板中,配置本地监听端口 2. 根据需要选择通信模式:单播、组播或广播 3. 对于单播,输入目标IP地址和端口;对于组播,输入组播地址和端口;对于广播,输入广播地址和端口 4. 点击"开始监听"按钮,开始接收UDP数据 #### 📤 发送UDP数据 1. 根据选择的通信模式,确认目标地址和端口设置正确 2. 在底部的消息发送区域输入要发送的数据 3. 从下拉菜单中选择合适的编码格式 4. 点击"发送"按钮,发送UDP数据 5. 发送和接收的数据将分别以不同颜色显示在消息区域 #### ⏹️ 停止监听 1. 点击"停止监听"按钮,停止接收UDP数据 ### ⚙️ 其他功能 - 勾选"显示消息时间"复选框,可以在消息前显示精确的时间戳 - 窗口支持调整大小,但有最小尺寸限制,确保良好的用户体验 ## 🗓️ 待实现功能 | 功能 | 状态 | 描述 | |------|------|------| | CAN通信功能 | 📝 规划中 | 添加CAN总线通信支持 | | USART通信功能 | 📝 规划中 | 添加串口通信支持 | | 消息日志保存 | 📝 规划中 | 支持将通信日志保存到文件 | | 主题切换 | 📝 规划中 | 提供亮色/暗色主题选择 | | 命令预设 | 📝 规划中 | 常用命令快速发送功能 | ## 📋 更新记录 ### 最新更新 (2025-09-08) - **feat(TCP): 添加TCP服务器功能及界面** - **feat: 添加UDP通信功能并优化TCP控制台** - **feat(OTA): 添加ECU OTA升级功能及相关组件** - **docs: 在README中添加文件记录管理支持说明** - **feat(文件管理): 添加已加载文件查看和清除功能** - 实现UDP通信功能,包括单播、组播和广播 - 重构TCP控制台的消息显示逻辑,优化时间戳处理 - 添加选项卡管理功能,支持动态添加和移除TCP/UDP选项卡 - 新增全局异常处理机制,记录错误日志到桌面文件 - 优化UI布局和样式,改进用户体验 - **feat(TCP): 添加TCP服务器功能及界面** (2025-08-31) - 实现TCP服务器核心功能,包括端口监听、客户端管理、消息收发等 - 添加TCP服务器控制台界面,支持启动/停止服务器、显示连接客户端、消息收发等功能 ### 上一版本更新 (2025-08-30) - **feat(OTA): 添加ECU OTA升级功能及相关组件** - 新增EcuOtaManager类处理OTA升级逻辑 - 添加EcuOtaConfigWindow配置窗口 - 在主菜单中集成OTA升级选项 - 支持JSON配置文件的加载和保存 - 实现CRC32校验计算功能 ### 近期更新 - **docs: 在README中添加文件记录管理支持徽章** (2025-08-30) - 更新README文件,添加文件记录管理支持的徽章图标 - **feat(文件管理): 添加已加载文件查看和清除功能** (2025-08-30) - 实现已加载文件的列表显示功能 - 添加文件内容的16进制查看功能 - 实现文件记录的清除功能 - **refactor: 优化代码格式和使用现代C#语法** (2025-08-30) - 统一代码风格和格式 - 更新为更现代的C#语法特性 - **feat: 添加文件加载器和TCP控制台功能** (2025-08-30) - 实现FileLoader类处理文件加载 - 添加TCP控制台控制组件 - **feat: 实现TCP通信控制台核心功能并优化UI** (2025-08-29) - 完成TCP客户端通信核心逻辑 - 优化用户界面设计和交互体验 - **add LICENSE** (2025-08-28) - 添加MIT许可证文件 - **feat: 初始化WPF应用程序项目结构** (2025-08-29) - 创建基础项目结构 - 配置解决方案和项目文件 ## 🔧 开发环境 - Visual Studio 2019或更高版本 - .NET Framework 4.7.2或更高版本 - C# 8.0 - WPF技术 ## 📄 许可证 该项目采用MIT许可证 - 详见LICENSE文件 ## 👨‍💻 作者 Chenxi ---

感谢使用通信控制台!如有任何问题或建议,请随时联系作者。

⭐ 欢迎Star支持!