ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / Soft / Lib / ardrone_tool / Control / ardrone_control.h
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 (file)
index 0000000..7cbdd40
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef _ARDRONE_TOOL_CONTROL_H_
+#define _ARDRONE_TOOL_CONTROL_H_
+
+#include <VP_Os/vp_os_types.h>
+#include <VP_Api/vp_api_thread_helper.h>
+
+#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_