# 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(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支持!