启动时,SwisTrack 监听端口 3000(例如 localhost:3000),接受套接字连接。命令可以作为单个字符发送(区分大小写),并在下面给出。SwisTrack 将以适当的动作进行响应,或发送包含响应的字符串。重要的是要确保从套接字中读取确切的字节数,否则消息将混淆。每个命令都给出了可以预期接收的字节数。
'p' |
暂停跟踪 |
'R' |
开始跟踪 |
's' |
执行一步 |
'S' |
恢复跟踪 |
'!'
|
停止跟踪器 |
'c' |
关闭校准(默认)。所有发送的点,无论是轨迹数据还是斑点,都将在图像坐标系中发送。 |
'C' |
打开校准。所有发送的点,无论是轨迹数据还是斑点,都将在世界坐标系中发送。 |
't' |
以异步方式获取数据点。你将始终获取最新的轨迹数据。如果你的应用程序比 SwisTrack 生成数据更快地查询数据,你将多次获得相同的数据。如果 SwisTrack 运行速度更快,你最终将丢失信息。轨迹数据被编码为具有固定精度和前导零的浮点数元组,格式为 "+####.#### +####.####"(21 个字符)。元组用空格隔开。 |
'T' |
以同步方式获取数据点。每次请求数据时,SwisTrack 将处理单个帧。如果你的应用程序查询帧的速度快于使用中的媒体(相机/视频)支持的帧速率,SwisTrack 将延迟发送数据包。如果你的应用程序运行速度过慢,SwisTrack 将跳过相机提供的帧,但不会跳过视频源提供的帧。数据编码方式与 't' 相同。 |
'N' |
请求正在跟踪的轨迹数量。数据以格式 ###(3 个字符)返回,如果需要,前面有前导零。 |
'b' |
与 't' 相同。SwisTrack 将发送以斑点数量为前缀的斑点。斑点数量被编码为格式为 '####' 的整数,紧跟着斑点字符串(编码方式与 't' 相同)。 |
'B' |
与 'b' 相同,但 SwisTrack 将执行一步并进入暂停模式(如 'T')。 |
'n' |
请求检测到的斑点数量。数据以格式 ###(3 个字符)返回,如果需要,前面有前导零。 |
'i' |
以格式 ##########(10 个字符)发送当前帧号。 |
'I' |
以格式 ##.##(5 个字符)发送跟踪进度,以百分比表示。 |
'f' |
以格式 ##.##(5 个字符)发送当前帧速率,以赫兹表示。 |
每个点(无论是校准的还是未校准的,轨迹还是斑点)都以固定精度的浮点数格式 "+####.#### +####.####" 发送,因此长度为 21 个字符(包括分隔空格)。点被连接成一个字符串。没有终止字符。