Skip to main content

VfdHandle

Struct VfdHandle 

Source
pub struct VfdHandle { /* private fields */ }
Expand description

Клонируемый потокобезопасный интерфейс отправки команд дисплею.

Каждый вызов ставит команду в bounded queue и ждёт подтверждения от worker. Если очередь заполнена, отправитель ждёт свободное место вместо бесконтрольного роста памяти. Клон handle можно передавать в другие потоки, но порядок команд гарантируется только порядком их фактического попадания в общую очередь.

Implementations§

Source§

impl VfdHandle

Source

pub fn clear(&self) -> Result<()>

Ставит в очередь очистку дисплея и ждёт выполнения I/O.

§Ошибки

Возвращает VfdError::QueueClosed, если worker уже остановлен, VfdError::WorkerStopped, если worker завершился до подтверждения, или ошибку команды, например VfdError::Io.

Source

pub fn set_brightness(&self, level: u8) -> Result<()>

Изменяет яркость и ждёт выполнения I/O.

Метод возвращается после записи US X n, flush и задержки brightness_settle внутри worker-потока.

§Ошибки

Возвращает VfdError::UnsupportedBrightness, ошибки очереди или I/O.

Source

pub fn print_line(&self, line: u8, text: impl Into<String>) -> Result<()>

Полностью перезаписывает строку.

Строка санитизируется, обрезается и дополняется пробелами до ширины дисплея.

§Ошибки

Возвращает VfdError::InvalidLine, ошибки очереди или I/O.

Source

pub fn print_line_diff(&self, line: u8, text: impl Into<String>) -> Result<()>

Обновляет только изменившиеся диапазоны строки.

Worker хранит кэш последнего содержимого каждой строки. Если строка уже содержит тот же текст, команда не пишет в устройство. Если изменилась часть строки, отправляются только минимальные смежные диапазоны через позиционирование.

Когда на той же строке активна бегущая строка, команда подтверждается без записи, чтобы не ломать текущую анимацию.

§Ошибки

Возвращает VfdError::InvalidLine, ошибки очереди или I/O.

Source

pub fn print_at(&self, x: u8, y: u8, text: impl Into<String>) -> Result<()>

Печатает текст с координаты (x, y).

Координаты задаются от единицы. Worker обновляет кэш строки, поэтому следующие VfdHandle::print_line_diff учитывают частичную запись.

§Ошибки

Возвращает VfdError::InvalidCoordinate, ошибки очереди или I/O.

Source

pub fn write_raw(&self, bytes: impl Into<Vec<u8>>) -> Result<()>

Записывает байты напрямую.

Байты не кодируются и не отражаются в строковом кэше worker. После raw-команд, которые меняют видимый текст, лучше выполнить обычный print_line или clear, чтобы синхронизировать кэш с дисплеем. Одна queued-команда ограничена MAX_QUEUED_RAW_BYTES байтами.

§Ошибки

Возвращает ошибки очереди или VfdError::Io.

Source

pub fn set_marquee_text(&self, text: impl Into<String>) -> Result<()>

Заменяет текст бегущей строки.

Если marquee уже активна, поток символов перестраивается сразу. Метод сам ничего не пишет в дисплей; следующий кадр будет записан по таймеру worker. Длина текста ограничена MAX_MARQUEE_CHARS символами.

§Ошибки

Возвращает ошибки очереди, если worker закрыт или остановлен.

Source

pub fn start_marquee( &self, line: u8, cps: u32, end_pause: Duration, ) -> Result<()>

Запускает бегущую строку на выбранной линии.

cps - скорость в символах в секунду. Значение 0 безопасно приводится к 1, значения выше MAX_MARQUEE_CPS отклоняются. end_pause - пауза после полного прохода текста перед следующим циклом.

§Ошибки

Возвращает VfdError::InvalidLine, если строка вне дисплея, или ошибки очереди.

Source

pub fn stop_marquee(&self) -> Result<()>

Останавливает активную бегущую строку.

Метод останавливает таймер marquee и сбрасывает кэш строки, на которой она была активна. Видимый текст не очищается автоматически.

§Ошибки

Возвращает ошибки очереди, если worker закрыт или остановлен.

Source

pub fn shutdown(&self) -> Result<()>

Завершает worker после ранее принятых команд.

Handle-метод только отправляет команду shutdown и ждёт подтверждения. Чтобы дождаться завершения потока и вернуть внутренний crate::Vfd, используйте VfdWorker::shutdown.

§Ошибки

Возвращает ошибки очереди, если worker уже недоступен.

Trait Implementations§

Source§

impl Clone for VfdHandle

Source§

fn clone(&self) -> VfdHandle

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

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

Performs copy-assignment from source. Read more

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