release: escpos-vfd 0.3.0

This commit is contained in:
Кобелев Андрей Андреевич
2026-08-20 19:25:08 +05:00
parent 244d907cc2
commit 37cdba4898
14 changed files with 472 additions and 69 deletions
+14 -4
View File
@@ -13,14 +13,14 @@
```toml
[dependencies]
escpos-vfd = "0.2"
escpos-vfd = "0.3"
```
Tokio API подключается отдельным feature:
```toml
[dependencies]
escpos-vfd = { version = "0.2", features = ["tokio"] }
escpos-vfd = { version = "0.3", features = ["tokio"] }
```
Без feature `tokio` async-зависимости не подключаются.
@@ -160,6 +160,11 @@ vfd.print_at(6, 2, "текст")?;
`print_at()` пишет с указанной позиции и обрезает текст по правому краю. Автоматического
переноса на следующую строку нет.
Текстовые методы заменяют управляющие символы, включая `NUL`, `ESC`, `US`, `CR`, `LF`
и form feed, пробелами. Для намеренной отправки команд используется только `write_raw()`.
В CP866 и Windows-1251 каждый неподдерживаемый Unicode-символ заменяется одним `?`,
поэтому кодирование не нарушает настроенную ширину строки.
Неверные координаты возвращают `VfdError::InvalidLine` или
`VfdError::InvalidCoordinate`.
@@ -213,7 +218,9 @@ display.start_marquee(1, 8, Duration::from_millis(1500))?;
display.stop_marquee()?;
```
`cps` задаёт скорость в символах в секунду, `end_pause` — паузу после полного прохода.
`cps` задаёт скорость в символах в секунду и ограничен значением
`MAX_MARQUEE_CPS`; `end_pause` — паузу после полного прохода. Текст ограничен
`MAX_MARQUEE_CHARS` символами.
`stop_marquee()` останавливает анимацию, но не очищает уже отображённый текст.
## Tokio
@@ -260,10 +267,13 @@ vfd.write_raw(&[0x1b, 0x40])?;
`write_raw()` не кодирует и не интерпретирует данные. В worker API такая запись также не
обновляет строковый кэш, поэтому после raw-команд, меняющих текст на экране, лучше
выполнить `clear()` или `print_line()`.
выполнить `clear()` или `print_line()`. Размер одной queued raw-команды ограничен
`MAX_QUEUED_RAW_BYTES`; низкоуровневые `Vfd::write_raw()` и `AsyncVfd::write_raw()`
пишут предоставленный slice напрямую без промежуточной очереди.
Для нестандартных транспортов и диагностики доступен публичный
`escpos_vfd::codec::EpsonCodec`, который формирует байты команд без открытия serial-порта.
`EpsonCodec::new(display)` валидирует геометрию и возвращает `Result`.
## Ошибки