啟動時,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 個字元(包括分隔空格)。點被連線成一個字串。沒有終止字元。