X-Git-Url: http://git.maemo.org/git/?p=mardrone;a=blobdiff_plain;f=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FARDroneLib%2FSoft%2FLib%2Fardrone_tool%2FNavdata%2Fardrone_navdata_client.h;fp=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FARDroneLib%2FSoft%2FLib%2Fardrone_tool%2FNavdata%2Fardrone_navdata_client.h;h=7818ef87f3ca516dc9532e3630cac5b8a0220afd;hp=0000000000000000000000000000000000000000;hb=9ec9bc13b75d30bc45535c54a652934debfcea92;hpb=ae0a3c2dc0898400aca0dd6b439c5db8044db7b2 diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/Navdata/ardrone_navdata_client.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/Navdata/ardrone_navdata_client.h new file mode 100644 index 0000000..7818ef8 --- /dev/null +++ b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/Navdata/ardrone_navdata_client.h @@ -0,0 +1,59 @@ +#ifndef _ARDRONE_NAVDATA_CLIENT_H_ +#define _ARDRONE_NAVDATA_CLIENT_H_ + +#include +#include + +#include +#include +#include +#include + +#define NAVDATA_MAX_RETRIES 5 + +// Facility to declare a set of navdata handler +// Handler to resume control thread is mandatory +#define BEGIN_NAVDATA_HANDLER_TABLE \ + ardrone_navdata_handler_t ardrone_navdata_handler_table[] = { + +#define END_NAVDATA_HANDLER_TABLE \ + { ardrone_general_navdata_init, ardrone_general_navdata_process, ardrone_general_navdata_release, NULL }, \ + { ardrone_navdata_control_init, ardrone_navdata_control_process, ardrone_navdata_control_release, NULL }, \ + { NULL, NULL, NULL, NULL } \ +}; + +#define NAVDATA_HANDLER_TABLE_ENTRY( init, process, release, init_data_ptr ) \ + { (ardrone_navdata_handler_init_t)init, process, release, init_data_ptr }, + +typedef C_RESULT (*ardrone_navdata_handler_init_t)( void* data ); +typedef C_RESULT (*ardrone_navdata_handler_process_t)( const navdata_unpacked_t* const navdata ); +typedef C_RESULT (*ardrone_navdata_handler_release_t)( void ); + +typedef struct _ardrone_navdata_handler_t { + ardrone_navdata_handler_init_t init; + ardrone_navdata_handler_process_t process; + ardrone_navdata_handler_release_t release; + + void* data; // Data used during initialization +} ardrone_navdata_handler_t; + +typedef enum +{ + NAVDATA_BOOTSTRAP = 0, + NAVDATA_DEMO, + NAVDATA_FULL +} navdata_mode_t; + +extern ardrone_navdata_handler_t ardrone_navdata_handler_table[] WEAK; + +uint32_t ardrone_navdata_client_get_num_retries(void); +C_RESULT ardrone_navdata_client_init(void); +C_RESULT ardrone_navdata_client_suspend(void); +C_RESULT ardrone_navdata_client_resume(void); +C_RESULT ardrone_navdata_client_shutdown(void); +C_RESULT ardrone_navdata_open_server(void); + +PROTO_THREAD_ROUTINE( navdata_update , nomParams ); + +#endif // _ARDRONE_NAVDATA_H_ +