52 lines
2.9 KiB
Markdown
52 lines
2.9 KiB
Markdown
# Changelog
|
||
|
||
Все заметные изменения проекта фиксируются в этом файле.
|
||
|
||
## [0.3.0] - 2026-08-20
|
||
|
||
### Changed
|
||
|
||
- BREAKING: `EpsonCodec::new` теперь валидирует `DisplaySettings` и возвращает
|
||
`Result<EpsonCodec, ConfigError>`.
|
||
- Текстовые API нейтрализуют управляющие символы; произвольные ESC/POS-команды
|
||
отправляются только через `write_raw`.
|
||
- Worker ограничивает queued raw payload, длину marquee и максимальную скорость marquee
|
||
публичными константами `MAX_QUEUED_RAW_BYTES`, `MAX_MARQUEE_CHARS` и
|
||
`MAX_MARQUEE_CPS`.
|
||
|
||
### Fixed
|
||
|
||
- Неподдерживаемые символы CP866/Windows-1251 заменяются одним байтом `?`, не нарушая
|
||
ширину строки числовыми character references.
|
||
- Некорректная геометрия codec-а возвращает `ConfigError` вместо позднего panic.
|
||
|
||
## [0.2.0] - 2026-08-16
|
||
|
||
### Added
|
||
|
||
- Добавлен crate-ready API `escpos-vfd` с импортом `escpos_vfd`.
|
||
- Добавлены `VfdConfig`, `SerialSettings`, `DisplaySettings`, `TextEncoding` и пресет
|
||
`Preset::Epson20x2Cp866` для прежнего 20x2 CP866 дисплея.
|
||
- Добавлен ручной выбор baud rate, serial-режима, геометрии, кодировки, `ESC t`
|
||
таблицы, диапазона яркости и ёмкости worker queue.
|
||
- Добавлены sync worker с bounded queue, подтверждением после I/O и graceful shutdown.
|
||
- Добавлен optional Tokio API через feature `tokio`: `AsyncVfd`, `AsyncVfdWorker`,
|
||
`AsyncVfdHandle`.
|
||
- Добавлены typed errors `ConfigError` и `VfdError`.
|
||
- Добавлены русская rustdoc-документация, README, примеры preset/manual/Tokio и
|
||
расширенные аппаратные demo-примеры.
|
||
|
||
### Changed
|
||
|
||
- BREAKING: прежние фиксированные настройки `TABLE_CYR` и `FIXED_BAUD` заменены
|
||
явной конфигурацией и пресетом.
|
||
- BREAKING: ошибки публичного API теперь типизированы, вместо универсального
|
||
`anyhow::Result`.
|
||
- Логика строк и worker-кэш больше не предполагают строго две строки дисплея.
|
||
- `print_line_diff` и `print_at` документированы как операции с 1-based координатами.
|
||
|
||
### Fixed
|
||
|
||
- Исправлена рассинхронизация default-паузы marquee в taskfile: теперь везде `1500 ms`.
|
||
- Документация методов и публичных типов проходит строгий `missing_docs` rustdoc gate.
|