fix race on state machines
[aversive.git] / projects / microb2010 / cobboard / 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.6 2009-11-08 17:25:00 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 extern parse_pgm_inst_t cmd_ax12_stress;
47 extern parse_pgm_inst_t cmd_ax12_dump_stats;
48
49 /* commands_cs.c */
50 extern parse_pgm_inst_t cmd_gain;
51 extern parse_pgm_inst_t cmd_gain_show;
52 extern parse_pgm_inst_t cmd_speed;
53 extern parse_pgm_inst_t cmd_speed_show;
54 extern parse_pgm_inst_t cmd_derivate_filter;
55 extern parse_pgm_inst_t cmd_derivate_filter_show;
56 extern parse_pgm_inst_t cmd_consign;
57 extern parse_pgm_inst_t cmd_maximum;
58 extern parse_pgm_inst_t cmd_maximum_show;
59 extern parse_pgm_inst_t cmd_quadramp;
60 extern parse_pgm_inst_t cmd_quadramp_show;
61 extern parse_pgm_inst_t cmd_cs_status;
62 extern parse_pgm_inst_t cmd_blocking_i;
63 extern parse_pgm_inst_t cmd_blocking_i_show;
64
65 /* commands_cobboard.c */
66 extern parse_pgm_inst_t cmd_event;
67 extern parse_pgm_inst_t cmd_color;
68 extern parse_pgm_inst_t cmd_state1;
69 extern parse_pgm_inst_t cmd_state2;
70 extern parse_pgm_inst_t cmd_state3;
71 extern parse_pgm_inst_t cmd_state_debug;
72 extern parse_pgm_inst_t cmd_state_machine;
73 extern parse_pgm_inst_t cmd_servo_door;
74 extern parse_pgm_inst_t cmd_cobroller;
75 extern parse_pgm_inst_t cmd_servo_carry;
76 extern parse_pgm_inst_t cmd_spickle;
77 extern parse_pgm_inst_t cmd_spickle_params;
78 extern parse_pgm_inst_t cmd_spickle_params_show;
79 extern parse_pgm_inst_t cmd_spickle_params2;
80 extern parse_pgm_inst_t cmd_spickle_params2_show;
81 extern parse_pgm_inst_t cmd_shovel;
82 extern parse_pgm_inst_t cmd_test;
83
84
85 /* in progmem */
86 parse_pgm_ctx_t main_ctx[] = {
87
88         /* commands_gen.c */
89         (parse_pgm_inst_t *)&cmd_reset,
90         (parse_pgm_inst_t *)&cmd_bootloader,
91         (parse_pgm_inst_t *)&cmd_encoders,
92         (parse_pgm_inst_t *)&cmd_pwm,
93         (parse_pgm_inst_t *)&cmd_adc,
94         (parse_pgm_inst_t *)&cmd_sensor,
95         (parse_pgm_inst_t *)&cmd_log,
96         (parse_pgm_inst_t *)&cmd_log_show,
97         (parse_pgm_inst_t *)&cmd_log_type,
98         (parse_pgm_inst_t *)&cmd_stack_space,
99         (parse_pgm_inst_t *)&cmd_scheduler,
100
101         /* commands_ax12.c */
102         (parse_pgm_inst_t *)&cmd_baudrate,
103         (parse_pgm_inst_t *)&cmd_uint16_read,
104         (parse_pgm_inst_t *)&cmd_uint16_write,
105         (parse_pgm_inst_t *)&cmd_uint8_read,
106         (parse_pgm_inst_t *)&cmd_uint8_write,
107         (parse_pgm_inst_t *)&cmd_ax12_stress,
108         (parse_pgm_inst_t *)&cmd_ax12_dump_stats,
109
110         /* commands_cs.c */
111         (parse_pgm_inst_t *)&cmd_gain,
112         (parse_pgm_inst_t *)&cmd_gain_show,
113         (parse_pgm_inst_t *)&cmd_speed,
114         (parse_pgm_inst_t *)&cmd_speed_show,
115         (parse_pgm_inst_t *)&cmd_consign,
116         (parse_pgm_inst_t *)&cmd_derivate_filter,
117         (parse_pgm_inst_t *)&cmd_derivate_filter_show,
118         (parse_pgm_inst_t *)&cmd_maximum,
119         (parse_pgm_inst_t *)&cmd_maximum_show,
120         (parse_pgm_inst_t *)&cmd_quadramp,
121         (parse_pgm_inst_t *)&cmd_quadramp_show,
122         (parse_pgm_inst_t *)&cmd_cs_status,
123         (parse_pgm_inst_t *)&cmd_blocking_i,
124         (parse_pgm_inst_t *)&cmd_blocking_i_show,
125
126         /* commands_cobboard.c */
127         (parse_pgm_inst_t *)&cmd_event,
128         (parse_pgm_inst_t *)&cmd_color,
129         (parse_pgm_inst_t *)&cmd_state1,
130         (parse_pgm_inst_t *)&cmd_state2,
131         (parse_pgm_inst_t *)&cmd_state3,
132         (parse_pgm_inst_t *)&cmd_state_debug,
133         (parse_pgm_inst_t *)&cmd_state_machine,
134         (parse_pgm_inst_t *)&cmd_servo_door,
135         (parse_pgm_inst_t *)&cmd_cobroller,
136         (parse_pgm_inst_t *)&cmd_servo_carry,
137         (parse_pgm_inst_t *)&cmd_spickle,
138         (parse_pgm_inst_t *)&cmd_spickle_params,
139         (parse_pgm_inst_t *)&cmd_spickle_params_show,
140         (parse_pgm_inst_t *)&cmd_spickle_params2,
141         (parse_pgm_inst_t *)&cmd_spickle_params2_show,
142         (parse_pgm_inst_t *)&cmd_shovel,
143         (parse_pgm_inst_t *)&cmd_test,
144
145         NULL,
146 };