# 上位机 **Repository Path**: zyq8888/upper-computer ## Basic Information - **Project Name**: 上位机 - **Description**: 上位机项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-27 - **Last Updated**: 2026-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 光学镜头测试上位机 影视相机镜头产线测试工具,连接假机身硬件,控制镜头变焦/对焦/光圈,支持老化测试、回程差测试、固件升级、MES 对接等功能。 **版本:** 1.1.0 --- ## 下载(给产线) 从 Gitee **Releases** 页面下载 `镜头测试上位机.exe`,双击即可运行,**无需安装 Python**。 > 仓库地址:https://gitee.com/zyq8888/upper-computer --- ## 怎么用 ### 第一次使用(部署) 1. 把整个 `光学镜头测试上位机` 文件夹拷贝到目标电脑上 2. 双击 `镜头测试上位机.exe` 启动程序 > **不需要安装 Python**,不用配置任何环境,exe 自带一切。 ### 连接设备 1. 确保假机身已通过 USB-TTL 串口线连接到电脑 2. 点击 **刷新** 扫描可用串口 3. 在下拉框中选择对应的 COM 口 4. 点击 **连接** 连接成功后,底部状态栏会显示"串口已连接"。 ### 功能面板(多 Tab 独立入口) | Tab | 功能 | |-----|------| | 🎯 镜头控制 | Zoom/Focus/Iris 滑块控制、镜头复位/收纳、暂停轮询 | | 📡 检测功能 | 手动对焦环脉冲计数、HALL 信号检测、最低启动电压 | | 🧪 测试流程 | 对焦群/光圈老化测试、一键口径驱动、回程差测试 | | 💾 数据管理 | SN 序列号读写、MES 数据上传、固件版本升级 | ### 镜头控制 | 操作 | 怎么做 | |------|--------| | 调变焦(Zoom) | 拖动 Zoom 滑块 → 点 **设置** | | 调对焦(Focus) | 拖动 Focus 滑块 → 点 **设置** | | 调光圈(Iris) | 拖动 Iris 滑块 → 点 **设置** | | 镜头复位 | 点 **镜头复位** | | 镜头收纳 | 点 **镜头收纳** | | 查序列号 | 点 **查询信息** | > ⚠ 拖动滑块后请点击「设置」按钮发送指令! 连接设备后,三轴位置会自动轮询显示在面板上。点击「暂停轮询」可停止日志刷屏。 ### 老化测试 在「测试流程」Tab 中,设置起始/结束位置、速度、停留时间、循环次数、细分参数,点击「开始老化」即可运行。 ### 回程差测试 设置目标位置 A / B、允许误差、重复次数,点击「开始测试」自动执行前进→后退→前进流程并计算回程差。 ### 固件升级 在「数据管理」Tab 中,选择 .bin 固件文件,点击「开始升级」自动分块发送(CMD_UPDATE_* 协议)。**升级期间不得断开串口或断电。** --- ## 硬件要求 | 项目 | 要求 | |------|------| | 假机身 | 沈华业 V009 通信协议(2025-08-26) | | 串口线 | USB-TTL,**必须支持 2Mbps 波特率** | | 操作系统 | Windows 10 / 11 | | 驱动 | 串口模块驱动(如 CH343、FT232 驱动)需提前安装 | ### 关于 2Mbps 波特率 普通 USB-TTL 模块可能不支持 2Mbps。推荐使用以下芯片的串口模块: - **CH343** 系列 - **FT232** 系列 在设备管理器中确认驱动已正确安装,且支持 2Mbps 波特率。 --- ## 通信日志 - 右侧面板实时显示 TX / RX / 系统消息 - 支持按 **全部 / TX / RX / 系统** 筛选 - 点 **清空** 可清除界面显示(已写入文件的日志不受影响) - 日志自动保存到程序目录 `logs\`,按天分文件,超过 7 天自动清理 --- ## 常见问题 ### 提示"无法打开串口" 1. 确认串口号选对了(设备管理器中查看) 2. 确认假机身已开机、串口线已插好 3. 确认串口没有被其他程序占用 4. 换个 USB 口试试 ### 滑块拖动没反应 连接成功后需点 **设置** 按钮才会发送指令。如果已经点了设置但设备没反应,看右侧通信日志是否有 TX/RX 记录。 ### 程序打不开 1. 检查杀毒软件是否拦截了 exe,加白名单即可 2. 确认电脑是 Windows 10 或 11 --- ## 开发者信息 > 以下内容仅限开发维护人员。 ### 项目结构 ``` ├── main.py # 程序入口 (v1.1.0) ├── protocol.py # 通信协议编解码 + CRC16 ├── serial_service.py # 串口通信层 ├── lens_controller.py # 镜头控制 + 自动轮询 + 固件升级 ├── log_manager.py # 通信日志管理 ├── ui/ # 界面模块 │ ├── main_window.py # 主窗口 (Tab 布局 + 状态机) │ ├── serial_panel.py # 串口连接面板 │ ├── lens_control_panel.py # 镜头控制面板 │ ├── lens_info_panel.py # 镜头信息面板 │ ├── detection_panel.py # 检测功能面板 (脉冲/HALL/电压) │ ├── test_panel.py # 测试流程面板 (老化/口径/回程差) │ ├── data_panel.py # 数据管理面板 (SN/MES/固件) │ └── log_panel.py # 通信日志面板 ├── docs/ # 文档 │ ├── Claude开发任务书.md # 开发任务书 │ └── 待赵工确认协议项.md # 待确认协议清单 ├── tests/ # 单元测试 (33 项) ├── 镜头测试上位机.spec # PyInstaller 打包配置 ├── build.bat # 一键打包脚本 └── 假机身V009通信协议.md # 通信协议文档 ``` ### 开发环境搭建 ```bash python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt ``` ### 启动(开发模式) ```bash .venv\Scripts\activate python main.py ``` ### 打包 双击 `build.bat`,或在命令行执行: ```bash .venv\Scripts\activate pip install pyinstaller pyinstaller --clean --noconfirm 镜头测试上位机.spec ``` 输出文件:`dist\镜头测试上位机.exe`(含应用图标,任务栏/窗口均显示) 图标文件:`assets\app.ico`(重新生成:`python scripts/generate_icon.py`,预览:`assets\app_preview.png`) ### 运行测试 ```bash pytest tests/ -v ```