pub struct OtaUpdater<'a, F>where
F: Storage,{ /* private fields */ }Expand description
This can be used as more convenient - yet less flexible, way to do OTA updates.
If you need lower level access see crate::ota::Ota
Implementations§
Source§impl<'a, F> OtaUpdater<'a, F>where
F: Storage,
impl<'a, F> OtaUpdater<'a, F>where
F: Storage,
Sourcepub fn new(flash: &'a mut F, buffer: &'a mut [u8; 3072]) -> Result<Self, Error>
pub fn new(flash: &'a mut F, buffer: &'a mut [u8; 3072]) -> Result<Self, Error>
Create a new instance of OtaUpdater.
§Errors
Error::Invalid if no OTA data partition or less than two OTA app partition were found.
Sourcepub fn selected_partition(&mut self) -> Result<AppPartitionSubType, Error>
pub fn selected_partition(&mut self) -> Result<AppPartitionSubType, Error>
Returns the currently selected app partition.
Sourcepub fn current_ota_state(&mut self) -> Result<OtaImageState, Error>
pub fn current_ota_state(&mut self) -> Result<OtaImageState, Error>
Get the OtaImageState of the currently selected partition.
§Errors
A Error::InvalidState if no partition is currently selected.
Sourcepub fn set_current_ota_state(
&mut self,
state: OtaImageState,
) -> Result<(), Error>
pub fn set_current_ota_state( &mut self, state: OtaImageState, ) -> Result<(), Error>
Set the OtaImageState of the currently selected slot.
§Errors
A Error::InvalidState if no partition is currently selected.
Sourcepub fn activate_next_partition(&mut self) -> Result<(), Error>
pub fn activate_next_partition(&mut self) -> Result<(), Error>
Selects the next active OTA-slot as current.
After calling this other functions referencing the current partition will use the newly activated partition.
Passing AppPartitionSubType::Factory will reset the OTA-data
Sourcepub fn with_next_partition<R>(
&mut self,
f: impl FnOnce(FlashRegion<'_, F>, AppPartitionSubType) -> R,
) -> Result<R, Error>
pub fn with_next_partition<R>( &mut self, f: impl FnOnce(FlashRegion<'_, F>, AppPartitionSubType) -> R, ) -> Result<R, Error>
Executes the given closure with the partition which would be selected by Self::activate_next_partition.
FlashRegion and the AppPartitionSubType is passed into the closure.