#[repr(C, packed)]
pub struct Source { pub power: Power, pub energy: Scalar, pub full_energy: Scalar, }
Expand description

reg.udral.physics.electricity.Source.0.1

Fixed size 16 bytes

A generic source or sink of electric power (battery, turbogenerator, braking resistor, etc.). Low-pass filtering should be applied to avoid aliasing effects (as is the case everywhere else).

Fields§

§power: Power

Total instant load power. Positive current flows into the source (power sinking). Negative current flows from the source to the power supply network (power sourcing).

reg.udral.physics.electricity.Power.0.1

Always aligned, size 64 bits

§energy: Scalar

A pessimistic estimate of the amount of energy that can be reclaimed from the source in its current state. This may be dependent on the state of charge/health (for batteries), temperature, load profile, humidity, etc. Negative values may be reported to indicate overdischarge or depletion of the reserve energy.

This value approximates (full_energy + int(load_power dt)) plus the environmental influences on the source.

Having the instant power, the time to depletion is estimated as (energy/-power). When charging (for batteries), the remaining time to full charge can be found similarly as ((full_energy-energy)/power).

For the sake of illustration, if this type was used to represent the state of a braking resistor, then this value would be negative indicating the amount of dissipated energy.

uavcan.si.unit.energy.Scalar.1.0

Always aligned, size 32 bits

§full_energy: Scalar

A pessimistic estimate of the amount of energy that can be reclaimed from a fresh source (fully fueled generator or a fully charged battery) under the current conditions (SoH, temperature, load profile, etc).

uavcan.si.unit.energy.Scalar.1.0

Always aligned, size 32 bits

Trait Implementations§

source§

impl AsBytes for Sourcewhere Power: AsBytes, Scalar: AsBytes,

source§

fn as_bytes(&self) -> &[u8]

Gets the bytes of this value. Read more
source§

fn as_bytes_mut(&mut self) -> &mut [u8]where Self: FromBytes,

Gets the bytes of this value mutably. Read more
source§

fn write_to<B>(&self, bytes: B) -> Option<()>where B: ByteSliceMut,

Writes a copy of self to bytes. Read more
source§

fn write_to_prefix<B>(&self, bytes: B) -> Option<()>where B: ByteSliceMut,

Writes a copy of self to the prefix of bytes. Read more
source§

fn write_to_suffix<B>(&self, bytes: B) -> Option<()>where B: ByteSliceMut,

Writes a copy of self to the suffix of bytes. Read more
source§

impl DataType for Source

source§

const EXTENT_BYTES: Option<u32> = None

This type is sealed.

source§

impl Deserialize for Source

source§

fn deserialize(cursor: &mut ReadCursor<'_>) -> Result<Self, DeserializeError>where Self: Sized,

Deserializes a value and returns it
source§

fn deserialize_zero_copy(cursor: &mut ReadCursor<'_>) -> Selfwhere Self: Sized + AsBytes + FromBytes,

Deserializes a value from a slice of bytes and returns it Read more
source§

fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, DeserializeError>where Self: Sized,

A convenience function that creates a cursor around the provided bytes and calls deserialize
source§

impl FromBytes for Sourcewhere Power: FromBytes, Scalar: FromBytes,

source§

fn read_from<B>(bytes: B) -> Option<Self>where B: ByteSlice, Self: Sized,

Reads a copy of Self from bytes. Read more
source§

fn read_from_prefix<B>(bytes: B) -> Option<Self>where B: ByteSlice, Self: Sized,

Reads a copy of Self from the prefix of bytes. Read more
source§

fn read_from_suffix<B>(bytes: B) -> Option<Self>where B: ByteSlice, Self: Sized,

Reads a copy of Self from the suffix of bytes. Read more
source§

fn new_zeroed() -> Selfwhere Self: Sized,

Creates an instance of Self from zeroed bytes.
source§

impl Serialize for Source

source§

fn size_bits(&self) -> usize

Returns the size of the encoded form of this value, in bits Read more
source§

fn serialize(&self, cursor: &mut WriteCursor<'_>)

Serializes this value into a buffer Read more
source§

fn serialize_to_bytes(&self, bytes: &mut [u8])

A convenience function that creates a cursor around the provided bytes and calls serialize
source§

impl Message for Source

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.