# ChholCmd **Repository Path**: lee8871/ChholCmd ## Basic Information - **Project Name**: ChholCmd - **Description**: 斥候命令通信器是用于和斥候模块命令串口通信的软件。还附带有串口调试助手。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-03-15 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 斥候配置器 Chhol模块采用了CC9D协议,用于和网络中的任意一个模块进行通信。 此程序实现了CC9D协议,和基础的通信操作,用于电脑和Chhol模块的命令端口进行通信。 ## 外部依赖 除了已有的工程,本项目还依赖外部项目 logger。logger是外部的日志项目,支持文本日志显示。注意需要使用dotnet8分支。 **推荐在克隆项目时自动获取子模块** ```bash git clone --recurse-submodules https://gitee.com/lee8871/ChholCmd ``` **如果已经克隆了项目,可以手动初始化子模块** ```bash git submodule update --init --recursive ``` ## 程序概览 ![程序概览](MarkdownImage/image.png) + CC9D 接入一个双向流,提供分割后的数据包。 + ChholConfig 接受数据包,并将其分配给多个端口处理程序使用。 端口处理程序也可以发送包,由CC9D处理后发往双向流。 + CmdTextBox 用来连接双向流进行测试。 + CC9D中收到的来自用户串口的数据可以重新形成流,并由CmdTextBox显示。 + IStreamPort 包装了 Stream,提供通用的双向流。 ## 关于CC9D协议 CC9D工程下只提供对数据的错误检验和分包,负责理解分包后的数据。 `Cc9dCodec`连接一个`IDuplex`类型。 它从中解析数据,拆解出符合CC9D的信息,传递给`public Action recvPkg;`; 此外通过调用`public void send(Pkg pkg) `函数可发送包。 `Pkg`类规规定了CC9D数据包的形式,其中上行和下行的包是相同的。此类可以将数据和源比特流相互转换。 ## 关于串口调试助手 CmdTextBox下的项目是一个串口调试助手,这个类实际实现了一个StreamUI,可以连接一个双工流,提供用户命写入流,并显示流收到的数据。 ![20220722_144408_24](MarkdownImage/20220722_144408_24.png) 通信器支持循环发送,支持字符串和Hex发送。 如果将串口数据包装成双工流,就成了串口调试助手。 此工程的文件关系如下: ![主要类关系图](MarkdownImage/image-1.png)