ブルートゥースを使用して通信するiPhoneアプリをデバッグしようとしています。私は基本的に、デバイスがミリ秒までの時間に合意する必要があるかどうか疑問に思っています。 CFAbsoluteTimeGetCurrent()を使用して1つのデバイスから送信され、メッセージが到着したときに他のデバイスのCFAbsoluteTimeGetCurrent()からCFAbsoluteTimeGetCurrent()を差し引くと、メッセージがスタンプされます。彼らがその粒度に同期していると仮定することは安全ですか?メッセージを時間を割く別の方法がありますか?CFAbsoluteTimeGetCurrent()によって返される結果は、デバイス間で正確である必要がありますか?
0
A
答えて
1
これらは各デバイスのクロックに依存するため、いいえ、ミリ秒の精度を得ることはできません。
可能な戦略は、一連の初期ネットワークメッセージで2つのデバイスのクロックオフセットを調べることです。この同期は、ドリフトやクロックの変化を考慮して(試行して)後で行うことができます。ここで(ちょうどここブレーンストーミング)働くかもしれ何か...
A
が現在のタイムスタンプでB
(send_time
)B
回答に現在のタイムスタンプを送りだ(response_time
)A
応答(receive_time
)を受信し、見積もり:latency = 0.5 * (receive_time - send_time)
offset = (response_time - send_time - latency)
1
タイミングはデバッグ目的でのみであれば、それはおそらくそれだけの価値はありませんが、あなたのアプリケーションのニーズがクロックを同期している場合、あなたはウィキペディアにNTP articleを見てかかることがあります。これらのテクニックのいくつかを使って非常に緊密に同期することができます。
iPhoneにBSDレイヤーを介して組み込まれたNTP機能があるかどうかはわかりませんが、必要に応じてどこかでソースコードを手に入れることができます。
関連する問題
- 1. MySQLクエリによって返される結果がありません
- 2. Javaで修正されたcompareToメソッドは、intを返す必要があると言っていますが、1を返す必要があります。
- 3. 結果をMonadにバインドする必要がありますか?
- 4. Golang MongoDBエラー:結果の引数はスライスアドレスである必要があります
- 5. 返される型はentityManager symfonyである必要があります
- 6. getSystemService(...)の結果をキャッシュする必要がありますか?
- 7. mysqli更新クエリは結果を返す必要がありますか?
- 8. MongoDBクエリから返される結果の特定のインデックス/位置をレンダリングする必要があります
- 9. linkedin loginはデバイスiosにリンクされている必要があります
- 10. DBPedia SPARQLクエリで結果は返されるが、空である
- 11. 結果が誤っているかどうかを再度確認すると、より誤った結果につながることはありますか?
- 12. SQLクエリ、列は存在する必要がありますが、結果は状態ではありません
- 13. userIdによってサーバーに結果が設定されています - これはAWS Lambdaにオフロードする必要がありますか?
- 14. SQL ORACLEサブクエリ。私の結果を修正する必要があります
- 15. 過去4日間のSQL結果をフィルタリングする必要があります
- 16. CTEの結果を照会する必要があります
- 17. このメソッドはObject型の結果を返す必要があります
- 18. $ cordovaSQLite.executeによって返される結果の中に何があるか知っている方
- 19. 私のケースでカールの結果をデコードする必要がありますか?
- 20. デバイスによって無効な(ワイルド)GPS修正が返されることがありました
- 21. Mysqliの結果を関数で閉じる必要がありますか?
- 22. 正確なリダイレクトリンクを取得する必要があります
- 23. NSLocalizedString()によって返された文字列を保存する必要がありますか?
- 24. データベースにデータがあっても結果セットにnilが返されます。Swift
- 25. 窓シンボルファイルは正確に一致する必要がありますか
- 26. SQL Serverクエリに必要な結果があります
- 27. SQLiteデータベースクエリで間違った結果が返される
- 28. VBA Vlookupで間違った結果が返される
- 29. Google Places APIで間違った結果が返される
- 30. SQL Server 2012では、結合されたプライマリキーは一意である必要がありますか?