Skip to main content

WakeupSource

Enum WakeupSource 

Source
pub enum WakeupSource {
    Ext0 = 0,
    Ext1 = 1,
    Gpio = 2,
    Timer = 3,
    Wifi = 5,
    Uart0 = 6,
    Uart1 = 7,
    Touch = 8,
    UlpRiscv = 11,
    UlpRiscvTrap = 13,
}
Expand description

A source that can wake the chip from sleep.

Each variant models a single bit in the wakeup registers. Internal representation shared by [WakeTriggers][crate::rtc_cntl::sleep::WakeTriggers] (the sources configured to end a sleep) and WakeupReason (the source(s) that caused the most recent wakeup, see wakeup_cause)

The available variants depend on the target chip.

Variants§

§

Ext0 = 0

EXT0 wakeup

§

Ext1 = 1

EXT1 wakeup, via one or more RTC GPIOs (RTC_CNTL).

§

Gpio = 2

GPIO wakeup.

§

Timer = 3

Timer wakeup.

§

Wifi = 5

Wi-Fi (MAC) wakeup.

§

Uart0 = 6

UART0 wakeup.

§

Uart1 = 7

UART1 wakeup.

§

Touch = 8

Touch sensor wakeup.

§

UlpRiscv = 11

ULP RISC-V coprocessor wakeup.

§

UlpRiscvTrap = 13

ULP RISC-V coprocessor trap (crash) wakeup.

Implementations§

Source§

impl WakeupSource

Source

pub fn enable_with_hooks( self, entry: Option<SleepEntryHook>, exit: Option<SleepExitHook>, )

Available on crate feature unstable only.

Enables this source and registers the hooks that run around a sleep.

A source has one slot for each kind of hook, so a second call replaces the hooks of the first call. One driver owns each source, so only that driver can replace its own hooks. A call for a source that is already enabled does this.

Both hooks run with the flash accessible, so they need no ram attribute. The entry hook runs before esp-hal writes the sleep configuration to hardware, and the exit hook runs after the wake sequence restores it. Both hooks are part of sleep entry, so keep them short.

Only the driver that owns the source calls this. esp-hal owns the sources of its own drivers, for example the timer source. A call for such a source replaces the hooks of that driver, and the driver then does not work through a sleep.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Source

pub fn disable(self)

Available on crate feature unstable only.

Disables this source, and removes its hooks.

Only the driver that owns the source calls this, as for Self::enable_with_hooks.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Trait Implementations§

Source§

impl<O: Into<EnumSet<WakeupSource>>> BitAnd<O> for WakeupSource

Available on crate feature unstable only.
Source§

type Output = EnumSet<WakeupSource>

The resulting type after applying the & operator.
Source§

fn bitand(self, other: O) -> EnumSet<WakeupSource>

Performs the & operation. Read more
Source§

impl<O: Into<EnumSet<WakeupSource>>> BitOr<O> for WakeupSource

Available on crate feature unstable only.
Source§

type Output = EnumSet<WakeupSource>

The resulting type after applying the | operator.
Source§

fn bitor(self, other: O) -> EnumSet<WakeupSource>

Performs the | operation. Read more
Source§

impl<O: Into<EnumSet<WakeupSource>>> BitXor<O> for WakeupSource

Available on crate feature unstable only.
Source§

type Output = EnumSet<WakeupSource>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, other: O) -> EnumSet<WakeupSource>

Performs the ^ operation. Read more
Source§

impl Clone for WakeupSource

Available on crate feature unstable only.
Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable)§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for WakeupSource

Available on crate feature unstable only.
Source§

impl Debug for WakeupSource

Available on crate feature unstable only.
Source§

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

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

impl EnumSetConstHelper for WakeupSource

Available on crate feature unstable only.
Source§

const CONST_INIT_HELPER: __EnumSetInitHelper = __EnumSetInitHelper

The instance of the ConstInitHelper.
Source§

const CONST_OP_HELPER: __EnumSetOpHelper = __EnumSetOpHelper

The instance of the ConstOpHelper.
Source§

type ConstInitHelper = __EnumSetInitHelper

A helper type used to convert values to EnumSets at compile-time.
Source§

type ConstOpHelper = __EnumSetOpHelper

A helper type used to implement compile-time operations on enums.
Source§

impl EnumSetType for WakeupSource

Available on crate feature unstable only.
Source§

impl EnumSetTypePrivate for WakeupSource

Available on crate feature unstable only.
Source§

const ALL_BITS: <Self as EnumSetTypePrivate>::Repr = 10735

A mask of bits that are valid in the bitset.
Source§

const BIT_WIDTH: u32 = 14u32

The largest bit used in the bitset.
Source§

const VARIANT_COUNT: u32 = 10u32

The number of variants in the bitset.
Source§

type Repr = u16

The underlying type used to store the bitset.
Source§

fn enum_into_u32(self) -> u32

Converts an enum of this type into its bit position.
Source§

unsafe fn enum_from_u32(val: u32) -> Self

Converts a bit position into an enum value.
Source§

unsafe fn enum_from_u32_checked(val: u32) -> Self

Converts a bit position into an enum value, with a debug_assert.
Source§

impl Eq for WakeupSource

Available on crate feature unstable only.
Source§

impl Not for WakeupSource

Available on crate feature unstable only.
Source§

type Output = EnumSet<WakeupSource>

The resulting type after applying the ! operator.
Source§

fn not(self) -> EnumSet<WakeupSource>

Performs the unary ! operation. Read more
Source§

impl PartialEq for WakeupSource

Available on crate feature unstable only.
Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable)§

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

Inequality operator !=. Read more
Source§

impl PartialEq<EnumSet<WakeupSource>> for WakeupSource

Available on crate feature unstable only.
Source§

fn eq(&self, other: &EnumSet<WakeupSource>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable)§

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

Inequality operator !=. Read more
Source§

impl<O: Into<EnumSet<WakeupSource>>> Sub<O> for WakeupSource

Available on crate feature unstable only.
Source§

type Output = EnumSet<WakeupSource>

The resulting type after applying the - operator.
Source§

fn sub(self, other: O) -> EnumSet<WakeupSource>

Performs the - operation. Read more

Auto Trait Implementations§

§

impl Freeze for WakeupSource

§

impl RefUnwindSafe for WakeupSource

§

impl Send for WakeupSource

§

impl Sync for WakeupSource

§

impl Unpin for WakeupSource

§

impl UnsafeUnpin for WakeupSource

§

impl UnwindSafe for WakeupSource

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> CloneToUninit for T
where T: Clone,

§

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
§

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.