ros2_interfaces_rolling/sensor_msgs/msg/
battery_state.rs1use 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 {}