日期:2026-07-31
范围:仅调整 USB/CSN 打印路径,串口打印路径保持不变
将 USB 热敏打印小票复刻为参考照片中的信息层级和视觉结构。保留现有业务字段来源、数字票生成流程和二维码内容,不修改车辆入场、结算或扫码出场逻辑。
USB 小票自上而下按以下顺序打印:
Parking Ticket Font A、双宽、加粗、居中
{lotName} Font B、居中
------------------------------------------ Font B、42 字符
PARK AT YOUR OWN RISK Font B、居中
{lotName} A-General Car Font B、左对齐
In-Time::{entryTime} Font A、左对齐
InGate::{channelCode} Font A、左对齐,可选
Slip No::{ticketID} Font A、左对齐
Veh No::{plateNo} Font A、双宽、加粗、可选
[二维码] 居中,宽度参数 12
SCAN AND PAY WITH NEW Font B、居中
THE CANADIA BANK APP Font B、居中
[全切纸]
现场打印确认 USB 模组按发送顺序排列票面内容。程序必须按上方从标题到支付提示的正常顺序发送字段,并保持字形方向正常;不能通过倒序发送模拟 180 度旋转。
| 票面字段 | 数据来源 | 规则 |
|---|---|---|
| 停车场名称 | parking_lot.lot_name |
标题下方显示一次,并在车型行再次显示 |
| 车型 | 固定文本 | A-General Car |
| 入场时间 | 打印时的本地时间 | 格式 02-01-2006 15:04:05 |
| 入口 | API 请求的 channel_code |
空值时省略整行 |
| 票号 | digital_ticket.id |
Slip No::{id} |
| 车牌 | API 请求的 plate_number |
空值时省略整行 |
| 二维码 | digital_ticket.ticket_no |
保留现有 32 位十六进制票号内容 |
Pos_Text。GS ! 0x10,打印后使用 GS ! 0x00 恢复正常尺寸并关闭粗体。GS ! 0x10 双宽和加粗;打印后立即恢复正常尺寸和粗细。Pos_EscQrcode,宽度参数调整为 12,使二维码宽度接近参考票纸宽度的一半。ESC { 1 只旋转字形,不反转整张票的纵向坐标;字段继续按票面从上至下发送。ESC { 0,并在 Pos_EscQrcode 后再次发送 ESC { 0,防止 SDK 改变文字方向状态。将 USB 票面的排版定义从设备调用中抽离为可测试的操作序列:
Csn_WriteData、csn_QRCode、走纸和切纸函数。PrintTicket 仍负责读取打印机配置、打开端口、执行票面和更新设备状态。online。新增 USB 布局单元测试,至少验证:
SCAN AND PAY WITH NEW、THE CANADIA BANK APP 的发送顺序生成。ESC { 0,且不发送 ESC { 1。