跳至内容

SwisTrack/SwisTrack 接口/第三方软件

来自维基教科书,开放世界中的开放书籍

启动时,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 个字符(包括分隔空格)。点被连接成一个字符串。没有终止字符。

华夏公益教科书