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%2FControl%2Fardrone_control.h;fp=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FARDroneLib%2FSoft%2FLib%2Fardrone_tool%2FControl%2Fardrone_control.h;h=7cbdd40b37d0a8ed62302925cf9157a780499279;hp=0000000000000000000000000000000000000000;hb=9ec9bc13b75d30bc45535c54a652934debfcea92;hpb=ae0a3c2dc0898400aca0dd6b439c5db8044db7b2 diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/Control/ardrone_control.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/Control/ardrone_control.h new file mode 100644 index 0000000..7cbdd40 --- /dev/null +++ b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/Soft/Lib/ardrone_tool/Control/ardrone_control.h @@ -0,0 +1,46 @@ +#ifndef _ARDRONE_TOOL_CONTROL_H_ +#define _ARDRONE_TOOL_CONTROL_H_ + +#include +#include + +#define ARDRONE_CONTROL_MAX_NUM_EVENTS_IN_QUEUE 32 + +typedef enum _ardrone_control_event_status_t { + ARDRONE_CONTROL_EVENT_IDLE = 0x0000, + ARDRONE_CONTROL_EVENT_WAITING = 0x1000, + ARDRONE_CONTROL_EVENT_IN_PROGRESS = 0x2000, + ARDRONE_CONTROL_EVENT_FINISH = 0x4000, + ARDRONE_CONTROL_EVENT_FINISH_SUCCESS = 0x4001, + ARDRONE_CONTROL_EVENT_FINISH_FAILURE = 0x4002 +} ardrone_control_event_status_t; + +struct _ardrone_control_event_t; + +typedef void (*ardrone_control_event_cb)( struct _ardrone_control_event_t* event ); + +typedef struct _ardrone_control_event_t { + + uint32_t event; // event type + uint32_t num_retries; // number of times we'll try to execute this event + uint32_t status; // event status + + ardrone_control_event_cb ardrone_control_event_start; + ardrone_control_event_cb ardrone_control_event_end; + + uint8_t data[]; // User data associated with this event + +} ardrone_control_event_t, *ardrone_control_event_ptr_t; + +C_RESULT ardrone_control_init(void); +C_RESULT ardrone_control_shutdown(void); +C_RESULT ardrone_control_resume_on_navdata_received(uint32_t ardrone_state); + +C_RESULT ardrone_control_read(int8_t* buffer, int32_t* size); +C_RESULT ardrone_control_write(const int8_t* buffer, int32_t* size); + +C_RESULT ardrone_control_send_event( ardrone_control_event_t* event ); + +PROTO_THREAD_ROUTINE( ardrone_control, nomParams ); + +#endif // _ARDRONE_TOOL_CONTROL_H_