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>
impl<'a, P: Pin, A: Alarm<'a>, const NUM_DIGITS: usize> SevenSegmentDriver<'a, P, A, NUM_DIGITS>
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
sourcepub fn init(&self)
pub fn init(&self)
Initialize the digit and segment pins. Does not override pins if they have already been initialized for another driver.
sourcepub fn digits_len(&self) -> usize
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>
impl<'a, P: Pin, A: Alarm<'a>, const NUM_DIGITS: usize> AlarmClient for SevenSegmentDriver<'a, P, A, NUM_DIGITS>
source§impl<'a, P: Pin, A: Alarm<'a>, const NUM_DIGITS: usize> SyscallDriver for SevenSegmentDriver<'a, P, A, NUM_DIGITS>
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
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. ReturnsINVAL
if the position is not valid.2
: Clears all digits currently being displayed.3
: Print a dot at the requested digit position. ReturnsINVAL
if the position is not valid.4
: Print a custom pattern for a certain digit. ReturnsINVAL
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>
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)>
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 moreAuto 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>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more