hero-image

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 行,但外部依赖降为零。

v1v2
波形类型硬编码 sin/cosDC / Pulse / Trig 三种可选
每通道配置独立参数面板
外部依赖socat + pyserial(仅标准库)
平台仅 LinuxLinux / Windows / macOS(TCP 模式)
GUI连接信息弹窗参数面板 + 开关控制 + 实时读数
代码行数195974

三种波形,独立配置

每个通道可以独立选择信号类型,切换后参数面板动态更新。

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 需要安装 socatpyserial。v2 完全使用 Python 标准库:

  • 串口os.openpty() + tty.setraw() 直接操作 PTY
  • TCP:原生 socket 模块
  • GUItkinter(Python 自带)
  • 并发multiprocessing.Process

这意味着 python3 main.py 即可运行,无需 pip install

对于无法安装 Python 的目标机器,我还提供了 PyInstaller 打包的单文件可执行程序(仅Linux)。

预编译二进制与兼容性

Releases 中提供 Linux x86-64 单文件可执行程序(Instrument_Simulator,约 19MB)。

依赖最低版本发布年份
glibc>= 2.142011
Linux kernel>= 3.22012

兼容 Ubuntu 12.04+、Debian 8+、CentOS 7+,以及几乎所有仍在运行的 Linux 发行版。

chmod +x Instrument_Simulator
./Instrument_Simulator

获取与参与

本文由AI生成。