Rename crate to escpos-vfd and add tokio support
Rename crate to escpos-vfd and add tokio support Introduce a configurable crate-ready API with presets, typed errors, optional Tokio async support, and expanded documentation.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
//! Минимальный синхронный старт через пресет Epson20x2Cp866.
|
||||
|
||||
use escpos_vfd::{Preset, Vfd, VfdConfig};
|
||||
use std::error::Error;
|
||||
use std::thread;
|
||||
use std::time::Duration;
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
// Первый аргумент - имя serial-порта. Значение по умолчанию удобно для локального
|
||||
// macOS-стенда; на Linux чаще будет `/dev/ttyUSB0`, на Windows - `COM3`.
|
||||
let port_name = std::env::args()
|
||||
.nth(1)
|
||||
.unwrap_or_else(|| "/dev/cu.usbmodem101".to_string());
|
||||
|
||||
// Пресет содержит все параметры текущего дисплея: serial 9600 8N1,
|
||||
// геометрию 20x2, CP866, `ESC @` и `ESC t 6`.
|
||||
let config = VfdConfig::preset(port_name, Preset::Epson20x2Cp866)?;
|
||||
let mut display = Vfd::open(config)?;
|
||||
|
||||
// Низкоуровневый `Vfd` пишет команды сразу в serial-порт в текущем потоке. Это
|
||||
// самый простой путь для CLI-утилит и smoke-test на железе.
|
||||
display.clear()?;
|
||||
display.set_brightness(2)?;
|
||||
|
||||
// `print_line` дополняет строку пробелами до ширины дисплея, поэтому старый текст
|
||||
// справа не остаётся на экране.
|
||||
display.print_line(1, "Пресет CP866")?;
|
||||
display.print_line(2, "escpos-vfd")?;
|
||||
|
||||
// Даём физическому дисплею время показать результат до завершения процесса.
|
||||
thread::sleep(Duration::from_secs(2));
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user