私は現在、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. PHPの睡眠
- 5. スモールトークスクロールの睡眠
- 6. SQLクエリ睡眠
- 7. PyQt4描画と睡眠
- 8. `ループ{}` `対ループ{睡眠1}`
- 9. 睡眠のあるJavascriptループ
- 10. Android C2DM睡眠電話
- 11. カピバラ/キュウリの睡眠機能?
- 12. Pythonの睡眠10のリクエスト
- 13. 睡眠中にPythonプロセスを殺す
- 14. OCamlで1秒未満の睡眠
- 15. 睡眠のための隠し画面
- 16. Box2Dの睡眠体の短所
- 17. iOS 5深い睡眠の防止
- 18. QThreadの中の睡眠機能
- 19. エリクシール睡眠/ 1秒間待機
- 20. 奇妙な睡眠行動は
- 21. 睡眠からの目覚めと再生の再開
- 22. 分析Fitbitの歩行と睡眠のデータ
- 23. カピバラは働くために睡眠が必要ですか?
- 24. HM-10 CC2541 IBeacon - ランダム時間後の睡眠の問題
- 25. 期待される睡眠の持続時間(1)
- 26. 時々response.read()関数の私のコードの睡眠、
- 27. JS睡眠機能付きオシレーターからのノートのオーディオシーケンス
- 28. Macアプリの睡眠後にCPUが多すぎます
- 29. どのようにjavascriptで睡眠をするには?
- 30. UP3(顎骨)REALTIMEで睡眠の値を取得する方法
私が考えることができる唯一の選択肢は、sleep()をpoll()またはselect()に置き換えて、空のファイル記述子をタイムアウトに設定するという醜いハッカーです。 –