Skip to content

Repository files navigation

PhotonLab 光功率测量平台

面向滨松 C10439-15 双通道光电二极管模块的 Windows 11 科研上位机。应用采用 PySide6 + Qt Quick/QML GPU 渲染,支持 ASCII 流和 Modbus RTU 双协议、100 Hz 实时绘图、典型光谱 LUT、实测线性标定、异步 CSV/HDF5 记录与 Excel 导出。

界面采用 Windows 11 Mica 与 Qt Quick 着色器结合的深色液态玻璃设计。边缘折射高光、轻微色散和指针跟随反馈的设计思路参考了 MIT 许可的 rdev/liquid-glass-react,本项目未引入 React 运行时。各核心模块内具有缓慢流动的热成像带状色场;鼠标靠近模块时,最近的约 120–180 px 玻璃边框会出现克制的彩虹焦散并平滑跟随,不显示突兀的圆形光标光环。动态效果可在“系统设置”中关闭或降低强度。

已冻结的通信协议

ASCII 流模式

CAN转USB网关主动输出 UTF-8/ASCII 行:

<MCU_Tick_ms>,0x100,<Si_V>,<InGaAs_V>\r\n

示例:

125430,0x100,0.436218,0.187529\r\n

ASCII 模式同时保存 MCU 相对时间和 PC 绝对时间。

Modbus RTU 模式

  • UART:460800,8-N-1
  • 从站地址:1
  • 功能码:04(读取输入寄存器)
  • 起始地址:0000
  • 寄存器数量:4
  • 轮询:100 Hz
  • 响应超时:50 ms
  • 重试:1次
  • Float 字节序:CDAB(16位字交换)

查询帧:

01 04 00 00 00 04 F1 C9

寄存器映射:

寄存器 数据
0000–0001 Si 电压,32位float,CDAB
0002–0003 InGaAs 电压,32位float,CDAB

正确参考编码:

数值 IEEE 754 ABCD Modbus CDAB线上字节
0.436218 3E DF 57 F7 57 F7 3E DF
0.187529 3E 40 07 9A 07 9A 3E 40

四寄存器 Modbus 响应不包含设备时间戳,因此该模式记录 PC 接收时间,并在 UI 和文件中明确标记 Time_Source=PC

自动识别

自动模式首先被动监听 0.5 秒:

  1. 收到可解析且以换行结束的 ASCII 数据后进入 ASCII 流模式。
  2. 无数据时发送一次 Modbus 探针;收到合法 CRC 响应后进入 Modbus 模式。
  3. 未识别时给出错误,不静默生成伪数据。

科学数据原则

  • 原始 Si/InGaAs 电压无条件落盘。
  • 厂家典型曲线只标记为 Typical,不能冒充校准证书。
  • 用户可分别为两通道设置 P[mW] = k × (V − Vdark) + b
  • 软件中的 H/L 必须与 C10439-15 实体开关一致。
  • CSV 在 1,000,000 行自动分卷,避免超过 Excel 单表限制。
  • 长时实验建议使用 HDF5;Excel 导出面向内存中的最近10分钟数据。

Windows 安装与运行

直接运行已打包版本(推荐)

打开 dist/PhotonLab/PhotonLab.exe。请保留 PhotonLab.exe 与同目录的 _internal 文件夹,不能只单独复制 EXE;整个 PhotonLab 文件夹可直接拷贝到另一台 Windows 11 x64 电脑使用,无需安装 Python。

首次接硬件前,可在协议下拉框选择“内置模拟器”,确认实时曲线、记录和导出功能。

从源码运行

需要 Python 3.11 或更新版本:

setup_windows.bat
run_photonlab.bat

开发运行:

$env:PYTHONPATH = "$PWD\src"
.\.venv\Scripts\python.exe -m photonlab.app

运行测试:

$env:PYTHONPATH = "$PWD\src"
.\.venv\Scripts\python.exe -m unittest discover -s tests -v

打包 Windows 免安装程序:

build_exe.bat

输出位于 dist/PhotonLab/PhotonLab.exe

目录

src/photonlab/
  app.py             程序入口
  protocols.py       ASCII、Modbus、CRC16、CDAB
  serial_worker.py   自动识别与独立采集线程
  calibration.py     Typical LUT、暗电压、实测标定
  storage.py         CSV/HDF5后台记录、Excel导出
  ui/                Windows 11液态玻璃界面
tests/                协议、标定与存储测试

About

Windows 11 optical power measurement workstation for Hamamatsu C10439-15 with ASCII/Modbus RTU acquisition and GPU liquid-glass UI.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages