One step : 将leave the divice时间放在Sync报文中,要求非常精确的底层硬件处理
Two step : 将leave the divice时间放在Follow_Up报文中传送。
二者对于delay_request是一样的.
选择哪个对于设计PTP设备的人有影响, 而如果真正部署到网络中, 则影响不大.
E2E One Step
P2P One Step
可以跟 End-to-End Versus Peer-to-Peer 比较一下, 节省了一个PDelay_Resp_Follow_Up.
One Step: sync message进入 Transparent Clock 的处理流程
Two Step :
2 Step下, sync msg在Transparent Clock中不必更新timestamp. 但是需要记住sync msg在device中停留多长时间(dwell time)供将来follow up用
one step和two steps的差别在开发设备的发送端(master)时需要关注, 因为不同的方式会造成实现上的一些浪费.
但在使用时, 只要所有设备都遵循IEEE 1588的规定, 那么就不必考虑那么多.
举几个例子:
transparent clock会根据sync msg而生成follow up msg
https://blog.meinbergglobal.com/2013/10/28/one-step-two-step/
按键精灵是VB,上个世纪的编程语言。我帮不了你。但是我可以用python写出这个脚本。运行环境是kmbox键鼠宏转换器:代码如下:
one=km.getint('1')#设置1键键值
two=km.getint('2')#设置2键简直
two_step=0 #2键控制状态
km.rgb(0,1000,0) #led变绿 标志此时为正常状态,
while 1:
#1键控制d的逻辑
if km.isdown(one)==1 and one_step==0:#1键第一次按下
one_step=1 #状态1
km.down('d') #D键按下、
elif km.isdown(one)==0 and one_step==1:#1键第一次d起
one_step=2 #状态2
elif km.isdown(one)==1 and one_step==2:#1键第二次按下
km.up('d') #Dd起
elif km.isdown(one)==0 and one_step==3:#1键第二次d起
one_step=0 #状态0 等待下一次按下1
#2键控制f的逻辑
if km.isdown(two)==1 and two_step==0:#1键第一次按下
two_step=1 #状态1
km.down('f') #f键按
elif km.isdown(two)==0 and two_step==1:#1键第一次d起
two_step=2 #状态2
elif km.isdown(two)==1 and two_step==2:#1键第二次按下
km.up('f') #fd起
elif km.isdown(two)==0 and two_step==3:#1键第二次d起
two_step=0 #状态0 等待下一次按下1
#1 2同时按下时逻辑
if km.isdown(two)==1 and km.isdown(one)==1 :#1,2同时按下
km.down('d')
km.down('f')
具体效果你可以看一下这个参考代码解析
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)