]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/types/robottype.idl
camera/color-finder: add angle
[eurobot/public.git] / src / types / robottype.idl
1 struct motion_irc {
2         long left;              // PXMC's actual position (pxms.ap)
3         long right;             // PXMC's actual position (pxms.ap)
4         octet seq;              // Sequence number from the last received CAN_CORR_TRIG
5 };
6
7 struct odo_data {
8         long left;              // PXMC's actual position (pxms.ap)
9         long right;             // PXMC's actual position (pxms.ap)
10 };
11
12 struct motion_speed {
13         short left;
14         short right;    
15 };
16
17 struct motion_status {
18         unsigned short err_left;
19         unsigned short err_right;
20 };
21
22 struct corr_trig {
23         octet seq;
24 };
25
26 struct corr_distances {
27         unsigned short t1;
28         unsigned short t2;
29         unsigned short t3;
30 };
31
32 struct robot_pos {
33         double x;
34         double y;
35         double phi;
36 };
37
38 struct pwr_voltage {
39         double voltage33;
40         double voltage50;
41         double voltage80;
42         double voltageBAT;
43 };
44
45 struct pwr_ctrl {
46         boolean voltage33;
47         boolean voltage50;
48         boolean voltage80;
49 };
50
51 struct pwr_alert {
52         octet value;
53         boolean bat_full;
54         boolean bat_mean;
55         boolean bat_low;
56         boolean bat_critical;
57         boolean alert_33;
58         boolean alert_50;
59         boolean alert_80;
60 };
61
62 struct robot_cmd {
63         boolean start_condition;
64 };
65
66 struct robot_switches {
67         octet team_color;
68         boolean strategy;
69         boolean home;
70 };
71
72 struct robot_bumpers {
73         boolean bumper_left;
74         boolean bumper_right;
75         boolean bumper_right_across;
76         boolean bumper_left_across;
77         boolean bumper_rear_left;
78         boolean bumper_rear_right;
79 };
80
81 struct can_msg {
82     octet data[8];
83     octet len;
84     octet id;
85 };
86
87 struct hokuyo_scan {
88     unsigned short data[681];
89 };
90
91 struct sick_scan {
92     unsigned short data[271];
93 };
94
95 struct pos_short {
96         unsigned short left;
97         unsigned short right;
98 };
99
100 struct pos_octet {
101         octet left;
102         octet right;
103 };
104
105 // Actuators
106 struct jaws_cmd {
107         pos_short req_pos;
108         pos_octet speed;
109 };
110
111 struct lift_cmd {
112         unsigned short req_pos;
113         octet speed;
114         octet homing;
115 };
116
117 struct cl_sensor_cmd {
118         octet bank_nbr;
119 };
120
121 struct cl_sensor_status {
122         boolean pattern_match;
123 };
124
125
126 /** Status sent from actuators */
127 struct jaws_status {
128         pos_short act_pos;
129         pos_short response;
130         pos_octet flags;
131 };
132
133 struct lift_status {
134         unsigned short act_pos;
135         unsigned short response; // Equals to req_pos when the move is done
136         octet flags;             // Zero when everything OK, otherwise see CAN_LIFT_FLAG_*
137 };
138
139 struct match_time {
140         double time;
141 };
142
143 struct fsm_state {
144         char state_name[21];
145 };
146
147 module camera {
148         struct control {
149                 boolean on;
150                 octet color [3];
151   
152         };
153
154         typedef octet error;
155
156         // camera error state codes (bitwise disjuntive)
157         const error ERR_NO_VIDEO = 0x01;
158         const error ERR_NO_FRAME = 0x02;
159
160         struct result {
161                 octet x;
162                 octet y;
163                 double angle_deg;
164
165                 boolean data_valid;
166                 boolean target_valid;
167                 error error;
168         };
169 };
170
171 /** Command from display - see uoled.h/UDE_recieve_cmd_t */
172 struct display_cmd {
173     octet command;
174 };