struct motion_irc { long left; // PXMC's actual position (pxms.ap) long right; // PXMC's actual position (pxms.ap) octet seq; // Sequence number from the last received CAN_CORR_TRIG }; struct motion_speed { short left; short right; }; struct motion_status { unsigned short err_left; unsigned short err_right; }; struct corr_trig { octet seq; }; struct corr_distances { unsigned short t1; unsigned short t2; unsigned short t3; }; struct robot_pos { double x; double y; double phi; }; struct pwr_voltage { double voltage33; double voltage50; double voltage80; double voltageBAT; }; struct pwr_ctrl { boolean voltage33; boolean voltage50; boolean voltage80; }; struct pwr_alert { octet value; boolean bat_low; boolean bat_critical; boolean bat_bye; boolean low_33; boolean low_50; boolean low_80; }; struct robot_cmd { boolean start; boolean stop; }; struct can_msg { octet data[8]; octet len; octet id; }; struct hokuyo_scan { unsigned short data[34]; }; /** Request for hokuyo pitch (angle) */ struct hokuyo_pitch { /** Hokuyo angle (0..down, 255..up)*/ octet angle; }; /** Request for lift */ struct lift { /** Position in IRCs (0..fully in, >0 out) */ unsigned short pos; }; /** Request for pusher */ struct pusher { /** Position in IRCs (0..fully in, >0 out) */ unsigned short pos; }; /** Status of the distance measurement sensor */ struct puck_distance { /** Distance of the puck from the Sharp sensor in meters */ double distance; }; /** Status sent from actuators (lift and pusher) */ struct actuator_status { /** Position in IRCs (0..the lowest position, >0 position above the lowest position) */ unsigned short lift_pos; /** Position in IRCs (0..fully in, >0 out) */ unsigned short pusher_pos; /** Status bits - see actuators.h */ octet status; }; /** Request for chelae */ struct chelae { /** Position of left chela (0..closed, 255..open) */ octet left; /** Position of right chela (0..closed, 255..open) */ octet right; }; /** Request for chelae's belts */ struct belts { /** Speed of left chela belt (-127..full speed out, 0..stop, 127..full speed in) */ octet left; /** Speed of right chela belt (-127..full speed out, 0..stop, 127..full speed in) */ octet right; }; /** Request for holder */ struct holder { /** Position of the puck holder (0..closed, 255..fully open) */ octet pos; }; // FIXME: What's this??? M.S. struct binary_data { octet data; }; struct fsm_state { char state_name[21]; }; struct camera_control { boolean on; octet game_color; }; struct camera_result { octet lot; }; struct puck_inside { octet status; };