pub struct DisplaySettings {
pub columns: usize,
pub rows: usize,
pub encoding: TextEncoding,
pub code_table: Option<u8>,
pub reset_on_open: bool,
pub brightness: Option<RangeInclusive<u8>>,
pub brightness_settle: Duration,
}Expand description
Настройки геометрии и ESC/POS-команд дисплея.
columns и rows задают координатную сетку, используемую для проверки print_line
и print_at. code_table управляет только аппаратной командой ESC t n, а
encoding определяет программное преобразование текста в байты.
Fields§
§columns: usizeКоличество символов в строке.
Допустимый диапазон: 1..=255. Значение используется для обрезки, заполнения
пробелами и проверки координаты x.
rows: usizeКоличество строк.
Допустимый диапазон: 1..=255. Значение используется для проверки line и y
во всех методах печати.
encoding: TextEncodingКодировка текстовых байтов.
Это программное преобразование Rust-строки в байты транспорта. Оно не выбирает аппаратную таблицу дисплея.
code_table: Option<u8>Таблица символов для ESC t n; None отключает отправку команды.
Это отдельная аппаратная команда протокола. Для многих дисплеев CP866 работает
только когда одновременно выбраны encoding = TextEncoding::Cp866 и нужное
значение code_table.
reset_on_open: boolОтправлять ESC @ при открытии.
Сброс полезен для predictable startup, но его можно выключить, если приложение намеренно сохраняет состояние дисплея между открытиями.
brightness: Option<RangeInclusive<u8>>Поддерживаемый диапазон яркости для US X n.
None означает, что типизированная установка яркости запрещена и
crate::Vfd::set_brightness вернёт crate::VfdError::UnsupportedBrightness.
brightness_settle: DurationЗадержка после изменения яркости.
Некоторые дисплеи требуют короткую паузу после US X n. Sync API блокирует
текущий поток на это время; Tokio API ждёт через async sleep.
Implementations§
Source§impl DisplaySettings
impl DisplaySettings
Sourcepub fn new(columns: usize, rows: usize, encoding: TextEncoding) -> Self
pub fn new(columns: usize, rows: usize, encoding: TextEncoding) -> Self
Создаёт ручные настройки дисплея.
По умолчанию включён ESC @ при открытии, яркость 1..=4 и короткая задержка
после её изменения. Аппаратная таблица символов не выбирается автоматически:
задайте code_table = Some(n), если вашему дисплею нужна команда ESC t n.
§Ошибки
Метод сам не возвращает ошибку. Проверка выполняется в
DisplaySettings::validate или при создании VfdConfig.
§Примеры
use escpos_vfd::{DisplaySettings, TextEncoding};
let mut display = DisplaySettings::new(20, 2, TextEncoding::Cp866);
display.code_table = Some(6);
assert!(display.validate().is_ok());Sourcepub fn validate(&self) -> Result<(), ConfigError>
pub fn validate(&self) -> Result<(), ConfigError>
Проверяет геометрию и диапазоны настроек дисплея.
§Ошибки
Возвращает ConfigError::InvalidColumns, ConfigError::InvalidRows или
ConfigError::InvalidBrightnessRange.
Trait Implementations§
Source§impl Clone for DisplaySettings
impl Clone for DisplaySettings
Source§fn clone(&self) -> DisplaySettings
fn clone(&self) -> DisplaySettings
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more