]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/types/robottype.idl
Merge branch 'maint-demo'
[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 };
70
71 struct robot_bumpers {
72         boolean bumper_left;
73         boolean bumper_right;
74         boolean bumper_right_across;
75         boolean bumper_left_across;
76         boolean bumper_rear_left;
77         boolean bumper_rear_right;
78 };
79
80 struct can_msg {
81     octet data[8];
82     octet len;
83     octet id;
84 };
85
86 struct hokuyo_scan {
87     unsigned short data[681];
88 };
89
90 struct pos_short {
91         unsigned short left;
92         unsigned short right;
93 };
94
95 struct pos_octet {
96         octet left;
97         octet right;
98 };
99
100 // Actuators
101 struct jaws_cmd {
102         pos_short req_pos;
103         pos_octet speed;
104 };
105
106 struct lift_cmd {
107         unsigned short req_pos;
108         octet speed;
109         octet homing;
110 };
111
112
113 /** Status sent from actuators */
114 struct jaws_status {
115         pos_short act_pos;
116         pos_short response;
117         pos_octet flags;
118 };
119
120 struct lift_status {
121         unsigned short act_pos;
122         unsigned short response; // Equals to req_pos when the move is done
123         octet flags;             // Zero when everything OK, otherwise see CAN_LIFT_FLAG_*
124 };
125
126 struct match_time {
127         double time;
128 };
129
130 // FIXME: What's this??? M.S.
131 struct binary_data {
132     octet data;
133 };
134
135 struct fsm_state {
136         char state_name[21];
137 };
138
139 module camera {
140         struct control {
141                 boolean on;
142         };
143
144         typedef octet error;
145
146         // camera error state codes (bitwise disjuntive)
147         const error ERR_NO_VIDEO = 0x01;
148         const error ERR_NO_FRAME = 0x02;
149
150         struct result {
151                 octet side;
152                 octet center;
153                 double sideDist;
154                 double centerDist;
155                 error error;
156         };
157 };
158
159 /** Command from display - see uoled.h/UDE_recieve_cmd_t */
160 struct display_cmd {
161     octet command;
162 };