4 个版本
0.2.0 | 2024 年 4 月 1 日 |
---|---|
0.1.2 | 2022 年 7 月 17 日 |
0.1.1 | 2022 年 7 月 1 日 |
0.1.0 | 2022 年 7 月 1 日 |
#9 in #adafruit
30KB
497 行代码(不包括注释)
thermal-print
摘要
thermal-print
提供了 Adafruit 和其他公司销售的 CSN-A2 热敏打印机 ESC/POS 实现的串行接口驱动程序。该软件包应该支持所有 embedded-hal
目标平台,这些平台具有动态分配器,并且与 #![no_std]
兼容。
功能
thermal-print
尚缺乏一些小的功能,但已支持
- 文本格式化(例如,对齐、选择打印模式和选择字体),
- 打印条形码,
- 位图打印(通过
tinybmp
软件包)。
使用方法
只需在 Cargo 清单中依赖该软件包
[dependencies]
thermal-print = "0.2"
现在您可以将软件包引入作用域
use thermal_print::*
位图打印依赖于 TinyBMP 软件包。请参阅下面的打印位图的示例。
示例
设置、格式化和打印文本
此示例初始化打印机,配置字体 B
,设置对齐方式为居中,并在纸上打印 Hello, world!
。
// Configure the serial interface for your platform
let config = serial::config::Config::default()
.baudrate(Hertz(19_200));
let mut serial: serial::Serial<serial::UART1, _, _> = serial::Serial::new(
peripherals.uart1,
serial::Pins {
tx: peripherals.pins.gpio21,
rx: peripherals.pins.gpio19,
cts: None,
rts: None,
},
config
).expect("Error while configuring UART!");
// Construct a new `Printer` with the serial interface and a `delay` implementation for
// blocking while the printer prints
let mut printer = Printer::new(serial, delay::FreeRtos);
printer.init();
printer.set_print_mode(
PrintModeBuilder::default()
.font(Font::FontB)
.build()
.unwrap()
);
printer.set_justification(Justification::Center);
writeln!(printer, "Hello, world!");
打印位图
此示例通过 include_bytes!
宏打印嵌入的位图。它假定您已将 tinybmp
添加为依赖项到您的清单中,并且项目中有适当的位图文件 ./resources/ferris.bmp
。请参阅有关位图打印的文档以获取更多信息。
use tinybmp::RawBmp;
printer.print_bitmap(
RawBmp::from_slice(
include_bytes!("../resources/ferris.bmp")
).unwrap(),
RasterBitImageMode::Normal
);
功能标志
std
:此功能使您能够链接到 Rust 标准库。默认情况下是 禁用 的。embedded-hal-nb
:使用嵌入式-hal-nb 特性进行 UARTembedded-io
:使用嵌入式-io 特性进行 UART
错误报告和功能请求
欢迎为此项目做出贡献。您可以在 sourcehut 上找到 问题跟踪器 和 代码仓库。您还可以通过电子邮件向 ~doesnotcompete/[email protected] 提交错误报告或功能请求。
依赖项
~5.5MB
~86K SLoC