Browse Source
This allows us to move a lot of delay handling from vehicle classes into HAL Scheduler. The most notable improvement is that it moves the detection of recursion into the Scheduler, out of each separate vehicle.master
Peter Barker
7 years ago
committed by
Andrew Tridgell
2 changed files with 44 additions and 3 deletions
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
#include "Scheduler.h" |
||||
|
||||
using namespace AP_HAL; |
||||
|
||||
void Scheduler::register_delay_callback(AP_HAL::Proc proc, |
||||
uint16_t min_time_ms) |
||||
{ |
||||
_delay_cb = proc; |
||||
_min_delay_cb_ms = min_time_ms; |
||||
} |
||||
|
||||
void Scheduler::call_delay_cb() |
||||
{ |
||||
if (_delay_cb == nullptr) { |
||||
return; |
||||
} |
||||
if (_in_delay_callback) { |
||||
// don't recurse!
|
||||
return; |
||||
} |
||||
_in_delay_callback = true; |
||||
_delay_cb(); |
||||
_in_delay_callback = false; |
||||
} |
Loading…
Reference in new issue