Struct capsules_extra::seven_segment::SevenSegmentDriver

source ·
pub struct SevenSegmentDriver<'a, P: Pin, A: Alarm<'a>, const NUM_DIGITS: usize> { /* private fields */ }
Expand description

Holds an array of digits and an array of segments for each digit.

Implementations§

source§

impl<'a, P: Pin, A: Alarm<'a>, const NUM_DIGITS: usize> SevenSegmentDriver<'a, P, A, NUM_DIGITS>

source

pub fn new( segments: &'a [&'a P; 8], digits: &'a [&'a P; NUM_DIGITS], buffer: &'a mut [u8; NUM_DIGITS], alarm: &'a A, segment_activation: ActivationMode, digit_activation: ActivationMode, refresh_rate: usize, ) -> Self

source

pub fn init(&self)

Initialize the digit and segment pins. Does not override pins if they have already been initialized for another driver.

source

pub fn digits_len(&self) -> usize

Returns the number of digits on the display.

Trait Implementations§

source§

impl<'a, P: Pin, A: Alarm<'a>, const NUM_DIGITS: usize> AlarmClient for SevenSegmentDriver<'a, P, A, NUM_DIGITS>

source§

fn alarm(&self)

Callback indicating the alarm time has been reached. The alarm MUST be disabled when this is called. If a new alarm is needed, the client can call Alarm::set_alarm.
source§

impl<'a, P: Pin, A: Alarm<'a>, const NUM_DIGITS: usize> SyscallDriver for SevenSegmentDriver<'a, P, A, NUM_DIGITS>

source§

fn command( &self, command_num: usize, data1: usize, data2: usize, _: ProcessId, ) -> CommandReturn

Control the digit display.

§command_num
  • 0: Driver existence check.
  • 1: Prints one digit at the requested position. Returns INVAL if the position is not valid.
  • 2: Clears all digits currently being displayed.
  • 3: Print a dot at the requested digit position. Returns INVAL if the position is not valid.
  • 4: Print a custom pattern for a certain digit. Returns INVAL if the position is not valid.
  • 5: Returns the number of digits on the display. This will always be 0 or greater, and therefore also allows for checking for this driver.
source§

fn allocate_grant(&self, _processid: ProcessId) -> Result<(), Error>

Request to allocate a capsule’s grant for a specific process. Read more
source§

fn allow_userspace_readable( &self, app: ProcessId, which: usize, slice: ReadWriteProcessBuffer, ) -> Result<ReadWriteProcessBuffer, (ReadWriteProcessBuffer, ErrorCode)>

System call for a process to pass a buffer (a UserspaceReadableProcessBuffer) to the kernel that the kernel can either read or write. The kernel calls this method only after it checks that the entire buffer is within memory the process can both read and write. Read more

Auto Trait Implementations§

§

impl<'a, P, A, const NUM_DIGITS: usize> !Freeze for SevenSegmentDriver<'a, P, A, NUM_DIGITS>

§

impl<'a, P, A, const NUM_DIGITS: usize> !RefUnwindSafe for SevenSegmentDriver<'a, P, A, NUM_DIGITS>

§

impl<'a, P, A, const NUM_DIGITS: usize> Send for SevenSegmentDriver<'a, P, A, NUM_DIGITS>
where A: Sync, P: Sync,

§

impl<'a, P, A, const NUM_DIGITS: usize> !Sync for SevenSegmentDriver<'a, P, A, NUM_DIGITS>

§

impl<'a, P, A, const NUM_DIGITS: usize> Unpin for SevenSegmentDriver<'a, P, A, NUM_DIGITS>

§

impl<'a, P, A, const NUM_DIGITS: usize> !UnwindSafe for SevenSegmentDriver<'a, P, A, NUM_DIGITS>

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

§

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>,

§

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.