ros2_interfaces_rolling/kobuki_ros_interfaces/msg/
sensor_state.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
4pub struct SensorState {
5 pub header: crate::std_msgs::msg::Header,
6 pub time_stamp: u16,
7 pub bumper: u8,
8 pub wheel_drop: u8,
9 pub cliff: u8,
10 pub left_encoder: u16,
11 pub right_encoder: u16,
12 pub left_pwm: i8,
13 pub right_pwm: i8,
14 pub buttons: u8,
15 pub charger: u8,
16 pub battery: u8,
17 pub bottom: Vec<u16>,
18 pub current: Vec<u8>,
19 pub over_current: u8,
20 pub digital_input: u16,
21 pub analog_input: Vec<u16>,
22}
23
24impl SensorState {
25 pub const BUMPER_RIGHT: u8 = 1;
26 pub const BUMPER_CENTRE: u8 = 2;
27 pub const BUMPER_LEFT: u8 = 4;
28 pub const WHEEL_DROP_RIGHT: u8 = 1;
29 pub const WHEEL_DROP_LEFT: u8 = 2;
30 pub const CLIFF_RIGHT: u8 = 1;
31 pub const CLIFF_CENTRE: u8 = 2;
32 pub const CLIFF_LEFT: u8 = 4;
33 pub const BUTTON0: u8 = 1;
34 pub const BUTTON1: u8 = 2;
35 pub const BUTTON2: u8 = 4;
36 pub const DISCHARGING: u8 = 0;
37 pub const DOCKING_CHARGED: u8 = 2;
38 pub const DOCKING_CHARGING: u8 = 6;
39 pub const ADAPTER_CHARGED: u8 = 18;
40 pub const ADAPTER_CHARGING: u8 = 22;
41 pub const OVER_CURRENT_LEFT_WHEEL: u8 = 1;
42 pub const OVER_CURRENT_RIGHT_WHEEL: u8 = 2;
43 pub const OVER_CURRENT_BOTH_WHEELS: u8 = 3;
44 pub const DIGITAL_INPUT0: u8 = 1;
45 pub const DIGITAL_INPUT1: u8 = 2;
46 pub const DIGITAL_INPUT2: u8 = 4;
47 pub const DIGITAL_INPUT3: u8 = 8;
48 pub const DB25_TEST_BOARD_CONNECTED: u8 = 64;
49}
50
51impl Default for SensorState {
52 fn default() -> Self {
53 SensorState {
54 header: crate::std_msgs::msg::Header::default(),
55 time_stamp: 0,
56 bumper: 0,
57 wheel_drop: 0,
58 cliff: 0,
59 left_encoder: 0,
60 right_encoder: 0,
61 left_pwm: 0,
62 right_pwm: 0,
63 buttons: 0,
64 charger: 0,
65 battery: 0,
66 bottom: Vec::new(),
67 current: Vec::new(),
68 over_current: 0,
69 digital_input: 0,
70 analog_input: Vec::new(),
71 }
72 }
73}
74
75impl ros2_client::Message for SensorState {}