Expand description
ESC/POS-совместимая библиотека управления VFD-дисплеями покупателя.
Библиотека отделяет настройки serial-порта от геометрии и протокола дисплея:
используйте готовый Preset для уже проверенного 20x2 CP866 устройства или
соберите VfdConfig вручную через SerialSettings и DisplaySettings.
Sync API представлен низкоуровневым Vfd и фоновым VfdWorker.
Низкоуровневый драйвер пишет в транспорт сразу в вызывающем потоке, а worker
владеет транспортом в отдельном потоке и подтверждает команды после выполнения
записи. С feature tokio доступен модуль tokio с настоящим AsyncWrite,
bounded queue и async-подтверждениями после фактической записи в транспорт.
Все публичные координаты задаются от единицы: первая колонка - x = 1, первая
строка - line = 1 или y = 1. Размеры дисплея валидируются в диапазоне
1..=255, потому что ESC/POS-команды позиционирования передают координаты одним
байтом. Ошибки не скрываются: конфигурация, координаты, яркость, serial I/O и
состояние worker возвращаются разными вариантами VfdError.
Основной путь для старого 20x2 CP866 дисплея:
use escpos_vfd::{Preset, Vfd, VfdConfig};
let cfg = VfdConfig::preset("/dev/cu.usbmodem101", Preset::Epson20x2Cp866)?;
let mut vfd = Vfd::open(cfg)?;
vfd.print_line(1, "Привет")?;Re-exports§
pub use codec::fit_to_width;pub use codec::sanitize_for_cp866;pub use codec::sanitize_text;pub use config::DisplaySettings;pub use config::MAX_MARQUEE_CHARS;pub use config::MAX_MARQUEE_CPS;pub use config::MAX_QUEUED_RAW_BYTES;pub use config::Preset;pub use config::SerialSettings;pub use config::TextEncoding;pub use config::VfdConfig;pub use error::ConfigError;pub use error::Result;pub use error::VfdError;pub use vfd::Vfd;pub use worker::VfdHandle;pub use worker::VfdWorker;
Modules§
- codec
- Кодирование Epson/ESC/POS-команд. Формирование байтов Epson/ESC/POS-команд без привязки к конкретному serial-порту.
- config
- Конфигурация serial-порта и дисплея. Типизированная конфигурация serial-транспорта и параметров дисплея.
- error
- Типизированные ошибки библиотеки. Ошибки конфигурации, I/O и жизненного цикла worker.
- tokio
- Tokio API поверх настоящего
AsyncWrite. Tokio API поверх настоящегоAsyncWrite. - vfd
- Низкоуровневое соединение с serial-портом или произвольным транспортом.
Синхронный низкоуровневый драйвер поверх любого
std::io::Write. - worker
- Фоновый поток и потокобезопасный sync-интерфейс. Синхронный worker для последовательной записи команд из bounded queue.