ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / Soft / Lib / ardrone_tool / Control / ardrone_control_soft_update.h
1 #ifndef _ARDRONE_CONTROL_SOFT_UPDATE_H_
2 #define _ARDRONE_CONTROL_SOFT_UPDATE_H_
3
4 #include <ardrone_tool/Control/ardrone_control.h>
5
6 #include <stdio.h>
7
8 typedef enum _ardrone_control_soft_update_error_state_t
9 {
10         FIRMWARE_NO_ERR,
11         FIRMWARE_FILE_ERR,
12         FIRMWARE_VERSION_ERR
13 } ardrone_control_soft_update_error_state_t;
14
15 typedef struct _ardrone_control_soft_update_event_t {
16
17   uint32_t  event;            // event type
18   uint32_t  num_retries;      // number of times we'll try to execute this event
19   uint32_t  status;           // event status
20
21   ardrone_control_event_cb  ardrone_control_event_start;
22   ardrone_control_event_cb  ardrone_control_event_end;
23
24   uint32_t  ack_received;     // Progress of this event
25   ardrone_control_soft_update_error_state_t error_state;
26   uint32_t  filesize;
27   uint32_t  sendsize;         // Data size in bytes we'll send per write
28   FILE*     fp;               // Descriptor of opened file
29
30 } ardrone_control_soft_update_event_t;
31
32 C_RESULT ardrone_control_soft_update_run( uint32_t ardrone_state, ardrone_control_soft_update_event_t* event );
33
34 #endif // _ARDRONE_CONTROL_SOFT_UPDATE_H_