pub trait InterruptWithValue<'a>: Input {
// Required methods
fn set_client(&self, client: &'a dyn ClientWithValue);
fn enable_interrupts(&self, mode: InterruptEdge) -> Result<(), ErrorCode>;
fn disable_interrupts(&self);
fn is_pending(&self) -> bool;
fn set_value(&self, value: u32);
fn value(&self) -> u32;
}
Expand description
Interface that wraps an interrupt to pass a value when it triggers.
The standard use case for this trait is when several interrupts call the same callback function and it needs to distinguish which one is calling it by giving each one a unique value.
Required Methods§
Sourcefn set_client(&self, client: &'a dyn ClientWithValue)
fn set_client(&self, client: &'a dyn ClientWithValue)
Set the client for interrupt events.
Sourcefn enable_interrupts(&self, mode: InterruptEdge) -> Result<(), ErrorCode>
fn enable_interrupts(&self, mode: InterruptEdge) -> Result<(), ErrorCode>
Enable an interrupt on the GPIO pin. This does not configure the pin except to enable an interrupt: it should be separately configured as an input, etc. Returns: Ok(()) - the interrupt was set up properly FAIL - the interrupt was not set up properly; this is due to not having an underlying interrupt source yet, i.e. the struct is not yet fully initialized.
Sourcefn disable_interrupts(&self)
fn disable_interrupts(&self)
Disable interrupts for the GPIO pin.
Sourcefn is_pending(&self) -> bool
fn is_pending(&self) -> bool
Return whether this interrupt is pending