Struct Ota

Source
pub struct Ota<'a, F>
where F: Storage,
{ /* private fields */ }
Expand description

This is used to manipulate the OTA-data partition.

If you are looking for a more high-level way to do this, see crate::ota_updater::OtaUpdater

Implementations§

Source§

impl<'a, F> Ota<'a, F>
where F: Storage,

Source

pub fn new( flash: &'a mut FlashRegion<'a, F>, ota_partition_count: usize, ) -> Result<Ota<'a, F>, Error>

Create a Ota instance from the given FlashRegion and the count of OTA app partitions (not including “firmware” and “test” partitions)

§Errors

A Error::InvalidPartition if the given flash region doesn’t represent a Data/Ota partition or the size is unexpected.

Error::InvalidArgument if the ota_partition_count exceeds the maximum or if it’s 0.

Source

pub fn current_app_partition(&mut self) -> Result<AppPartitionSubType, Error>

Returns the currently selected app partition.

This might not be the booted partition if the bootloader failed to boot the partition and felt back to the last known working app partition.

See crate::partitions::PartitionTable::booted_partition to get the booted partition.

Source

pub fn set_current_app_partition( &mut self, app: AppPartitionSubType, ) -> Result<(), Error>

Sets the currently active OTA-slot.

Passing AppPartitionSubType::Factory will reset the OTA-data.

§Errors

Error::InvalidArgument if AppPartitionSubType::Test is given or if the OTA app partition number exceeds the value given to the constructor.

Source

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.

Source

pub fn current_ota_state(&mut self) -> Result<OtaImageState, Error>

Get the OtaImageState of the currently selected slot.

§Errors

A Error::InvalidState if no partition is currently selected.

Trait Implementations§

Source§

impl<'a, F> Debug for Ota<'a, F>
where F: Storage + Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, F> Format for Ota<'a, F>
where F: Storage, &'a mut FlashRegion<'a, F>: Format,

Source§

fn format(&self, f: Formatter<'_>)

Writes the defmt representation of self to fmt.

Auto Trait Implementations§

§

impl<'a, F> Freeze for Ota<'a, F>

§

impl<'a, F> RefUnwindSafe for Ota<'a, F>
where F: RefUnwindSafe,

§

impl<'a, F> Send for Ota<'a, F>
where F: Send,

§

impl<'a, F> Sync for Ota<'a, F>
where F: Sync,

§

impl<'a, F> Unpin for Ota<'a, F>

§

impl<'a, F> !UnwindSafe for Ota<'a, F>

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.

§

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.