Files
AI_Printer/Communication_Protocol.md
2026-02-10 17:11:06 +08:00

4.3 KiB
Raw Blame History

lyfPrinter 热敏打印机通讯协议(整理版,基于文档 V1.1

来源:lyfPrinter 热敏打印机协议文档V1.12026-01-03增加标签纸打印指令


1. 帧格式(命令/响应一致)

一帧数据由以下字段顺序组成:

  • 设备地址1B
  • 功能码1B
  • 数据长度2B
  • 数据区NB
  • 和校验1B

文档定义:命令格式=设备地址(1B)+功能码(1B)+数据长度(2B)+数据(NB)+和校验(1B)。

1.1 和校验Checksum

和校验 = 设备地址 + 功能码 + 数据长度(2B) + 数据区(NB) 的总和取低 8 位

也就是:

checksum = (addr + func + len_hi + len_lo + sum(data_bytes)) & 0xFF

1.2 十六进制写法 vs 实际发送

文档示例里常写成带空格的十六进制,如:

01 00 00 01 01 03

这只是便于阅读。实际发送时需要发原始字节流bytes等价于

0x01 0x00 0x00 0x01 0x01 0x03

2. 指令列表

说明下面“send/recv”都是“帧格式”中的 数据区含义(其它字段按帧格式固定存在)。 文档中设备地址示例均为 0x01


2.1 电源开关控制0x00

send 数据区1B

  • 0x00:关
  • 0x01:开

recv 数据区1B

  • 0x00:失败
  • 0x01:成功

示例

  • 打开电源:01 00 00 01 01 03
  • 关闭电源:01 00 00 01 00 02

2.2 获取设备状态0x01

send 数据区:无(长度为 0

recv 数据区

  • 纸张状态1B0x00 无纸 / 0x01 有纸
  • 电池电量1B0~100
  • 打印头温度3B
    • 第 1 字节为符号位:0x2B 正号 / 0x2D 负号
    • 保留 1 位小数(范围 -20℃~80℃
    • 注:文档未进一步明确后 2 字节的编码方式,需结合实际设备/固件实现确认。

示例

  • 获取设备状态:01 01 00 00 02

2.3 设置走纸距离0x02

send 数据区

  • 走纸方向1B0x2B 正向 / 0x2D 反向
  • 走纸距离2B单位 mm

recv 数据区1B

  • 0x00:失败
  • 0x01:成功

示例

  • 设置走纸 5mm01 02 00 03 2B 00 05 36

2.4 设置打印参数0x03

包含:打印速度(切换 STB 同时加热数量)、打印浓度(调整加热时间)

send 数据区

  • 加热模式1B等级 1~4
    • 0x01:分 6 次加热
    • 0x02:分 3 次加热
    • 0x03:分 2 次加热
    • 0x04:分 1 次加热(功率太大暂不支持)
  • 电机运行速度1B单位 ms范围 1~10ms
  • 打印浓度/加热时间2B单位 us建议范围 1000~2500不推荐超过 2500us 长时间加热)
    • 1000较淡
    • 1500中等
    • 2000
    • 2500最深

recv 数据区1B

  • 0x00:失败
  • 0x01:成功

示例

  • 模式 1、速度 1ms、加热 2000us01 03 00 04 01 01 07 D0 E0

2.5 发送打印数据0x04

send 数据区

  • 打印数据NB
    • 一次最多 240 字节
    • 一行 48 字节,因此一次最多 5 行

recv 数据区1B

  • 0x00:失败
  • 0x01:成功(打印机已完成当前数据打印,可接收下一帧)

实际打印流程通常是:发送一帧 0x04 → 等待 recv 处理状态=0x01 → 再发下一帧。


2.6 标签纸定位走纸0x05【V1.1 增加】

send 数据区1B:固定 0x01
recv 数据区1B:固定 0x01

示例

  • 执行标签纸走纸定位:01 05 00 01 01 08

2.7 查询标签纸偏移0x06【掉电保存】

send 数据区1B:固定 0x01

recv 数据区1B

  • 标签纸偏移值:单位 mm1B保留 1 位小数,最大 25.4mm
  • 从“12.8mm → 0x80”的示例可推断偏移字节 ≈ 偏移(mm)×100.1mm 为 1 LSB

示例

  • 查询标签纸偏移:01 06 00 01 01 09

2.8 设置标签纸偏移0x07【掉电保存】

send 数据区1B

  • 标签纸偏移值:单位 mm1B保留 1 位小数,最大 25.4mm

recv 数据区1B:固定 0x01

示例

  • 设置标签纸偏移 12.8mm01 07 00 01 80 89

3. 安全警告(文档原意)

  • 电源开关不要长时间打开;打印结束后及时关断,否则可能导致打印头损坏。