私は現在、IRビーコンを経由してナビゲートするロボット以下の小さなラインを設計しています。それはすべてC++でコード化されていますが、次の行とIRの受信を統合すると壊れているようです。 IRは割り込みサービスルーチンを使用してインターバルタイマーとSIGALRMを使用してIR信号を探します。 pathfinding関数は、他のいくつかのロボット操作とともに、sleep()を使用します。それは今SIGALRMが途中でプロセスを目覚めるとあなたは同じプログラムでSIGALRMと睡眠を()を使用することはできません私の注意に来ています。 sleep()関数の全プログラムを単純に削除するだけでなく、これを回避するには良い方法がありますか?SIGALRMと睡眠()C++
0
A
答えて
0
ワンバンドエイド修正はsleep
の代わりにnanosleep
機能を使用することです。 nanosleep
が時期尚早に起きると、残りの時間が時間構造に保存されるため、再試行できます。 sleep
のような独自の関数でこれをラップすることができます。 nanosleep
はSIGALRM
で実装されていないため、早期に目を覚ます理由はありません。アラーム信号ハンドラを設定するには、必ずsigaction
を使用し、フラグにはすべてSA_RESTART
を指定してください。これにより、再起動可能なシステムコールにシグナルが影響しないようになります。
+0
ありがとう、これは私の問題を完全に解決!私は、すべての時間が経過するまで、nanosleepを再帰的に呼び出すラッパーを使用し、割り込みは休止時間を変更するようには見えません。 – Bwood94
関連する問題
- 1. 「インタラクティブ」C++の睡眠
- 2. Cの睡眠機能
- 3. max_execution_timeに睡眠()
- 4. SQLクエリ睡眠
- 5. スモールトークスクロールの睡眠
- 6. PHPの睡眠
- 7. PyQt4描画と睡眠
- 8. カピバラ/キュウリの睡眠機能?
- 9. `ループ{}` `対ループ{睡眠1}`
- 10. 睡眠のあるJavascriptループ
- 11. Android C2DM睡眠電話
- 12. Pythonの睡眠10のリクエスト
- 13. Google Fitの睡眠はペブルの深い睡眠を返さない
- 14. 睡眠中にPythonプロセスを殺す
- 15. 奇妙な睡眠行動は
- 16. 睡眠のための隠し画面
- 17. OCamlで1秒未満の睡眠
- 18. Box2Dの睡眠体の短所
- 19. iOS 5深い睡眠の防止
- 20. QThreadの中の睡眠機能
- 21. エリクシール睡眠/ 1秒間待機
- 22. コードネーム1 - 睡眠が良ければ?
- 23. Pythonのウェブスクレイピング:睡眠と要求との間の差(ページ、タイムアウト= X)
- 24. 分析Fitbitの歩行と睡眠のデータ
- 25. 睡眠からの目覚めと再生の再開
- 26. 睡眠これは私のコードでWin7の
- 27. 期待される睡眠の持続時間(1)
- 28. Macアプリの睡眠後にCPUが多すぎます
- 29. 時間睡眠をコードする方法Rを使用して
- 30. 睡眠中にPythonでキーボード入力を無視する
私が考えることができる唯一の選択肢は、sleep()をpoll()またはselect()に置き換えて、空のファイル記述子をタイムアウトに設定するという醜いハッカーです。 –