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