AP_HAL_FLYMAPLE: implement HAL::run()

This commit is contained in:
Caio Marcelo de Oliveira Filho 2015-10-19 13:13:01 -02:00 committed by Andrew Tridgell
parent 32dc822470
commit 51bc25a2ab
3 changed files with 20 additions and 5 deletions

View File

@ -23,11 +23,9 @@
#if CONFIG_HAL_BOARD == HAL_BOARD_FLYMAPLE #if CONFIG_HAL_BOARD == HAL_BOARD_FLYMAPLE
#define AP_HAL_MAIN() extern "C" {\ #define AP_HAL_MAIN() extern "C" {\
int main (void) {\ int main (void) {\
hal.init(0, NULL); \ AP_HAL::HAL::FunCallbacks callbacks(setup, loop); \
setup();\ hal.run(0, NULL, &callbacks); \
hal.scheduler->system_initialized(); \ return 0; \
for(;;) loop();\
return 0;\
}\ }\
} }
#endif // HAL_BOARD_FLYMAPLE #endif // HAL_BOARD_FLYMAPLE

View File

@ -19,6 +19,8 @@
#include <AP_HAL/AP_HAL.h> #include <AP_HAL/AP_HAL.h>
#if CONFIG_HAL_BOARD == HAL_BOARD_FLYMAPLE #if CONFIG_HAL_BOARD == HAL_BOARD_FLYMAPLE
#include <assert.h>
#include "HAL_FLYMAPLE_Class.h" #include "HAL_FLYMAPLE_Class.h"
#include "AP_HAL_FLYMAPLE_Private.h" #include "AP_HAL_FLYMAPLE_Private.h"
@ -85,6 +87,20 @@ void HAL_FLYMAPLE::init(int argc,char* const argv[]) const {
storage->init(NULL); // Uses EEPROM.*, flash_stm* copied from AeroQuad_v3.2 storage->init(NULL); // Uses EEPROM.*, flash_stm* copied from AeroQuad_v3.2
} }
void HAL_FLYMAPLE::run(int argc, char* const argv[], Callbacks* callbacks) const
{
assert(callbacks);
init(argc, argv);
callbacks->setup();
scheduler->system_initialized();
for (;;) {
callbacks->loop();
}
}
const AP_HAL::HAL& AP_HAL::get_HAL() { const AP_HAL::HAL& AP_HAL::get_HAL() {
static const HAL_FLYMAPLE hal; static const HAL_FLYMAPLE hal;
return hal; return hal;

View File

@ -27,6 +27,7 @@ class HAL_FLYMAPLE : public AP_HAL::HAL {
public: public:
HAL_FLYMAPLE(); HAL_FLYMAPLE();
void init(int argc, char * const * argv) const; void init(int argc, char * const * argv) const;
void run(int argc, char* const* argv, Callbacks* callbacks) const override;
}; };
extern const HAL_FLYMAPLE AP_HAL_FLYMAPLE; extern const HAL_FLYMAPLE AP_HAL_FLYMAPLE;