前言一款面向 Windows 平台的桌面级测量与测试工具专为实验室和产线环境设计。它不仅支持多种硬件设备的连接与控制还集成了自动化脚本、数据采集、可视化分析等核心功能帮助大家高效完成复杂的测试任务。在工业自动化和智能测试日益普及的背景下本项目提供了一种灵活、可扩展且易于维护的解决方案。项目介绍项目最初是为满足科研与工程测试中对多仪器协同操作的需求而开发的。随着项目演进其架构不断优化最终形成了以 WPF 为基础、MVVM 为指导思想的现代化桌面应用。通过整合 CarrotLink.NET 通信框架能够无缝对接串口、GPIB、USB-TMC 等多种接口类型的仪器设备尤其对是德科技Keysight3458A 数字万用表等高精度设备提供了深度支持。项目功能功能覆盖了从底层通信到上层数据分析的完整测试流程1、设备连接与控制支持同时管理多个仪器内置 NI-VISA 和串口驱动提供专用面板简化操作。2、测试自动化脚本引擎采用类 XML 标签语法支持命令执行、循环、条件判断及变量表达式让非程序员也能编写测试流程。3、数据采集与存储通过 DataLogService 统一收集来自脚本、仪器响应等渠道的数据并以通道形式组织支持 JSON 格式的导入导出。4、数据可视化集成 ScottPlot 实现高性能实时绘图便于观察趋势与异常。5、寄存器映射编辑器针对需要直接操作硬件寄存器的场景提供图形化位域读写界面。6、调试工具包含原始命令发送窗口和详细日志系统极大提升脚本调试效率。项目特点项目的最大特点是通用性与模块化。它不绑定特定设备或测试类型而是通过插件式服务架构支持灵活扩展。同时其 UI 与逻辑完全解耦遵循 MVVM 模式使得界面更新与业务逻辑迭代互不干扰。另外脚本引擎的设计兼顾易用性与表达力既避免了传统编程的复杂性又保留了足够的控制能力。项目技术框架: .NET / WPF架构: MVVM (使用 CommunityToolkit.Mvvm)通信: CarrotLink.NET绘图: ScottPlot依赖注入: DryIoc脚本编辑器: AvalonEdit硬件驱动: NI-VISA, FTD2XX_NET (通过 CarrotLink.NET)项目遵循 MVVM (Model-View-ViewModel) 设计模式开发View: 包含所有与 UI 相关的文件.xaml 和 .xaml.cs定义了应用程序的布局和外观。ViewModel: 连接 View 和 Model 的表示逻辑层。它管理应用程序的状态并向 UI 暴露数据和命令。Model: 代表应用程序的数据和业务逻辑包括仪器通信、数据结构和分析算法。Services: 一个关键的层次封装了核心功能如设备管理、日志记录、配置管理和脚本执行引擎。这些服务通过依赖注入DryIoc进行管理。项目代码public async Task WriteRouter(object parameter){// 获取异步等待锁await _commLock.WaitAsync();try{if (parameter is Register reg){await DeviceManager[SelectedDevice.Name].SendRegister(RegisterOperation.Write,reg.Parent.Index,reg.Address,reg.Value ?? 0);}elseif (parameter is BitsField bitsField){await DeviceManager[SelectedDevice.Name].SendRegister(RegisterOperation.BitsWrite,bitsField.Parent.Parent.Index,bitsField.Parent.Address,bitsField.StartBit,bitsField.EndBit,bitsField.Value ?? 0);}else{thrownew ArgumentException($无法解析参数: {parameter});}}catch (Exception ex){_ MessageBox.Show(ex.ToString());}finally{_commLock.Release();}}项目效果在校准高精度万用表时只需编写一段包含延迟、测量、判断的脚本系统即可自动执行并记录结果同时在图表中实时显示电压波动。调试阶段可通过原始命令窗口快速验证指令正确性避免反复修改脚本。数据导出后还可用于后续统计分析或生成报告形成完整的测试闭环。工具主页数据监视器数据可视化设备状态项目源码项目代码包含主程序与 CarrotLink.NET 通信库两个仓库。可直接克隆后使用 Visual Studio 打开解决方案文件设置启动项目并编译运行。若需使用 GPIB 或 USB 设备可能需额外安装 NI488.2 或 FTDI 驱动。官方也提供了预编译的 Release 包适合不想从源码构建的快速体验。为了防止丢失可以在评论区留言关键字「自动化测试」即可获取完整源码地址。总结项目它将复杂的仪器通信抽象为简洁的脚本指令把分散的数据流整合为结构化的日志体系并通过直观的可视化界面降低使用门槛。项目在不断的迭代但其清晰的架构设计和实用的功能组合已使其成为工程测试场景中的可靠助手。