]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/types/robottype.idl
types: Add new type for system condition signalization.
[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         char start_condition;
64 };
65
66 struct system_status {
67         char system_condition;
68 };
69
70 struct robot_bumpers {
71         boolean bumper_rear;
72         boolean bumper_left;
73         boolean bumper_right;
74 };
75
76 struct robot_switches {
77         octet strategy;
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 // Actuators
91 struct magnet_cmd {
92         unsigned short on;
93 };
94
95 struct crane_cmd {
96         unsigned short req_pos;
97         unsigned short speed;
98 };
99
100 /** Status sent from actuators */
101 struct crane_status {
102         unsigned short act_pos;
103         unsigned short response; // Equals to req_pos when the move is done
104         octet flags;             // Zero when everything OK, otherwise see CAN_CRANE_FLAG_*
105 };
106
107 struct fsm_state {
108         char state_name[21];
109 };
110
111 module camera {
112         struct control {
113                 boolean on;
114         };
115
116         typedef octet error;
117
118         // camera error state codes (bitwise disjuntive)
119         const error ERR_NO_VIDEO = 0x01;
120         const error ERR_NO_FRAME = 0x02;
121
122         struct result {
123                 boolean data_valid;
124                 boolean target_valid;
125                 error error;
126         };
127 };
128
129 /** Command from display - see uoled.h/UDE_recieve_cmd_t */
130 struct display_cmd {
131     octet command;
132 };