这个项目能做什么

fynescope 是一个面向 PicoScope 2000B 和 2000B MSO 系列 PC 示波器的原型图形用户界面与控制应用。它使用 Go 编写,基于 Fyne 控件工具包以及 PicoScope 2000A 系列 SDK 构建。支持的平台为 Linux 和 Windows 11(x64、ARM64 / Raspberry Pi 4 及更新型号)。 核心能力 - 时域示波器 f(t):多通道波形捕获、垂直和水平分度、线性与 sin(x)/x 插值、余辉显示,以及独立的时间缩放窗口,用于同时进行大范围与细节观察。 - 混合信号(MSO)支持:针对 2206B MSO 等 MSO 型号的数字通道可视化(D0-D15)、数字边沿/模式触发、可配置逻辑阈值(TTL、CMOS、ECL 或自定义),以及灵活的通道堆叠。 - 触发:简单边沿、高级边沿、窗口、间隔、脉宽、窗口脉宽、窄脉冲、丢失、窗口丢失、逻辑以及复杂多通道触发。 - 协议解码:在模拟通道上内置 UART 和 SPI 解码,并带有内联帧标记叠加和错误标志。 - 频谱分析仪 FFT:使用线性或对数频率轴进行实时频域分析。 - 频率响应分析 f(f) / Bode 图:自动频率扫描并绘制幅值和相位图,可与内置 AWG 或外部 SCPI 信号发生器集成。 - X-Y 模式 f(v):将一个通道对另一个通道绘图,以分析相位关系和李萨如图形。 - 虚拟/数学通道:使用任意表达式(例如 chA + chB、chA * chB、偏移和缩放)从物理输入实时计算通道,通过 expr 引擎实现。 - 数字和模拟滤波器:实时低通、高通、带通和带阻 FIR/IIR 滤波器,具备零相位(FiltFilt)能力,并在演示模式中提供模拟 RLC 滤波器。 - 相关性:通道之间的实时 Pearson 标量相关和互相关。 - 信号发生器 / AWG:控制内置任意波形发生器(正弦、方波、三角波、斜坡、DC、噪声、扫频)。 - SCPI 支持:通过 USB 控制外部 SCPI 信号发生器,用于自动化测试和 Bode 图生成。 - 无硬件演示模式:内置信号模拟器,可生成多通道模拟波形、数字模式、扫频和噪声,因此无需硬件即可探索完整 UI。 - 远程 Web 服务器和语音控制:通过 Web Speech API(-webport)向 Web 浏览器进行实时 MJPEG 流传输并支持免手操作语音命令,受基本身份验证保护。 - 远程 HTTPS REST API:以编程方式查询示波器状态并配置参数(-apiport、-apiauth)。 构建与使用 演示模式无需 PicoSDK 或 C 工具链即可运行:go run -tags=demo . -demo。使用真实硬件支持进行构建需要 Go 1.27、C 编译器以及官方 PicoScope SDK(libps2000a)。构建标签包括 demo(纯 Go 模拟器)、sim(模拟 PicoScope C 驱动接口的硬件模拟器)、scpi(用于 Bode 扫频的外部 SCPI 发生器控制)和 web(MJPEG 流传输与语音控制服务器)。常见 CLI 选项涵盖演示模式、屏幕尺寸缩放、Web 端口、API 端口、GIF 导出、日志级别以及版本/关于输出。 文档与限制 该仓库包含一个 github-wiki 目录和一个在线 GitHub Wiki,涵盖入门、功能与控件、演示模式、发生器控制、虚拟通道、触发模式、协议解码、分辨率提升、Web 服务器与语音控制、测试与调试、程序结构以及限制。项目声明,官方 PicoScope 7 软件的某些功能尚未实现,例如深度统计测量、掩码限制测试以及其他协议。提到的开发工具包括 LiteIDE 和 AI 编码辅助。该项目采用 BSD 3-Clause 许可证,并整合了其他开源项目和硬件提供商的代码与 API 结构。