跳轉到內容

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 個字元)返回,必要時新增前導零。

檢索 Blob 資料

[編輯 | 編輯原始碼]
'b' 與 't' 相同。SwisTrack 將傳送 Blob,這些 Blob 前面是 Blob 的數量。Blob 的數量被編碼為格式為 '####' 的整數,緊跟著 Blob 字串(以 't' 中的格式編碼)。
'B' 與 'b' 相同,但 SwisTrack 將執行一步,並在完成後進入暫停模式(如 'T')。
'n' 請求檢測到的 Blob 數量。資料以格式 ###(3 個字元)返回,必要時新增前導零。

檢索任務進度

[編輯 | 編輯原始碼]
'i' 以格式 ##########(10 個字元)傳送回當前幀號
'I' 以格式 ##.##(5 個字元)傳送回跟蹤進度,以百分比表示
'f' 以格式 ##.##(5 個字元)傳送回當前幀率,以赫茲表示

資料格式

[編輯 | 編輯原始碼]

每個點(無論是校準的還是未校準的,軌跡的還是 Blob 的)都以格式 "+####.#### +####.####" 傳送為固定精度的浮點數,因此長度為 21 個字元(包括分隔空格)。點被連線成字串。沒有終止符。

華夏公益教科書