ros2_interfaces_rolling/sensor_msgs/msg/
battery_state.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
4pub struct BatteryState {
5    pub header: crate::std_msgs::msg::Header,
6    pub voltage: f32,
7    pub temperature: f32,
8    pub current: f32,
9    pub charge: f32,
10    pub capacity: f32,
11    pub design_capacity: f32,
12    pub percentage: f32,
13    pub power_supply_status: u8,
14    pub power_supply_health: u8,
15    pub power_supply_technology: u8,
16    pub present: bool,
17    pub cell_voltage: Vec<f32>,
18    pub cell_temperature: Vec<f32>,
19    pub location: ::std::string::String,
20    pub serial_number: ::std::string::String,
21}
22
23impl BatteryState {
24    pub const POWER_SUPPLY_STATUS_UNKNOWN: u8 = 0;
25    pub const POWER_SUPPLY_STATUS_CHARGING: u8 = 1;
26    pub const POWER_SUPPLY_STATUS_DISCHARGING: u8 = 2;
27    pub const POWER_SUPPLY_STATUS_NOT_CHARGING: u8 = 3;
28    pub const POWER_SUPPLY_STATUS_FULL: u8 = 4;
29    pub const POWER_SUPPLY_HEALTH_UNKNOWN: u8 = 0;
30    pub const POWER_SUPPLY_HEALTH_GOOD: u8 = 1;
31    pub const POWER_SUPPLY_HEALTH_OVERHEAT: u8 = 2;
32    pub const POWER_SUPPLY_HEALTH_DEAD: u8 = 3;
33    pub const POWER_SUPPLY_HEALTH_OVERVOLTAGE: u8 = 4;
34    pub const POWER_SUPPLY_HEALTH_UNSPEC_FAILURE: u8 = 5;
35    pub const POWER_SUPPLY_HEALTH_COLD: u8 = 6;
36    pub const POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE: u8 = 7;
37    pub const POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE: u8 = 8;
38    pub const POWER_SUPPLY_TECHNOLOGY_UNKNOWN: u8 = 0;
39    pub const POWER_SUPPLY_TECHNOLOGY_NIMH: u8 = 1;
40    pub const POWER_SUPPLY_TECHNOLOGY_LION: u8 = 2;
41    pub const POWER_SUPPLY_TECHNOLOGY_LIPO: u8 = 3;
42    pub const POWER_SUPPLY_TECHNOLOGY_LIFE: u8 = 4;
43    pub const POWER_SUPPLY_TECHNOLOGY_NICD: u8 = 5;
44    pub const POWER_SUPPLY_TECHNOLOGY_LIMN: u8 = 6;
45    pub const POWER_SUPPLY_TECHNOLOGY_TERNARY: u8 = 7;
46    pub const POWER_SUPPLY_TECHNOLOGY_VRLA: u8 = 8;
47}
48
49impl Default for BatteryState {
50    fn default() -> Self {
51        BatteryState {
52            header: crate::std_msgs::msg::Header::default(),
53            voltage: 0.0,
54            temperature: 0.0,
55            current: 0.0,
56            charge: 0.0,
57            capacity: 0.0,
58            design_capacity: 0.0,
59            percentage: 0.0,
60            power_supply_status: 0,
61            power_supply_health: 0,
62            power_supply_technology: 0,
63            present: false,
64            cell_voltage: Vec::new(),
65            cell_temperature: Vec::new(),
66            location: ::std::string::String::new(),
67            serial_number: ::std::string::String::new(),
68        }
69    }
70}
71
72impl ros2_client::Message for BatteryState {}