# 波形串口数据生成工具 **Repository Path**: momingchuan/create-data ## Basic Information - **Project Name**: 波形串口数据生成工具 - **Description**: 这是一个 波形串口数据生成工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 使用操作 ![输入图片说明](%E5%9B%BE%E7%89%87/%E6%95%B0%E6%8D%AE%E6%A1%86%E9%80%89.gif) # 波形串口数据生成工具 (Waveform Serial Data Generator) ## 简介 ![输入图片说明](%E5%9B%BE%E7%89%87/image.png) 该工具允许用户生成具有不同波形(正弦波、三角波、方波)的信号,并通过串口端口发送这些信号。用户可以设置每个通道的信号参数(如幅值、频率、偏置等),并配置串口通信的参数(如波特率、数据位、停止位等)。该工具适用于需要通过串口传输波形数据的应用。 ## 安装与运行 ### 系统要求 - 操作系统:Windows 7或更高版本 - 编译工具:Qt Creator - 串口驱动程序:确保计算机上已安装串口驱动程序。 ### 安装步骤 1. 下载并解压项目源代码。 2. 使用Qt Creator打开项目文件。 3. 编译并运行应用程序。 ## 用户界面说明 ### 1. **通道设置 (Channels)** 界面提供了两个通道(Channel 0 和 Channel 1)。每个通道包含两个子信号(Signal A 和 Signal B)。用户可以分别开启或关闭每个信号,且每个信号可以设置以下参数: - **波形类型**:选择正弦波、三角波或方波。 - **幅值**:设置信号的幅值。 - **频率**:设置信号的频率。 - **偏置**:设置信号的偏移量。 - **占空比**(仅对方波有效):设置信号的占空比。 每个通道的输出是其启用信号的叠加结果。 ### 2. **串口设置 (Serial Settings)** - **串口号**:选择要使用的串口。 - **波特率**:设置串口的波特率(例如:115200)。 - **数据位**:选择数据位(5、6、7、8)。 - **校验位**:选择串口的校验类型(无、偶校验、奇校验等)。 - **停止位**:设置停止位(1、1.5、2)。 - **流控**:选择流控方式(无、硬件流控、软件流控)。 ### 3. **发送控制 (Transmission Controls)** - **发送周期**:设置信号发送的间隔时间(单位:毫秒)。 - **每通道采样率**:显示每个通道的采样率(点/秒)。 - **已发送帧数**:显示已发送的数据帧数。 - **前缀编辑框**:自定义每个数据帧的前缀。 - **发送预览框**:显示即将发送的数据帧内容。 #### 发送按钮: - **开始连续发送**:启动信号的连续发送。 - **停止发送**:停止信号的连续发送。 - **发送一次**:发送一帧数据。 ### 4. **日志视图 (Log View)** 在“运行日志”区域,用户可以看到串口连接、数据发送等过程的实时日志。 ## 数据帧结构与发送 ### 数据帧的构建 每个数据帧由以下部分构成: 1. **前缀**:这是一个可选的文本前缀,可以由用户自定义。在界面上,用户可以通过 `前缀编辑框` 设置。例如,用户可以设置前缀为 `ch:`,最终的数据帧可能是 `ch:123,456`。 2. **信号值**: - 每个通道(Channel 0 和 Channel 1)包含两个信号(Signal A 和 Signal B)。每个信号会按照配置的波形类型(正弦波、三角波或方波)、幅值、频率和偏置进行采样。 - 通过公式生成信号的数值: - 对于 **正弦波**,信号值使用: \[ ext{Signal Value} = ext{Amplitude} imes \sin(2 \pi imes ext{Frequency} imes ext{Time}) + ext{Offset} \] - 对于 **三角波**,使用一个三角波生成的数学公式。 - 对于 **方波**,使用占空比生成波形的开关状态(高/低)。 - 每个信号的生成都基于当前的时间戳(`timeSeconds`),从而确保每次发送的信号都与时间同步。 3. **换行符**(可选):用户可以选择在每帧数据的末尾附加换行符(CR/LF),便于接收端的解析。 数据帧示例: ``` ch:123,456 ``` 其中 `123` 是通道0的信号值,`456` 是通道1的信号值,前缀为 `ch:`。 ### 数据帧发送 数据帧是通过串口发送的,具体步骤如下: 1. **启动串口通信**: - 用户选择合适的串口并打开它,设置好波特率、数据位等串口参数。 - 串口成功打开后,用户可以开始发送数据。 2. **发送数据**: - 点击 **开始连续发送** 按钮后,程序会根据设置的发送周期(毫秒)定时生成并发送数据帧。 - 每个数据帧会包含来自两个通道的信号值,这些信号会根据用户设置的波形类型、幅值、频率等参数生成。 3. **单次发送**: - 用户还可以选择 **发送一次** 按钮,单独发送一帧数据。 4. **日志记录**: - 每次数据帧发送后,都会在日志视图中记录该操作,并显示已发送的帧数和数据内容。 ### 发送示例 假设用户配置了如下参数: - **通道 0**:信号A 为正弦波,频率为 1 Hz,幅值为 1000,偏置为 0; - **通道 1**:信号B 为方波,频率为 3 Hz,幅值为 300,偏置为 0,占空比为 50%。 如果发送间隔为 100 毫秒(0.1 秒),则程序会定时生成两通道的信号数据。例如,第一次生成的两信号值(按时间 0.0 秒采样)会如下: - 通道0 信号A:正弦波,幅值 1000,频率 1 Hz,偏置 0 → 信号值为 `1000 * sin(2 * π * 1 * 0.0) = 0` - 通道1 信号B:方波,幅值 300,频率 3 Hz,占空比 50% → 信号值为 `300`(根据占空比) 最终的发送数据帧为: ``` ch:0,300 ``` 然后,每隔 100 毫秒,程序会重新计算信号值并发送新的数据帧。 ## 使用方法 1. **配置串口设置**: - 选择合适的串口号、波特率和其他串口参数。 - 点击“打开串口”以启动串口通信。 2. **设置信号参数**: - 在每个通道下,选择需要启用的信号(A 或 B)。 - 设置每个信号的波形类型、幅值、频率、偏置和占空比(如果适用)。 3. **启动数据发送**: - 配置好信号参数后,点击“开始连续发送”以开始数据发送。用户可以看到发送的实时数据帧以及已发送的帧数。 4. **停止或发送单帧数据**: - 点击“停止发送”停止连续发送。 - 点击“发送一次”发送一帧数据。 ## 错误处理 - 如果串口连接失败,软件会显示错误信息,并要求用户检查串口连接和配置。 - 如果发送数据失败,会显示失败原因并提示用户进行修正。