New Version: Virtual Instrument Emulator v2.0.0
Virtual Instrument Emulator 发布了 v2.0.0。这是一次彻底的架构重构——从硬编码的正弦/余弦波形,进化为通用可配置的波形引擎。
如果你在用 Current Monitor 但没有物理电流表,这个工具可以模拟 Modbus RTU 设备,让你在虚拟环境里完成调试。
v2 带来了什么
v1 是一个 195 行的原型:两个通道,硬编码生成 sin(0.5t) 和 cos(0.8t) 波形,仅限 Linux,还需要 socat + pyserial 配合。
v2 从根本重写了波形引擎和 GUI,代码量增长到 974 行,但外部依赖降为零。
| v1 | v2 | |
|---|---|---|
| 波形类型 | 硬编码 sin/cos | DC / Pulse / Trig 三种可选 |
| 每通道配置 | 无 | 独立参数面板 |
| 外部依赖 | socat + pyserial | 零(仅标准库) |
| 平台 | 仅 Linux | Linux / Windows / macOS(TCP 模式) |
| GUI | 连接信息弹窗 | 参数面板 + 开关控制 + 实时读数 |
| 代码行数 | 195 | 974 |
三种波形,独立配置
每个通道可以独立选择信号类型,切换后参数面板动态更新。
DC(直流)
恒定的电流值,叠加可选噪声。
| 参数 | 含义 |
|---|---|
| DC Value | 目标值 (mA) |
| Noise | 噪声幅度 (mA) |
Pulse(梯形脉冲)
四个阶段的梯形波:上升 → 平顶 → 下降 → 低电平。
| 参数 | 含义 |
|---|---|
| High / Low | 高/低电平 (mA) |
| Period | 周期 (ms) |
| Duty | 占空比 (0–100) |
| Rise / Fall | 上升/下降比例 (0–100) |
保护逻辑:当 rise + fall >= 100% 时,自动按比例分配,平顶阶段归零,不会产生负时间窗口。
Trig(正弦波)
完整参数化的正弦波,可模拟任意周期性信号。
| 参数 | 含义 |
|---|---|
| Amplitude | 振幅 (mA) |
| Offset | 直流偏置 (mA) |
| Frequency | 频率 (Hz) |
| Phase | 初始相位 (°) |
| Noise | 噪声幅度 (mA) |
全新 GUI:从弹窗到控制面板
v2 的 tkinter 界面从简单的连接信息弹窗,升级为完整的控制面板:
- 类型切换:下拉框选择 DC / Pulse / Trig,参数区动态切换
- 参数验证:失去焦点时即时校验,非法值红色高亮
- 启动/停止:一键启停,运行时参数锁定
- 实时读数:每通道显示当前
X.XX mA - 状态指示:绿色运行中,灰色停止
GUI 流程:
[启动界面] → 选择 Virtual Serial 或 Network TCP
→ [配置界面]:Ch1 / Ch2 各自选择信号类型、调参
→ [运行界面]:Start → 波形输出 → Stop → 回配置界面
零依赖 = 零摩擦
v1 需要安装 socat 和 pyserial。v2 完全使用 Python 标准库:
- 串口:
os.openpty()+tty.setraw()直接操作 PTY - TCP:原生
socket模块 - GUI:
tkinter(Python 自带) - 并发:
multiprocessing.Process
这意味着 python3 main.py 即可运行,无需 pip install。
对于无法安装 Python 的目标机器,我还提供了 PyInstaller 打包的单文件可执行程序(仅Linux)。
预编译二进制与兼容性
Releases 中提供 Linux x86-64 单文件可执行程序(Instrument_Simulator,约 19MB)。
| 依赖 | 最低版本 | 发布年份 |
|---|---|---|
| glibc | >= 2.14 | 2011 |
| Linux kernel | >= 3.2 | 2012 |
兼容 Ubuntu 12.04+、Debian 8+、CentOS 7+,以及几乎所有仍在运行的 Linux 发行版。
chmod +x Instrument_Simulator
./Instrument_Simulator
获取与参与
- 仓库:github.com/shenmeshisanpao/Virtual-Serial-Port-Emulator
- 协议:GNU GPL v3.0
本文由AI生成。