Struct canadensis_data_types::reg::udral::service::battery::status_0_2::Status
source · pub struct Status {
pub heartbeat: Heartbeat,
pub temperature_min_max: [Scalar; 2],
pub available_charge: Scalar,
pub error: Error,
pub cell_voltages: Vec<f16, 255>,
}
Expand description
reg.udral.service.battery.Status.0.2
Size ranges from 16 to 526 bytes
This low-rate battery status should be published at least once per second.
Fields§
§heartbeat: Heartbeat
Note that the health code generally should not reflect the battery charge unless the service provider knows that the availability of energy in the battery is critical for the safe operation of the vehicle, which is usually not the case. For example, if the vehicle is equipped with several batteries that are discharged in series, one after another, the depletion of energy in the first battery is not a fault condition and it should not be reported as such. This follows from the good service design principles reviewed in https://opencyphal.org/guide.
The readiness state depicts the ability of the battery (or its power electronics) to deliver full rated power and whether the overdischarge protections are active. When the battery is not ENGAGED, it may limit the output power below the nominal rated value and disconnect the load should the charge level fall below the critical level. When the battery is ENGAGED, it is not permitted to limit the output power or energy regardless of the risk of damage. If the adaptive protection is not supported, the battery should always report its status as ENGAGED.
reg.udral.service.common.Heartbeat.0.1
Always aligned, size 16 bits
temperature_min_max: [Scalar; 2]
The minimum and maximum readings of the pack temperature sensors. For example, if the pack is equipped with three distributed temperature sensors that read {288, 258.15, 360.5} K, the reported array value would be {258.15, 360.5} K. If there is only one temperature sensor, both elements shall be of the same value.
uavcan.si.unit.temperature.Scalar.1.0[2]
Always aligned, size 64 bits
available_charge: Scalar
The estimated electric charge currently stored in the battery. This is intended for charging and maintenance only. Do not use this parameter for endurance prediction! Instead, use the correct energy type from the physics namespace. The depth of discharge (DoD), or the state of charge (SoC), can be derived by dividing this value by the nominal battery capacity reported in the Parameters message.
uavcan.si.unit.electric_charge.Scalar.1.0
Always aligned, size 32 bits
error: Error
reg.udral.service.battery.Error.0.1
Always aligned, size 8 bits
cell_voltages: Vec<f16, 255>
[volt] The voltages of individual cells in the battery pack.
saturated float16[<=255]
Always aligned, size ranges from 0 to 4080 bits
Implementations§
Trait Implementations§
source§impl DataType for Status
impl DataType for Status
source§const EXTENT_BYTES: Option<u32> = _
const EXTENT_BYTES: Option<u32> = _
This type is delimited with an extent of 600 bytes.
source§impl Deserialize for Status
impl Deserialize for Status
source§fn deserialize(cursor: &mut ReadCursor<'_>) -> Result<Self, DeserializeError>where
Self: Sized,
fn deserialize(cursor: &mut ReadCursor<'_>) -> Result<Self, DeserializeError>where Self: Sized,
source§fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, DeserializeError>where
Self: Sized,
fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, DeserializeError>where Self: Sized,
deserialize
source§impl Serialize for Status
impl Serialize for Status
source§fn size_bits(&self) -> usize
fn size_bits(&self) -> usize
source§fn serialize(&self, cursor: &mut WriteCursor<'_>)
fn serialize(&self, cursor: &mut WriteCursor<'_>)
source§fn serialize_to_bytes(&self, bytes: &mut [u8])
fn serialize_to_bytes(&self, bytes: &mut [u8])
serialize