新闻详情

新闻详情

首页 / 资讯中心 / 详情

新的多线程测试模块

发布时间:2026/9/9 19:04:20来源:尧图网络
新的多线程测试模块
新项目框架搭建总结一、已创建完整文件结构QSFP_AutoTester/ ├── Drivers/ ← 驱动层从旧项目搬过来 你新写的 │ ├── OTP12Driver.cs ← ✅ 你写的直接复用 │ ├── SFP_EVB_Heater.cs ← ✅ 你写的直接复用 │ ├── I2C_Heater.cs ← ✅ 你写的直接复用 │ └── Keysight86120C.cs ← ✅ 波长计驱动OTP没有波长计需要保留 │ ├── Models/ ← 数据模型 │ ├── HardwareConfig.cs ← 核心OTP各槽位板卡映射OPM/VOA/ERM/SWITCH/BERT │ └── GlobalConfig.cs ← 精简自旧 Common.cs去掉串口/GPIB/并口 │ ├── Module/ ← 模块驱动 │ └── QsfpModule.cs ← 从旧 TestQSFP.cs 搬来需修改命名空间 │ ├── Services/ ← 业务逻辑层 │ ├── HardwareService.cs ← 统一封装所有硬件操作每个模块线程持有一个实例 │ └── AttenuatorHelper.cs ← 衰减器校准点管理 │ ├── Workers/ ← 多线程工作单元 │ └── ModuleTestWorker.cs ← 一个线程测一个模块含测试流程骨架 │ ├── Utils/ ← 工具类 │ ├── BitHelper.cs ← ✅ 从旧 Bit.cs 搬来 │ └── SimpleLogger.cs ← ✅ 从旧 SimpleLogger.cs 搬来bug已修 │ └── TestEngine.cs ← 管理4个Worker并发运行二、新架构核心设计思路1. HardwareConfig.cs — 整个项目最重要文件该文件是项目硬件资源映射字典你现场实测的硬件槽位对应关系全部固化在此。示例硬件映射配置// 测试模块1硬件通道分配光开关:SLOT-11,输入1→输出2光功率计:SLOT-05,通道1衰减器Tx:SLOT-07,通道1衰减器Rx:SLOT-09,通道1误码仪:SLOT-01// 测试模块3硬件通道分配光开关:SLOT-12,输入1→输出2光功率计:SLOT-05,通道3衰减器Tx:SLOT-08,通道3衰减器Rx:SLOT-10,通道3误码仪:SLOT-03优势后续现场硬件接线调整仅修改此文件映射关系无需改动业务流程数千行代码。2. HardwareService.cs — 硬件操作统一入口每个模块测试线程独立实例化HardwareService(moduleIndex)后续硬件调用极简无需手动操作槽位hw.SwitchToModule();// 自动查表切换对应通道光开关hw.ReadTxPower();// 自动查表定位板卡、通道读取发射功率hw.SetTxAttenuation(10.0);// 自动查表切换衰减器槽位设置衰减值对比旧代码无需重复手写otp12.SetSlot(05)、otp12.SetSlot(11)这类槽位切换代码。3. 4线程并行测试架构TestEngine.Start()内部并发逻辑for(intslot1;slot4;slot){varworkernewModuleTestWorker(slot,otp12,heater);tasks[slot-1]Task.Run(()worker.RunAsync(cts.Token));}功能同时启动4条独立线程同步测试4个槽位光模块互不干扰。4. 硬件资源并发安全性分析硬件资源并发是否安全原因说明加热台✅ 安全共用一条TCP连接指令携带槽位参数区分模块OTP-12综合测试仪✅ 安全共用TCP连接通过SetSlot指定独立板卡通道光开关 SWD2-02✅ 安全4个模块分配独立通道无抢占冲突衰减器 VOA✅ 安全共8路独立通道4模块各占用Tx/Rx两路误码仪 BE2-03✅ 安全4块独立硬件板卡单模块独占一台光功率计 OPM-04⚠️ 存在冲突仅单块板卡4通道同一时间仅支持读取一路功率⚠️ 光功率计并发冲突解决方案旧代码为串行测试无并发问题4线程并行会出现资源抢占需加线程锁限制访问// HardwareService 内部定义静态全局锁privatestaticreadonlyobject_opmLocknewobject();publicfloatReadTxPower(){SwitchToModule();// 切换光开关操作无冲突无需加锁Thread.Sleep(200);lock(_opmLock)// 锁住光功率计访问同一时刻仅单线程进入{_otp12.SetSlot(05);varresult_otp12.OPM_ReadPower(channel);returnfloat.TryParse(result,outvarpwr)?pwr:-100f;}}短板加锁后读取功率环节退化为串行优化思路错开4线程功率读取时机模块测功率时其他线程执行消光比、I2C读写、衰减器调节等无冲突步骤。三、当前待完成任务按优先级排序第一步适配 QsfpModule.cs 编译环境旧TestQSFP.cs大量依赖旧全局类GlobalVarFun.XXX需全部替换为新项目GlobalConfig.XXX。第二步迁移旧版调试算法逻辑ModuleTestWorker.cs内测试函数目前为空壳逻辑从旧项目Main_Form对应函数复制迁移RxApdDebug()— 来源旧AutoTestRxAPD()RxLosDebug()— 来源旧RxLosAutoSet()TxPowerDebug()— 来源旧AutoSetTxPower_MethodB()TxErDebug()— 来源旧AutoSetTxEr_MethodA()迁移要求原有算法逻辑完全不变仅将底层仪器调用替换为_hw.XXX()统一接口。第三步开发全新UI界面新建WinForm窗口界面布局4个槽位独立面板分别展示测试进度条、设备状态、实时运行日志。四、分阶段工作安排今日任务打开HardwareConfig.cs对照车间实际硬件接线核对全部槽位映射配置打开HardwareService.cs逐行校验每个硬件方法对应的OTP底层SCPI指令是否匹配。明日任务修改QsfpModule.cs文件命名空间替换所有GlobalVarFun引用为新项目GlobalConfig编写简易控制台测试程序验证HardwareService能否正常读取光功率数值。本周整体目标完成RxApdDebug/RxLosDebug/TxPowerDebug/TxErDebug四大调试算法迁移单线程完整跑通单槽位光模块初测全流程改造代码实现4槽位多线程并发测试。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

全方位零售数字化系统解析:数据打通、智能补货与业务赋能 2026/9/9 19:03:41

全方位零售数字化系统解析:数据打通、智能补货与业务赋能

从2019年帮一家区域连锁超市搭数据报表,到后来参与完整零售中台的建设,我最大的感受是:零售数字化最难的从来不是技术本身,而是“你根本不知道哪些数据有用”。市面上各种“全方位零售数字化经营系统”的提法很多,但真…

阅读更多 →
Unity Recorder插件实战:从零开始实现游戏内录视频 2026/9/9 19:03:41

Unity Recorder插件实战:从零开始实现游戏内录视频

很多 Unity 项目做到中后期,都会碰到一个特别现实的需求:把游戏运行画面录下来。可能是给组内看效果,可能是给运营做演示素材,也可能是为了后期合成带透明通道的角色展示视频。常见的做法是打开第三方录屏软件,但录着录…

阅读更多 →
AI检测原理与降AI率工具链:从困惑度到人味改写 2026/9/9 19:03:41

AI检测原理与降AI率工具链:从困惑度到人味改写

期末季一到,本科生的聊天群里总少不了一个话题:AI率又红了。课程论文交了没几天,检测结果出来,显示“疑似AI生成内容占比87%”,紧接着就是老师发来的“请说明情况”。我见过太多同学在这种时候手忙脚乱地找各种降AI率工…

阅读更多 →
AOMTI 2026前瞻:光电测试技术风向与仪器工程师的破局之道 2026/9/9 19:03:41

AOMTI 2026前瞻:光电测试技术风向与仪器工程师的破局之道

2026年先进光电测试技术及仪器国际会议(AOMTI 2026)深度前瞻:光电测试仪器人为什么必须关注这场技术风向标 做光电测试仪器这行十几年,我最大的感受是:这个圈子不缺技术,缺的是把技术真正落地成可靠仪器的工…

阅读更多 →
Python魔法方法完全指南:从__init__到__slots__的进阶之路 2026/9/9 19:03:40

Python魔法方法完全指南:从__init__到__slots__的进阶之路

1. 魔法方法到底是什么,以及为什么值得花时间掌握在Python里写代码写了几年之后,我渐渐意识到一个规律:判断一个人是不是真的吃透了Python,不是看他背了多少API,也不是看他能写多复杂的列表推导式,而是看他…

阅读更多 →
从“测试文章标题01”到完整干货:零散草稿的整理之道 2026/9/9 19:00:40

从“测试文章标题01”到完整干货:零散草稿的整理之道

很多写过博客或者维护过文档系统的人,都干过这样一件事:新建一篇文档,标题随手敲成“测试文章标题01”,正文随便贴几行内容,用来看看排版、发个外链、或者验证一下账号能不能正常用。我也不例外。但做这行做久了&#…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞