PublishEvent

Enum PublishEvent 

Source
pub enum PublishEvent {
    Battery(BatteryStatus),
    Time(Option<u32>),
    Gnss(u32, GnssSnapshot),
    IdentityFix(Vec<u8, { umsh_ulcp::gnss::MAX_LOCATION_LEN }>, Option<i32>),
    BleBondCount(u8),
    BleLink(BleLinkState),
    BlePairing(bool),
}
Expand description

A device-initiated property publication, yielded by DeviceEnv::publish_event.

The driver has exactly one select arm for everything the board pushes unasked, because a hook per property would need one &mut self borrow per arm and no two of those can coexist. One arm, one enum, and the board decides internally which of its sources woke it.

Variants§

§

Battery(BatteryStatus)

An unsolicited PROP_BATTERY.

§

Time(Option<u32>)

An unsolicited PROP_TIME; None is a clock that has gone back to not knowing what time it is.

§

Gnss(u32, GnssSnapshot)

An unsolicited positioning property, named by its key, encoded from the accompanying snapshot.

§

IdentityFix(Vec<u8, { umsh_ulcp::gnss::MAX_LOCATION_LEN }>, Option<i32>)

A fix offered to the advertised identity, in the variable-precision encoding. Not a publication at all — it is an input the session may act on — but it arrives on the same arm because it comes from the same receiver.

§

BleBondCount(u8)

How many bonds the Bluetooth transport now holds. Pairing and forgetting both happen below the session, so this is the only way PROP_BLE_BOND_COUNT learns it moved.

How far the Bluetooth transport has got with whoever is on the other end of it. Connecting and walking away both happen below the session, so this is the only way PROP_BLE_LINK learns it moved.

§

BlePairing(bool)

Whether a pairing window is open. The window closes on its own — a new bond, a timeout — and opens from the device’s own menu and boot gesture too, so PROP_BLE_PAIRING moves without the host asking more often than because it asked.

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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> Same for T

Source§

type Output = T

Should always be Self
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V