other proto for circle
[aversive.git] / projects / microb2009 / mainboard / commands.c
1 /*
2  *  Copyright Droids Corporation (2009)
3  * 
4  *  This program is free software; you can redistribute it and/or modify
5  *  it under the terms of the GNU General Public License as published by
6  *  the Free Software Foundation; either version 2 of the License, or
7  *  (at your option) any later version.
8  *
9  *  This program is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  *  GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License
15  *  along with this program; if not, write to the Free Software
16  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  *
18  *  Revision : $Id: commands.c,v 1.9 2009-11-08 17:24:33 zer0 Exp $
19  *
20  *  Olivier MATZ <zer0@droids-corp.org> 
21  */
22
23 #include <stdlib.h>
24 #include <aversive/pgmspace.h>
25 #include <parse.h>
26
27 /* commands_gen.c */
28 extern parse_pgm_inst_t cmd_reset;
29 extern parse_pgm_inst_t cmd_bootloader;
30 extern parse_pgm_inst_t cmd_encoders;
31 extern parse_pgm_inst_t cmd_pwm;
32 extern parse_pgm_inst_t cmd_adc;
33 extern parse_pgm_inst_t cmd_sensor;
34 extern parse_pgm_inst_t cmd_log;
35 extern parse_pgm_inst_t cmd_log_show;
36 extern parse_pgm_inst_t cmd_log_type;
37 extern parse_pgm_inst_t cmd_stack_space;
38 extern parse_pgm_inst_t cmd_scheduler;
39
40 /* commands_ax12.c */
41 extern parse_pgm_inst_t cmd_baudrate;
42 extern parse_pgm_inst_t cmd_uint16_read;
43 extern parse_pgm_inst_t cmd_uint16_write;
44 extern parse_pgm_inst_t cmd_uint8_read;
45 extern parse_pgm_inst_t cmd_uint8_write;
46
47 /* commands_cs.c */
48 extern parse_pgm_inst_t cmd_gain;
49 extern parse_pgm_inst_t cmd_gain_show;
50 extern parse_pgm_inst_t cmd_speed;
51 extern parse_pgm_inst_t cmd_speed_show;
52 extern parse_pgm_inst_t cmd_derivate_filter;
53 extern parse_pgm_inst_t cmd_derivate_filter_show;
54 extern parse_pgm_inst_t cmd_consign;
55 extern parse_pgm_inst_t cmd_maximum;
56 extern parse_pgm_inst_t cmd_maximum_show;
57 extern parse_pgm_inst_t cmd_quadramp;
58 extern parse_pgm_inst_t cmd_quadramp_show;
59 extern parse_pgm_inst_t cmd_cs_status;
60 extern parse_pgm_inst_t cmd_blocking_i;
61 extern parse_pgm_inst_t cmd_blocking_i_show;
62
63 /* commands_mainboard.c */
64 extern parse_pgm_inst_t cmd_event;
65 extern parse_pgm_inst_t cmd_spi_test;
66 extern parse_pgm_inst_t cmd_opponent;
67 extern parse_pgm_inst_t cmd_opponent_set;
68 extern parse_pgm_inst_t cmd_start;
69 extern parse_pgm_inst_t cmd_interact;
70 extern parse_pgm_inst_t cmd_color;
71 extern parse_pgm_inst_t cmd_rs;
72 extern parse_pgm_inst_t cmd_i2cdebug;
73 extern parse_pgm_inst_t cmd_mechboard_show;
74 extern parse_pgm_inst_t cmd_mechboard_setmode1;
75 extern parse_pgm_inst_t cmd_mechboard_setmode2;
76 extern parse_pgm_inst_t cmd_mechboard_setmode3;
77 extern parse_pgm_inst_t cmd_mechboard_setmode4;
78 extern parse_pgm_inst_t cmd_mechboard_setmode5;
79 extern parse_pgm_inst_t cmd_pickup_wheels;
80 extern parse_pgm_inst_t cmd_beacon_start;
81 extern parse_pgm_inst_t cmd_pump_current;
82 extern parse_pgm_inst_t cmd_build_test;
83 extern parse_pgm_inst_t cmd_column_test;
84 extern parse_pgm_inst_t cmd_column_test2;
85 extern parse_pgm_inst_t cmd_lintel_test;
86 extern parse_pgm_inst_t cmd_pickup_test;
87 extern parse_pgm_inst_t cmd_scan_test;
88 extern parse_pgm_inst_t cmd_scan_test2;
89 extern parse_pgm_inst_t cmd_time_monitor;
90 extern parse_pgm_inst_t cmd_scanner;
91 extern parse_pgm_inst_t cmd_build_z1;
92 #ifdef TEST_BEACON
93 extern parse_pgm_inst_t cmd_beacon_opp_dump;
94 #endif
95 extern parse_pgm_inst_t cmd_circle_radius;
96 extern parse_pgm_inst_t cmd_test;
97
98 /* commands_traj.c */
99 extern parse_pgm_inst_t cmd_traj_speed;
100 extern parse_pgm_inst_t cmd_traj_speed_show;
101 extern parse_pgm_inst_t cmd_trajectory;
102 extern parse_pgm_inst_t cmd_trajectory_show;
103 extern parse_pgm_inst_t cmd_circle_coef;
104 extern parse_pgm_inst_t cmd_circle_coef_show;
105 extern parse_pgm_inst_t cmd_rs_gains;
106 extern parse_pgm_inst_t cmd_rs_gains_show;
107 extern parse_pgm_inst_t cmd_track;
108 extern parse_pgm_inst_t cmd_track_show;
109 extern parse_pgm_inst_t cmd_pt_list;
110 extern parse_pgm_inst_t cmd_pt_list_append;
111 extern parse_pgm_inst_t cmd_pt_list_del;
112 extern parse_pgm_inst_t cmd_pt_list_show;
113 extern parse_pgm_inst_t cmd_goto1;
114 extern parse_pgm_inst_t cmd_goto2;
115 extern parse_pgm_inst_t cmd_goto3;
116 extern parse_pgm_inst_t cmd_goto4;
117 extern parse_pgm_inst_t cmd_position;
118 extern parse_pgm_inst_t cmd_position_set;
119 extern parse_pgm_inst_t cmd_strat_infos;
120 extern parse_pgm_inst_t cmd_strat_conf;
121 extern parse_pgm_inst_t cmd_strat_conf2;
122 extern parse_pgm_inst_t cmd_strat_conf3;
123 extern parse_pgm_inst_t cmd_strat_conf4;
124 extern parse_pgm_inst_t cmd_subtraj;
125
126 /* in progmem */
127 parse_pgm_ctx_t main_ctx[] = {
128
129         /* commands_gen.c */
130         (parse_pgm_inst_t *)&cmd_reset,
131         (parse_pgm_inst_t *)&cmd_bootloader,
132         (parse_pgm_inst_t *)&cmd_encoders,
133         (parse_pgm_inst_t *)&cmd_pwm,
134         (parse_pgm_inst_t *)&cmd_adc,
135         (parse_pgm_inst_t *)&cmd_sensor,
136         (parse_pgm_inst_t *)&cmd_log,
137         (parse_pgm_inst_t *)&cmd_log_show,
138         (parse_pgm_inst_t *)&cmd_log_type,
139         (parse_pgm_inst_t *)&cmd_stack_space,
140         (parse_pgm_inst_t *)&cmd_scheduler,
141
142         /* commands_ax12.c */
143         (parse_pgm_inst_t *)&cmd_baudrate,
144         (parse_pgm_inst_t *)&cmd_uint16_read,
145         (parse_pgm_inst_t *)&cmd_uint16_write,
146         (parse_pgm_inst_t *)&cmd_uint8_read,
147         (parse_pgm_inst_t *)&cmd_uint8_write,
148
149         /* commands_cs.c */
150         (parse_pgm_inst_t *)&cmd_gain,
151         (parse_pgm_inst_t *)&cmd_gain_show,
152         (parse_pgm_inst_t *)&cmd_speed,
153         (parse_pgm_inst_t *)&cmd_speed_show,
154         (parse_pgm_inst_t *)&cmd_consign,
155         (parse_pgm_inst_t *)&cmd_derivate_filter,
156         (parse_pgm_inst_t *)&cmd_derivate_filter_show,
157         (parse_pgm_inst_t *)&cmd_maximum,
158         (parse_pgm_inst_t *)&cmd_maximum_show,
159         (parse_pgm_inst_t *)&cmd_quadramp,
160         (parse_pgm_inst_t *)&cmd_quadramp_show,
161         (parse_pgm_inst_t *)&cmd_cs_status,
162         (parse_pgm_inst_t *)&cmd_blocking_i,
163         (parse_pgm_inst_t *)&cmd_blocking_i_show,
164
165         /* commands_mainboard.c */
166         (parse_pgm_inst_t *)&cmd_event,
167         (parse_pgm_inst_t *)&cmd_spi_test,
168         (parse_pgm_inst_t *)&cmd_opponent,
169         (parse_pgm_inst_t *)&cmd_opponent_set,
170         (parse_pgm_inst_t *)&cmd_start,
171         (parse_pgm_inst_t *)&cmd_interact,
172         (parse_pgm_inst_t *)&cmd_color,
173         (parse_pgm_inst_t *)&cmd_rs,
174         (parse_pgm_inst_t *)&cmd_i2cdebug,
175         (parse_pgm_inst_t *)&cmd_mechboard_show,
176         (parse_pgm_inst_t *)&cmd_mechboard_setmode1,
177         (parse_pgm_inst_t *)&cmd_mechboard_setmode2,
178         (parse_pgm_inst_t *)&cmd_mechboard_setmode3,
179         (parse_pgm_inst_t *)&cmd_mechboard_setmode4,
180         (parse_pgm_inst_t *)&cmd_mechboard_setmode5,
181         (parse_pgm_inst_t *)&cmd_pickup_wheels,
182         (parse_pgm_inst_t *)&cmd_beacon_start,
183         (parse_pgm_inst_t *)&cmd_pump_current,
184         (parse_pgm_inst_t *)&cmd_build_test,
185         (parse_pgm_inst_t *)&cmd_column_test,
186         (parse_pgm_inst_t *)&cmd_column_test2,
187         (parse_pgm_inst_t *)&cmd_lintel_test,
188         (parse_pgm_inst_t *)&cmd_pickup_test,
189         (parse_pgm_inst_t *)&cmd_scan_test,
190         (parse_pgm_inst_t *)&cmd_scan_test2,
191         (parse_pgm_inst_t *)&cmd_time_monitor,
192         (parse_pgm_inst_t *)&cmd_scanner,
193         (parse_pgm_inst_t *)&cmd_build_z1,
194 #ifdef TEST_BEACON
195         (parse_pgm_inst_t *)&cmd_beacon_opp_dump,
196 #endif
197         (parse_pgm_inst_t *)&cmd_circle_radius,
198         (parse_pgm_inst_t *)&cmd_test,
199
200         /* commands_traj.c */
201         (parse_pgm_inst_t *)&cmd_traj_speed,
202         (parse_pgm_inst_t *)&cmd_traj_speed_show,
203         (parse_pgm_inst_t *)&cmd_trajectory,
204         (parse_pgm_inst_t *)&cmd_trajectory_show,
205         (parse_pgm_inst_t *)&cmd_circle_coef,
206         (parse_pgm_inst_t *)&cmd_circle_coef_show,
207         (parse_pgm_inst_t *)&cmd_rs_gains,
208         (parse_pgm_inst_t *)&cmd_rs_gains_show,
209         (parse_pgm_inst_t *)&cmd_track,
210         (parse_pgm_inst_t *)&cmd_track_show,
211         (parse_pgm_inst_t *)&cmd_pt_list,
212         (parse_pgm_inst_t *)&cmd_pt_list_append,
213         (parse_pgm_inst_t *)&cmd_pt_list_del,
214         (parse_pgm_inst_t *)&cmd_pt_list_show,
215         (parse_pgm_inst_t *)&cmd_goto1,
216         (parse_pgm_inst_t *)&cmd_goto2,
217         (parse_pgm_inst_t *)&cmd_goto4,
218         (parse_pgm_inst_t *)&cmd_position,
219         (parse_pgm_inst_t *)&cmd_position_set,
220         (parse_pgm_inst_t *)&cmd_strat_infos,
221         (parse_pgm_inst_t *)&cmd_strat_conf,
222         (parse_pgm_inst_t *)&cmd_strat_conf2,
223         (parse_pgm_inst_t *)&cmd_strat_conf3,
224         (parse_pgm_inst_t *)&cmd_strat_conf4,
225         (parse_pgm_inst_t *)&cmd_subtraj,
226         NULL,
227 };