2 // Inputs specification
3 // rien d'appuyer : 11540000
29 #include <ardrone_api.h>
31 #include <ardrone_tool/UI/ardrone_input.h>
32 #include <ardrone_tool/UI/ardrone_tool_ui.h>
34 static uint32_t user_input = 0;
36 C_RESULT ui_pad_ab(int32_t value)
39 user_input |= (1 << ARDRONE_UI_BIT_AB);
41 user_input &= ~(1 << ARDRONE_UI_BIT_AB);
46 C_RESULT ui_pad_ag(int32_t value)
49 user_input |= (1 << ARDRONE_UI_BIT_AG);
51 user_input &= ~(1 << ARDRONE_UI_BIT_AG);
56 C_RESULT ui_pad_ad(int32_t value)
59 user_input |= (1 << ARDRONE_UI_BIT_AD);
61 user_input &= ~(1 << ARDRONE_UI_BIT_AD);
66 C_RESULT ui_pad_ah(int32_t value)
69 user_input |= (1 << ARDRONE_UI_BIT_AH);
71 user_input &= ~(1 << ARDRONE_UI_BIT_AH);
76 C_RESULT ui_pad_l1(int32_t value)
79 user_input |= (1 << ARDRONE_UI_BIT_L1);
81 user_input &= ~(1 << ARDRONE_UI_BIT_L1);
86 C_RESULT ui_pad_r1(int32_t value)
89 user_input |= (1 << ARDRONE_UI_BIT_R1);
91 user_input &= ~(1 << ARDRONE_UI_BIT_R1);
96 C_RESULT ui_pad_l2(int32_t value)
99 user_input |= (1 << ARDRONE_UI_BIT_L2);
101 user_input &= ~(1 << ARDRONE_UI_BIT_L2);
106 C_RESULT ui_pad_r2(int32_t value)
109 user_input |= (1 << ARDRONE_UI_BIT_R2);
111 user_input &= ~(1 << ARDRONE_UI_BIT_R2);
116 C_RESULT ui_pad_start_stop(int32_t value)
119 user_input |= (1 << ARDRONE_UI_BIT_START);
121 user_input &= ~(1 << ARDRONE_UI_BIT_START);
126 C_RESULT ui_pad_select(int32_t value)
129 user_input |= (1 << ARDRONE_UI_BIT_SELECT);
131 user_input &= ~(1 << ARDRONE_UI_BIT_SELECT);
136 C_RESULT ui_pad_xy_change(int32_t x, int32_t y)
138 user_input &= ~(3 << ARDRONE_UI_BIT_X);
139 user_input &= ~(3 << ARDRONE_UI_BIT_Y);
141 user_input |= (x + 1) << ARDRONE_UI_BIT_X;
142 user_input |= (y + 1) << ARDRONE_UI_BIT_Y;
147 C_RESULT ui_pad_reset_user_input(input_state_t* input_state)
158 //input_state->r2 = 0; (To avoid angle trim done when CTRL_TRANS_LANDING =>CTRL_LANDING)
159 input_state->select = 0;
160 input_state->start = 0;
179 //ui_pad_r2_pressed(input_state);
180 //ui_pad_r2_released(input_state);
181 ui_pad_xy_change(0, 0);
184 ui_pad_theta_trim(0);
186 return custom_reset_user_input(input_state, user_input);
189 C_RESULT ui_pad_reset_user_input_start(input_state_t* input_state)
191 ui_pad_start_stop(0);
193 return custom_reset_user_input(input_state, user_input);
196 C_RESULT ui_pad_update_user_input(input_state_t* input_state)
198 ardrone_at_set_ui_value( user_input );
200 return custom_update_user_input(input_state, user_input );
203 C_RESULT ui_pad_phi_trim( int32_t phi_trim )
205 user_input &= ~(3 << ARDRONE_UI_BIT_TRIM_PHI);
206 user_input |= (phi_trim + 1) << ARDRONE_UI_BIT_TRIM_PHI;
211 C_RESULT ui_pad_theta_trim( int32_t theta_trim )
213 user_input &= ~(3 << ARDRONE_UI_BIT_TRIM_THETA);
214 user_input |= (theta_trim + 1) << ARDRONE_UI_BIT_TRIM_THETA;
219 C_RESULT ui_pad_yaw_trim( int32_t yaw_trim )
221 user_input &= ~(3 << ARDRONE_UI_BIT_TRIM_YAW);
222 user_input |= (yaw_trim + 1) << ARDRONE_UI_BIT_TRIM_YAW;
227 uint32_t ui_get_user_input(void)