- 最后登录
- 2023-8-16
- 在线时间
- 3007 小时
- 阅读权限
- 100
- 注册时间
- 2007-12-3
- 积分
- 3923
- 帖子
- 2556
- 精华
- 6
- UID
- 15558
- 性别
- 保密
- WCA ID
- 2008CHEN27
- 兴趣爱好
- 理论
- 积分
- 3923
- 帖子
- 2556
- 精华
- 6
- UID
- 15558
- 性别
- 保密
- WCA ID
- 2008CHEN27
- 兴趣爱好
- 理论
|
Stackmat Pro也就是我们一般说的stackmat三代计时器(虽然经鉴定依然属于二代),其亮点也是众所周知的:计时精度精确到小数点后面第三位。
相信之前有一些魔友已经试着将Stackmat Pro与电脑上的一些软件连接了,有的能连上,有的连不上。归根结底还是输出信号结构的问题。分析Stackmat Pro信号的想法我很早就有了,可惜既没有时间,又没有设备。不过这两天我刚好有空,并且上周问小圆借来了一枚pro,昨晚+今早基本把pro的信号解出来了。
pro一共有两种信号产生模式,一种是输出它自己的信号(即有三位精度的),一种是为了兼容stackmat二代大显所产生的二代的信号(没有了第三位)。经过我的检测,这两种信号非常类似,甚至可以认为是同一种数据格式。
二代工作模式
当pro工作于二代兼容模式时,它输出的信号和二代输出的信号完全一致
回顾:stackmat二代信号分析:http://bbs.mf8-china.com/forum.php?mod=viewthread&tid=75894
pro工作模式
当pro工作于它自身的模式时,其输出信号与二代模式几乎一样,仅多了一个byte用于显示小数点后的第三位。
具体参数为:
1200波特率串口通信信号。每一帧传输8bit,低位在先,没有校验位,有起始位和结束位
整个传输过程总共传输10帧,总数据量10字节,不妨记为A0~A9。具体内容为:
A0:计时器状态,同二代信号
A1~A6:时间信息,传输的时间为:A1:A2A3.A4A5A6
A7:求和校验码。A7-64即为A1+A2+...+A6。由于pro位数更多,A7会从大写字母区(65为A开始)跨过一些符号区,一直到达小写字母区,其最大值推测为64+(9+5+9+9+9+9)=114='r'
A8A9:windows换行符<LF><CR>
相比二代,这一信号的区别在于增加了A6位来传输千分位,其它诸如A0,A8A9,校验方式均与二代完全一样。
工作模式自动切换
根据和jeremy的邮件及实际测试结果,pro会自动检测端口状态(jeremy说pro只在启动时检测,经过我的测试,pro的检测是实时的,只要端口状态改变,输出信号立刻发生变化)
When it turns on, the stackmat pro checks to see if the TRRS connector plugged into it has shorted the RS (to make it a TRS connector). If RS is shorted, then it outputs a gen2 signal. If RS are not shorted, then it will output milliseconds.
计时器兼容性
现有的几款常用的计时器,如CCT,PPT尽管很容易让它兼容pro,但这些计时器的作者似乎最近比较忙,还没有更新的意愿。所以现有的方法只是让pro在二代模式下工作,但由于pro工作模式自动切换的特点,这一条并不那么容易实现,据我所知还没有一个完美的实现方案。
附:典型信号采样- 空闲状态:
- 010010010 1000001100 1000001100 1000001100 1000001100 1000001100 1000001100 1000000010 1001010000 10101100001
- I000000@
- 计时中:
- 000000100 1000101100 1000001100 1011101100 1000011100 1010101100 1010101100 1010111010 1001010000 10101100001
- 407855]
复制代码 |
|