Browse Source

HAL_PX4: fixes for new Scheduler API

master
Andrew Tridgell 12 years ago
parent
commit
7c7a215934
  1. 1
      libraries/AP_HAL_PX4/HAL_PX4_Class.cpp
  2. 16
      libraries/AP_HAL_PX4/Scheduler.cpp
  3. 5
      libraries/AP_HAL_PX4/Scheduler.h

1
libraries/AP_HAL_PX4/HAL_PX4_Class.cpp

@ -82,6 +82,7 @@ static int main_loop(int argc, char **argv)
hal.rcout->init(NULL); hal.rcout->init(NULL);
setup(); setup();
hal.scheduler->system_initialized();
while (true) { while (true) {
loop(); loop();

16
libraries/AP_HAL_PX4/Scheduler.cpp

@ -187,4 +187,20 @@ void PX4Scheduler::panic(const prog_char_t *errormsg) {
exit(1); exit(1);
} }
bool PX4Scheduler::in_timerprocess() {
return _in_timer_proc;
}
bool PX4Scheduler::system_initializing() {
return !_initialized;
}
void PX4Scheduler::system_initialized() {
if (_initialized) {
panic(PSTR("PANIC: scheduler::system_initialized called"
"more than once"));
}
_initialized = true;
}
#endif #endif

5
libraries/AP_HAL_PX4/Scheduler.h

@ -33,7 +33,12 @@ public:
void panic(const prog_char_t *errormsg); void panic(const prog_char_t *errormsg);
bool interrupts_are_blocked(void) { return _nested_atomic_ctr != 0; } bool interrupts_are_blocked(void) { return _nested_atomic_ctr != 0; }
bool in_timerprocess();
bool system_initializing();
void system_initialized();
private: private:
bool _initialized;
static uint8_t _nested_atomic_ctr; static uint8_t _nested_atomic_ctr;
AP_HAL::Proc _delay_cb; AP_HAL::Proc _delay_cb;
uint16_t _min_delay_cb_ms; uint16_t _min_delay_cb_ms;

Loading…
Cancel
Save