7f87f687a4f1d04f42177e5500acea6591a462a4
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / VP_Stages / vp_stages_io_com.h
1 /**
2  *  \brief    VP Stages. Com stage declaration
3  *  \author   Sylvain Gaeremynck <sylvain.gaeremynck@parrot.fr>
4  *  \author   Aurelien Morelle <aurelien.morelle@parrot.fr>
5  *  \author   Thomas Landais <thomas.landais@parrot.fr>
6  *  \version  2.0
7  *  \date     first release 16/03/2007
8  *  \date     modification  19/03/2007
9  */
10
11 #ifndef _VP_STAGES_IO_COM_H_
12 #define _VP_STAGES_IO_COM_H_
13
14 /** 
15  * @defgroup VP_SDK
16  * @{ */
17
18 /** 
19  * @defgroup VP_Stages
20  * @{ */
21
22 /** 
23  * @defgroup vp_stages_io_com input/output communcation stage
24  * @{ */
25
26
27 #include <VP_Api/vp_api.h>
28 #include <VP_Com/vp_com.h>
29
30 ///////////////////////////////////////////////
31 // TYPEDEFS
32
33 typedef struct _vp_stages_input_com_config_
34 {
35   vp_com_t*             com;
36
37   vp_com_config_t*      config;
38   vp_com_connection_t*  connection;
39
40   vp_com_socket_t       socket;
41   VP_COM_SOCKET_OPTIONS sockopt;
42
43   uint32_t              buffer_size;
44
45   // Private Datas
46   vp_com_socket_t       socket_client; // Socket used for read / write
47   Read                  read;
48
49 } vp_stages_input_com_config_t;
50
51 typedef struct _vp_stages_output_com_config_
52 {
53   vp_com_t*             com;
54
55   vp_com_config_t*      config;
56   vp_com_connection_t*  connection;
57
58   vp_com_socket_t       socket;
59   VP_COM_SOCKET_OPTIONS sockopt;
60
61   uint32_t              buffer_size;
62
63   // Private Datas
64   vp_com_socket_t       socket_client; // Socket used for read / write
65   Write                 write;
66
67 } vp_stages_output_com_config_t;
68
69
70 ///////////////////////////////////////////////
71 // FUNCTIONS
72
73 /**
74  * @fn      Open the input com stage
75  * @param   vp_stages_input_com_config_t *cfg
76  * @todo    A COMMENTER
77  * @return  VP_SUCCESS
78  */
79 C_RESULT
80 vp_stages_input_com_stage_open(vp_stages_input_com_config_t *cfg);
81
82
83 /**
84  * @fn      Transform the input com stage
85  * @param   vp_stages_input_com_config_t *cfg
86  * @param   vp_api_io_data_t *in
87  * @param   vp_api_io_data_t *out
88  * @todo    A COMMENTER
89  * @return  VP_SUCCESS
90  */
91 C_RESULT
92 vp_stages_input_com_stage_transform(vp_stages_input_com_config_t *cfg, vp_api_io_data_t *in, vp_api_io_data_t *out);
93
94 /**
95  * @fn      Close the input com stage
96  * @param   vp_stages_input_com_config_t *cfg
97  * @todo    A COMMENTER
98  * @return  VP_SUCCESS
99  */
100 C_RESULT
101 vp_stages_input_com_stage_close(vp_stages_input_com_config_t *cfg);
102
103
104 /**
105  * @fn      Open the output com stage
106  * @param   vp_stages_output_com_config_t *cfg
107  * @todo    A COMMENTER
108  * @return  VP_SUCCESS
109  */
110 C_RESULT
111 vp_stages_output_com_stage_open(vp_stages_output_com_config_t *cfg);
112
113 /**
114  * @fn      Transform the output com stage
115  * @param   vp_stages_output_com_config_t *cfg
116  * @param   vp_api_io_data_t *in
117  * @param   vp_api_io_data_t *out
118  * @todo    A COMMENTER
119  * @return  VP_SUCCESS
120  */
121 C_RESULT
122 vp_stages_output_com_stage_transform(vp_stages_output_com_config_t *cfg, vp_api_io_data_t *in, vp_api_io_data_t *out);
123
124 /**
125  * @fn      Close the output com stage
126  * @param   vp_stages_output_com_config_t *cfg
127  * @todo    A COMMENTER
128  * @return  VP_SUCCESS
129  */
130 C_RESULT
131 vp_stages_output_com_stage_close(vp_stages_output_com_config_t *cfg);
132
133 // vp_stages_io_com
134 /** @} */
135 // VP_Stages
136 /** @} */
137 // VP_SDK
138 /** @} */
139
140
141 #endif // ! _VP_STAGES_IO_COM_H_