SWITCH命令信息
SWITCH光开关SCPI文档完整通俗讲解新人零基础版一、先搞懂硬件是什么1. SWITCH 光开关机箱SLOT11、SLOT12插的单板作用光纤光路切换器多条SFP被测光模块共用一套OPM功率计/ERM消光比测试板。举个例子4个待测光模块SFP1~SFP4光纤先接到SLOT11、12两块光开关通过SCPI指令切换轮流把某一路光切到测试仪表不用手动拔插光纤。关键标识说明LINSxyy 机箱槽位前缀x子架编号设备默认0yy机箱槽位光开关插11槽就是LINS011插12槽就是LINS0112in_channel光开关输入通道接SFP发射光纤out_channel光开关输出通道统一分光到OPM/ERM测试板光开关3种硬件规格文档里提到1*N1进多出输入通道固定只有1个输出1/4/8/24口单路2*N输入1、2两路双路2*N输入1/2/3/4四路你项目4个SFP用的就是这款SLOT11管SFP1/2SLOT12管SFP3/4逐条拆解文档6条SCPI命令对应代码#region81.1 ROUTe:PATH:CATalog? 查询开关型号作用读取当前槽位光开关是几进几出1x4 / 1x24代码里对应SW_GetSwitchType()使用场景自动化程序启动自检判断当前槽插的是4路还是24路开关适配不同通道逻辑指令规则无参数纯查询不会修改硬件输入示例LINS112:ROUTe:PATH:CATalog?返回示例1x4 1进4出光开关1.2 ROUTe[in_channel]:SCAN out_channel 设置光路切换作用核心设置指令指定某一路输入光纤切换到目标输出通道光路连通。代码对应bool SW_SetChannel(int inCh, int outCh)参数说明in_channel光开关输入口接被测SFP光纤out_channel输出口通往测试仪表硬件规则双路2*N 4路开关你设备在用输入1、2 → 输出1、2输入3、4 → 输出3、4响应规则设置成功设备固定返回Command execute successfully所以代码里返回bool匹配这个字符串返回true示例指令LINS112:ROUTe1:SCAN 2含义1号输入通道SFP1切换到2号输出光路导通返回成功文本1.3 ROUTe[in_channel]:SCAN? 查询当前通路作用查询某一路输入现在切到哪个输出口无光纤连通返回0代码对应string SW_GetCurrentChannel(int inCh 1)使用场景切换光路后校验是否切换成功判断光路是否断开示例输入LINS112:ROUTe:SCAN?返回1当前切到输出1返回0无通路1.4 ROUTe[in_channel]:SCAN:NEXT 切下一个通道作用自动循环切换下一路输出不用手动填通道号代码bool SW_NextChannel(int inCh 1)循环规则1→2→3→4→11x4开关成功返回Command execute successfully1.5 ROUTe[in_channel]:SCAN:PREV 切上一个通道作用反向循环切换上一路输出代码bool SW_PrevChannel(int inCh)循环规则1→4→3→2→1成功返回Command execute successfully1.6 ROUTe:SWITch:COUNt? 查询总切换次数作用读取光开关硬件寿命计数器每切换一次1用于老化测试、硬件寿命评估代码string SW_GetSwitchTotalCount()示例返回2530代表总共切换2530次二、文档和你代码对应关系对照看更容易懂文档命令代码方法读写类型返回类型说明1.1 CATalog?SW_GetSwitchType查询string只读拿开关规格1.2 SCANSW_SetChannel设置bool修改光路匹配成功标识1.3 SCAN?SW_GetCurrentChannel查询string读取当前通道1.4 SCAN:NEXTSW_NextChannel设置bool自动下一路1.5 SCAN:PREVSW_PrevChannel设置bool自动上一路1.6 SWITch:COUNt?SW_GetSwitchTotalCount查询string读取硬件切换总次数三、业务实操举例你4个SFP测量场景硬件接线SLOT11光开关输入1SFP1输入2SFP2SLOT12光开关输入1SFP3输入2SFP4测试仪表统一接两路开关输出1测试SFP1流程代码逻辑driver.SetSlot(11);切换到11槽光开关driver.SW_SetChannel(1,1);把SFP1光路切到测试仪表等待300ms光路稳定driver.SetSlot(05);切OPM功率计槽读取SFP1光功率测完SFP1自动切SFP2driver.SetSlot(11);driver.SW_NextChannel(1);自动切下一路输入四、新人常见疑问解答Q为什么Set类方法返回bool查询返回stringA设置操作需要确认硬件是否执行成功光纤没插/通道超限会报错匹配Command execute successfully判断true/false查询是拿数值直接返回字符串上层解析。Qin_channel什么时候填1/2/3/4A看光纤接在光开关哪个输入口4个SFP分别对应4个输入通道。Q 返回0代表什么A该输入通道没有任何输出光路连通光纤断开或通道未切换。Q NEXT/PREV循环逻辑有什么用A自动化批量测试不用写循环判断通道号一键轮流测所有SFP。Q 切换次数COUNt有什么业务用途A光开关有机械寿命达到上限需要更换单板产线老化测试监控损耗。一、截图信息逐条解读11号槽 SWD2-02 光开关【801 开关类型】→ 正常2-Channel, 2x2硬件规格2进2出2×2光开关一共只有2路输入、2路输出通道。正好对应你硬件方案SLOT11 这一块开关只负责控制 SFP1、SFP2 两个模块。SLOT12 是另一块同款2×2开关控制 SFP3、SFP4。【802 当前通道】→ 正常2指令读取结果当前把第2路输入通道连通到了输出口。对应业务此时接入的是 SFP2 的光路。如果值1就是连通 SFP1。【803 总通道数】→ 正常4是开关内部硬件资源编号你只需要使用输入通道 1 和 2 就足够完全够用。二、对应你代码的硬件映射关系SLOT112×2光开关输入通道inCh对应被测模块1SFP #12SFP #2SLOT12同款2×2光开关输入通道inCh对应被测模块1SFP #32SFP #4切换光路代码示例// 切换到SFP2光路driver.SetSlot(11);driver.SW_SetChannel(2,1);三、结合这条信息修正你的测试逻辑每一块2×2开关只用到输入通道 1 和 2不需要用到3、4通道。切换完光路后可以调用SW_GetCurrentChannel(1)或者SW_GetCurrentChannel(2)来校验是否切换到位和截图里【802 当前通道】对应。两块光开关相互独立正好实现4个SFP分成两组并行测量互不干扰完美适配你后续多线程并行方案。四、补充小提示你读到的2-Channel, 2x2正好匹配接口SW_GetSwitchType()的返回内容程序启动时可以读取这个型号做硬件自检防止插错单板。