ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ControlEngine / iPhone / Release / ARDroneTypes.h
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ControlEngine/iPhone/Release/ARDroneTypes.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/ControlEngine/iPhone/Release/ARDroneTypes.h
new file mode 100644 (file)
index 0000000..bbc4c9e
--- /dev/null
@@ -0,0 +1,234 @@
+/*
+ *  ARDroneTypes.h
+ *  ARDroneEngine
+ *
+ *  Created by Frédéric D'HAEYER on 21/05/10.
+ *  Copyright 2010 Parrot SA. All rights reserved.
+ *
+ */
+#ifndef _ARDRONE_TYPES_H_
+#define _ARDRONE_TYPES_H_
+#include "ARDroneGeneratedTypes.h"
+
+/**
+ * Define the command identifiers from drone to Game Engine
+ */
+typedef enum {
+       ARDRONE_COMMAND_RUN, 
+       ARDRONE_COMMAND_PAUSE, 
+       ARDRONE_COMMAND_FIRE,
+} ARDRONE_COMMAND_OUT;
+
+/**
+ * Define the command identifiers from Game Engine to drone
+ */
+typedef enum {
+       ARDRONE_COMMAND_ISCLIENT,                       // Command to set if the multiplayer is client
+       ARDRONE_COMMAND_DRONE_ANIM,                     // Command to set a drone animation
+       ARDRONE_COMMAND_DRONE_LED_ANIM,     // Command to set a drone led animation
+       ARDRONE_COMMAND_SET_CONFIG,                     // Command to set a drone configuration key
+       ARDRONE_COMMAND_ENABLE_COMBINED_YAW,// Command to enable / disable combined yaw command. 
+       ARDRONE_COMMAND_VIDEO_CHANNEL,          // Command to set the channel of video                                                          -- DEPRECATED
+       ARDRONE_COMMAND_CAMERA_DETECTION,       // Command to set camera type for detection.                                            -- DEPRECATED
+       ARDRONE_COMMAND_ENEMY_SET_PARAM,        // Command to set enemy parameter for detection (color and hull).       -- DEPRECATED
+       ARDRONE_COMMAND_SET_FLY_MODE,           // Command to change flying mode                                                                        -- DEPRECATED
+} ARDRONE_COMMAND_IN;
+
+typedef void (*command_in_configuration_callback)(int result);
+
+typedef struct
+{
+       ARDRONE_COMMAND_IN command;
+       command_in_configuration_callback callback;
+       void *parameter;
+} ARDRONE_COMMAND_IN_WITH_PARAM;
+
+typedef enum {
+       ARDRONE_FLYING_STATE_LANDED = 0,
+       ARDRONE_FLYING_STATE_FLYING,
+       ARDRONE_FLYING_STATE_TAKING_OFF,
+       ARDRONE_FLYING_STATE_LANDING,
+} ARDRONE_FLYING_STATE;
+
+typedef struct
+{
+       ARDRONE_ENEMY_COLOR color;
+       int outdoor_shell;                      // 1 if enemy has outdoor shell, else 0 
+} ARDRONE_ENEMY_PARAM;
+
+typedef struct
+{
+       ARDRONE_LED_ANIMATION led_anim;
+       float frequency;
+       unsigned int duration;
+} ARDRONE_LED_ANIMATION_PARAM;
+
+typedef struct
+{
+       ARDRONE_ANIMATION drone_anim;
+       int timeout;
+} ARDRONE_ANIMATION_PARAM;
+
+/* Comments are used for autogeneration
+ * Do not modify these !
+ */
+// MATCH_TYPES : int : int32_t bool_t
+// MATCH_TYPES : unsigned int : uint32_t
+// MATCH_TYPES : float : float32_t
+// MATCH_TYPES : double : float64_t
+/* End of autogeneration comments */
+
+typedef struct
+{
+       ARDRONE_CONFIG_KEYS config_key;
+       void *pvalue;
+} ARDRONE_CONFIG_PARAM;
+
+/**
+ * Define what a 3D vector is
+ */
+typedef struct
+{
+       float x;
+       float y;
+       float z;
+}
+ARDroneVector3D;
+
+/**
+ * Define a structure to collect drone's navigation data
+ */
+typedef struct
+{
+       /**
+        * Translation speed of the drone, in meters per second
+        */
+       ARDroneVector3D linearVelocity;
+       
+       /**
+        * Rotation speed of the drone, in degré
+        */
+       ARDroneVector3D angularPosition;
+       
+       /**
+        * Navdata video num frames to synchronized Navdata with video
+        */
+       int navVideoNumFrames;
+       
+       /**
+        * Video num frames to synchronized Navdata with video
+        */
+       int videoNumFrames;
+       
+       /**
+        * Value indicates drone flying state (see ARDRONE_FLYING_STATE enum) 
+        */
+       ARDRONE_FLYING_STATE flyingState;
+       
+       /**
+        * int indicates drone is in emergency state  (1 if is in emergency, 0 else)
+        */
+       int emergencyState;
+       
+       /**
+        * Camera detection type
+        */
+       ARDRONE_CAMERA_DETECTION_TYPE detection_type;
+       
+       /**
+        * Number of finish lines detected
+        */
+       unsigned int finishLineCount;
+       
+       /**
+        * Number of double taps detected
+        */
+       unsigned int doubleTapCount;
+    
+    /**
+     * Tells the application that the ardrone engine is done with initial configuration so the application can send their own configs
+     * (1 if application can send config, 0 otherwise)
+     */
+    int isInit;
+}
+ARDroneNavigationData;
+
+/**
+ * Define a structure to exchange an enemy data
+ */
+typedef struct
+{
+       /**
+        * Position of the enemy (between -1.0 and 1.0)
+        */
+       ARDroneVector3D position;
+       
+       /**
+        * Size of the enemy (between 0.0 and 2.0)
+        */
+       float height, width;
+       
+       /**
+        * Angle of the enemy (between -90.0° and 90.0°)
+        */
+       float orientation_angle;
+}
+ARDroneEnemyData;
+
+/**
+ * Define a structure to exchange camera parameters compute by detection
+ */
+typedef struct
+{
+       /**
+        * Rotation matrix of camera
+        */
+       float rotation[3][3];
+       
+       /**
+        * Translation matrix of camera
+        */
+       float translation[3];
+       
+       /**
+        * Index of tag detected
+        */
+       int tag_index;
+} 
+ARDroneDetectionCamera;
+
+/**
+ * Define a structure to exchange camera parameters compute by drone
+ */
+typedef struct
+{
+       /**
+        * Rotation matrix of camera
+        */
+       float rotation[3][3];
+       
+       /**
+        * Translation matrix of camera
+        */
+       float translation[3];
+} 
+ARDroneCamera;
+
+/**
+ * Define a structure to exchange all enemies data
+ */
+typedef struct
+{
+       /**
+        * Number of enemies
+        */
+       unsigned int count;
+       
+       /**
+        * Pointer to an array that contains the data structure of each enemy
+        */
+       ARDroneEnemyData data[ARDRONE_MAX_ENEMIES];
+}
+ARDroneEnemiesData;
+
+#endif // _ARDRONE_TYPES_H_