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.
BleLink(BleLinkState)
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.