SecureCommandOp

Enum SecureCommandOp 

Source
#[repr(u8)]
pub enum SecureCommandOp { SecureCommandGetSessionKey = 0, SecureCommandGetRemoteidSessionKey = 1, SecureCommandRemovePublicKeys = 2, SecureCommandGetPublicKeys = 3, SecureCommandSetPublicKeys = 4, SecureCommandGetRemoteidConfig = 5, SecureCommandSetRemoteidConfig = 6, SecureCommandFlashBootloader = 7, }
Expand description

MAVLink enum SECURE_COMMAND_OP for ardupilotmega dialect.

Variants§

§

SecureCommandGetSessionKey = 0

MAVLink enum entry SECURE_COMMAND_GET_SESSION_KEY.

Get an 8 byte session key which is used for remote secure updates which operate on flight controller data such as bootloader public keys. Return data will be 8 bytes on success. The session key remains valid until either the flight controller reboots or another SECURE_COMMAND_GET_SESSION_KEY is run.

§

SecureCommandGetRemoteidSessionKey = 1

MAVLink enum entry SECURE_COMMAND_GET_REMOTEID_SESSION_KEY.

Get an 8 byte session key which is used for remote secure updates which operate on RemoteID module data. Return data will be 8 bytes on success. The session key remains valid until either the remote ID module reboots or another SECURE_COMMAND_GET_REMOTEID_SESSION_KEY is run.

§

SecureCommandRemovePublicKeys = 2

MAVLink enum entry SECURE_COMMAND_REMOVE_PUBLIC_KEYS.

Remove range of public keys from the bootloader. Command data consists of two bytes, first byte if index of first public key to remove. Second byte is the number of keys to remove. If all keys are removed then secure boot is disabled and insecure firmware can be loaded.

§

SecureCommandGetPublicKeys = 3

MAVLink enum entry SECURE_COMMAND_GET_PUBLIC_KEYS.

Get current public keys from the bootloader. Command data consists of two bytes, first byte is index of first public key to fetch, 2nd byte is number of keys to fetch. Total data needs to fit in data portion of reply (max 6 keys for 32 byte keys). Reply data has the index of the first key in the first byte, followed by the keys. Returned keys may be less than the number of keys requested if there are less keys installed than requested.

§

SecureCommandSetPublicKeys = 4

MAVLink enum entry SECURE_COMMAND_SET_PUBLIC_KEYS.

Set current public keys in the bootloader. Data consists of a one byte public key index followed by the public keys. With 32 byte keys this allows for up to 6 keys to be set in one request. Keys outside of the range that is being set will remain unchanged.

§

SecureCommandGetRemoteidConfig = 5

MAVLink enum entry SECURE_COMMAND_GET_REMOTEID_CONFIG.

Get config data for remote ID module. This command should be sent to the component ID of the flight controller which will forward it to the RemoteID module either over mavlink or DroneCAN. Data format is specific to the RemoteID implementation, see RemoteID firmware documentation for details.

§

SecureCommandSetRemoteidConfig = 6

MAVLink enum entry SECURE_COMMAND_SET_REMOTEID_CONFIG.

Set config data for remote ID module. This command should be sent to the component ID of the flight controller which will forward it to the RemoteID module either over mavlink or DroneCAN. Data format is specific to the RemoteID implementation, see RemoteID firmware documentation for details.

§

SecureCommandFlashBootloader = 7

MAVLink enum entry SECURE_COMMAND_FLASH_BOOTLOADER.

Flash bootloader from local storage. Data is the filename to use for the bootloader. This is intended to be used with MAVFtp to upload a new bootloader to a microSD before flashing.

Implementations§

Source§

impl SecureCommandOp

Source

pub fn name() -> &'static str

Returns a canonical MAVLink name

Source

pub fn entries() -> impl Iterator<Item = SecureCommandOp>

Iterator over all entries within this enum.

Requires metadata feature flag to be enabled.

Source

pub fn value(&self) -> u8

Returns value of this enum variant.

Requires metadata feature flag to be enabled.

Trait Implementations§

Source§

impl Clone for SecureCommandOp

Source§

fn clone(&self) -> SecureCommandOp

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SecureCommandOp

Source§

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

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

impl Default for SecureCommandOp

Source§

fn default() -> SecureCommandOp

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for SecureCommandOp

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<SecureCommandOp, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl NamedType for SecureCommandOp

Source§

fn sid() -> SpectaID

Source§

fn named_data_type( type_map: &mut TypeCollection, generics: &[DataType], ) -> NamedDataType

this is equivalent to Type::inline but returns a NamedDataType instead.
Source§

fn definition_named_data_type(type_map: &mut TypeCollection) -> NamedDataType

this is equivalent to [Type::definition] but returns a NamedDataType instead.
Source§

impl PartialEq for SecureCommandOp

Source§

fn eq(&self, other: &SecureCommandOp) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for SecureCommandOp

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl TryFrom<u8> for SecureCommandOp

Source§

type Error = SpecError

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

fn try_from(value: u8) -> Result<SecureCommandOp, SpecError>

Performs the conversion.
Source§

impl Type for SecureCommandOp

Source§

fn inline(type_map: &mut TypeCollection, generics: Generics<'_>) -> DataType

Returns the definition of a type using the provided generics. Read more
Source§

fn reference(type_map: &mut TypeCollection, generics: &[DataType]) -> Reference

Generates a datatype corresponding to a reference to this type, as determined by its category. Getting a reference to a type implies that it should belong in the type map (since it has to be referenced from somewhere), so the output of definition will be put into the type map.
Source§

impl Copy for SecureCommandOp

Source§

impl StructuralPartialEq for SecureCommandOp

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,