一种基于Telnet进行BOSA校准的优化方法技术

技术编号:30440861 阅读:13 留言:0更新日期:2021-10-24 18:28
本发明专利技术公开了一种基于Telnet进行BOSA校准的优化方法,在网络端通过socket接收到的命令记录其长度cmdlen,在将该命令写入伪终端pty后,伪终端驱动首先会将该命令的回显字符串通过PtyMaster输出给telnetd;当单次读取读不全整条命令的回显字符串,判断读取的长度如果小于网络端接收到的命令长度cmdlen,则循环去读取伪终端pty,直到读取到的回显字符串累计长度大于等于cmdlen后,将读取到的回显字符串通过网络socket发送给telnet客户端。本发明专利技术缩短了单片板子在产线的bosa校准时间,大幅提高了产线产能,降低工厂产线成本。降低工厂产线成本。降低工厂产线成本。

【技术实现步骤摘要】
一种基于Telnet进行BOSA校准的优化方法


[0001]本专利技术涉及BOSA校准
,具体是一种基于Telnet进行BOSA校准的优化方法。

技术介绍

[0002]BOSA校准是每一台网络ONU设备在产线生产过程中必要的步骤,如果能有效缩短BOSA的校准时间,则能大幅提升产线的产能,能为厂家带来更大的经济效益。
[0003]使用telnet协议进行BOSA校准,如果CPU性能受限(核少、主频低),伪终端驱动产生的回显字符串可能会无法一次性完整的输出给telnetd服务端,这就导致了telnetd会多次调用socket发送函数将零碎的回显字符串发送给远端的telnet客户端,从而大大增加单条校准命令的时长,校准过程中大量的校准命令使用更是延长了校准时间,影响产能。
[0004]针对这个问题而提出的一种基于telnet进行BOSA校准的优化方法,可以大幅缩减因CPU性能受限所影响的单条校准指令执行时长,缩短单板整体校准时长,提高产线产能。

技术实现思路

[0005]本专利技术的目的在于提供一种基于Telnet进行BOSA校准的优化方法,以解决上述
技术介绍
中提出的生产线进行BOSA校准耗时长的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:
[0007]一种基于Telnet进行BOSA校准的优化方法,根据Telnetd设计流程,在网络端通过socket接收到的命令记录其长度cmdlen,在将该命令写入伪终端pty后,伪终端驱动首先会将该命令的回显字符串通过Pty Master输出给telnetd,所以telnetd从伪终端能立马读取到该命令的回显字符串;如果CPU性能较弱(主频低,核少),单次读取将很可能读不全整条命令的回显字符串,可能只能读到一个字符,判断读取的长度如果小于网络端接收到的命令长度cmdlen,则循环去读取伪终端pty,每次循环间隔睡眠1毫秒,循环读取过程中如果有读取失败,直到读取到的回显字符串累计长度大于等于cmdlen后,进入下一步骤将读取到的回显字符串通过网络socket发送给telnet客户端,同时将cmdlen置为0,已便后续命令执行结果的输出跳过cmdlen的长度判断。
[0008]注意在循环读取的过程中需要设置一定的循环次数,目前设置为n次,循环间隔睡眠时间1ms,合理的睡眠时间和循环次数可以缓减特殊指令回显带来的滞后感,由于某些特殊指令的回显字符数比该指令本身字符数少,所以会达到循环上限,滞后时间约为n*1ms。
[0009]telnet服务端整个流程如下:
[0010]1.Telnet服务端进程通过网络套接字读取从Telnet客户端发送过来的命令到缓存1,记录读取的命令长度rdidx1(cmdlen=rdidx1),同时将缓存1中的数据长度记录为size1。
[0011]2.当缓存1中有内容后就将缓存中的数据全部写入伪终端,记录成功写入伪终端的数据长度wridx1,同时将缓存1中的长度size1减去wridx1,如果size1为0了则同时将
rdidx1和wridx1置0,方便后续继续从网络套接字接收命令。
[0012]3.写完伪终端后等待伪终端的回显输出,此时我们循环读取伪终端,直到读取到的字符串长度大于等于通过网络套接字读取到的命令长度cmdlen,将cmdlen置0,同时记录读取到的总长度rdidx2,以及读取到缓存2后的数据长度size2。
[0013]4.将缓存2中的数据通过网络套接字发送给telnet客户端,发送成功的数据长度等于size2,将rdidx2和wridx2同时置0。继续等待步骤三伪终端的命令结果输出。
[0014]与现有技术相比,本专利技术的优点是:可以缓存不完整的回显字符串,达到完整长度后一次性发送给telnet客户端,缩短在客户端单条校准指令完整执行时间;设置超时保护机制,不会对特殊命令的回显产生滞后影响;缩短了单片板子在产线的bosa校准时间,大幅提高了产线产能,降低工厂产线成本。
附图说明
[0015]图1为本专利技术的总体框架结构示意图。
[0016]图2为本专利技术的模块框架结构示意图。
[0017]图3为本专利技术方法的实时流程图。
具体实施方式
[0018]下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
[0019]请参阅图1

3,一种基于Telnet进行BOSA校准的优化方法,在网络端通过socket接收到的命令记录其长度cmdlen,在将该命令写入伪终端pty后,伪终端驱动首先会将该命令的回显字符串通过Pty Master输出给telnetd,所以telnetd从伪终端能立马读取到该命令的回显字符串。
[0020]如果CPU性能较弱(主频低,核少),单次读取将很可能读不全整条命令的回显字符串,可能只能读到一个字符,判断读取的长度如果小于网络端接收到的命令长度cmdlen,则循环去读取伪终端pty,每次循环间隔睡眠1毫秒,循环读取过程中如果有读取失败,直到读取到的回显字符串累计长度大于等于cmdlen后,进入下一步骤将读取到的回显字符串通过网络socket发送给telnet客户端,同时将cmdlen置为0,已便后续命令执行结果的输出(也是通过读取伪终端pty,因为图一中我们将执行进程shell的输出重定向到了伪终端驱动从设备pty slave)跳过cmdlen的长度判断。
[0021]注意在循环读取的过程中需要设置一定的循环次数,本实施例中设置为10次,合理的睡眠时间和循环次数可以缓减特殊指令回显带来的滞后感,由于某些特殊指令的回显字符数比该指令本身字符数少,所以会达到循环上限,滞后时间约为10ms(1ms*10)。该方案避免了因回显字符读不全而多次调用socket网络发送数据包(回显字符)到telnet client端,从而大幅降低linux内核的发送开销,节省时间。
[0022]特殊指令指登陆及位移指令,这些指令的回显字符数比指令本身字符数少。
[0023]参考图2

3,telnet服务端整个流程的四个步骤如下:
[0024]1.Telnet服务端进程通过网络套接字读取从Telnet客户端发送过来的命令到缓存1,记录读取的命令长度rdidx1(cmdlen=rdidx1),同时将缓存1中的数据长度记录为size1。
[0025]2.当缓存1中有内容后就将缓存中的数据全部写入伪终端,记录成功写入伪终端的数据长度wridx1,同时将缓存1中的长度size1减去wridx1,如果size1为0了则同时将rdidx1和wridx1置0,方便后续继续从网络套接字接收命令。
[0026]3.写完伪终端后等待伪终端的回显输出,此时我们循环读取伪终端,直到读取到的字符串长度大于等于通过网络套接字读取到的命令长度cmdlen,将cmdlen置0,同时记录读取到的总长度rdidx2,以及读取到缓存2后的数据长度size2。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Telnet进行BOSA校准的优化方法,根据Telnetd设计流程,其特征在于,在网络端通过socket接收到的命令记录其长度cmdlen,在将该命令写入伪终端pty后,伪终端驱动首先会将该命令的回显字符串通过Pty Master输出给telnetd,所以telnetd从伪终端能立马读取到该命令的回显字符串;如果CPU性能较弱,单次读取将很可能读不全整条命令的回显字符串,可能只能读到一个字符,判断读取的长度如果小于网络端接收到的命令长度cmdlen,则循环去读取伪终端pty,每次循环间隔睡眠1毫秒,循环读取过程中如果有读取失败,直到读取到的回显字符串累计长度大于等于cmdlen后,将读取到的回显字符串通过网络socket发送给telnet客户端,同时将cmdlen置为0,已便后续命令执行结果的输出跳过cmdlen的长度判断。2.根据权利要求1所述的一种基于Telnet进行BOSA校准的优化方法,其特征在于,在循环读取的过程中需要设置一定的循环次数,目前设置为n次,循环间隔睡眠时间1ms,合理的睡眠时间和循环次数可以缓减特殊指令回显带来的滞后感,由于某些特殊指令的回显字符数比该指令本身字符数少,所以会达到循环上限,滞后时间约为n*1ms。3.根据权利要求2所述的一种...

【专利技术属性】
技术研发人员:杨振力
申请(专利权)人:芯河半导体科技无锡有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1