禾碩POS熱敏票據(jù)打印機(jī)是一種新型的微型打印機(jī)。它的特點(diǎn)是體積小、打印速度快、噪聲低、打印質(zhì)量高,并且操作簡單,無需色帶,可免除許多日常維護(hù)的煩惱。
禾碩打印機(jī)除兼容市面各品牌打印機(jī)外,還有完整的自有指令體系,應(yīng)用于如保險(xiǎn)公司、客運(yùn)系統(tǒng)、餐飲系統(tǒng)等對應(yīng)的行業(yè)。
禾碩公司所發(fā)布的所有工具和軟件,都已經(jīng)過數(shù)字認(rèn)證簽名,下載使用前,請確認(rèn)是否為禾碩簽名產(chǎn)品,未簽名產(chǎn)品,請進(jìn)行殺毒等處理并確保文件的安全性
禾碩票據(jù)打印一票一控規(guī)范
在傳統(tǒng)POS打印機(jī)中,經(jīng)常有丟單現(xiàn)象,尤其是后臺(tái)廚房打印。本文檔為了解決這個(gè)問題,規(guī)范出一個(gè)流程,使打印穩(wěn)定可靠。
本文檔主要是針對以太網(wǎng)接口打印機(jī)。
1.2 以太網(wǎng)打印機(jī)通訊鏈接參數(shù)
表 1.1以太網(wǎng)打印機(jī)通訊鏈接
通訊協(xié)議
TCP
通訊端口
9100
1.3 丟票原因分析
POS 打印機(jī)丟單,主要原因是打印數(shù)據(jù)通道只是單向數(shù)據(jù),即上位機(jī)往下位機(jī)發(fā)送打印數(shù)據(jù),下位機(jī)打印數(shù)據(jù)。下位機(jī)緩沖滿,或打印票據(jù)打印完成等下位機(jī)狀態(tài),不能實(shí)時(shí)反饋給上位機(jī)。這樣,上位機(jī)數(shù)據(jù)發(fā)出后,下位機(jī)有沒有收到?收到后,有沒有打。慷疾粡闹。
1.4 解決辦法
解決辦法就是一票一控,單張票據(jù)發(fā)送,上位機(jī)需要按如下幾個(gè)步驟進(jìn)行,
1. 每張打印票據(jù)建立一個(gè)流水號。
2. 建議一個(gè)雙向數(shù)據(jù)通道,下位機(jī)可以向下位機(jī)發(fā)送數(shù)據(jù),下位機(jī)可以向上位機(jī)返回信息。
3. 上位機(jī)向下位機(jī)發(fā)送數(shù)據(jù)時(shí),先發(fā)送流水號,然后發(fā)送打印數(shù)據(jù)。
4. 下位機(jī)收到流水號后,先緩存起來,打印完成后,將流水號會(huì)送給上位機(jī),代表該張票據(jù)成功打印。
5. 上位機(jī)發(fā)送完一張打印數(shù)據(jù)后,等待下位機(jī)反饋回來的流水號。
6. 如果在10秒內(nèi),沒有等到下位機(jī)回送過來的流水號,代表下位機(jī)接收該張票不成功,上位機(jī)重發(fā)這張票據(jù),流水號不變。
7. 如果上位機(jī)重發(fā)3次不成功,請檢查硬件。
8. 如果成功收到下位機(jī)回送來的流水號,代表該張票據(jù)打印成功,流水號自加1,上位機(jī)發(fā)送下一張票據(jù)。
圖 1.1一票一控上位機(jī)單張票據(jù)發(fā)送流程
1.5 上位機(jī)軟件處理流程
POS上位機(jī)軟件主要分為收銀與數(shù)據(jù)發(fā)送兩部分,采用一票一控的方式后,上位機(jī)軟件的數(shù)據(jù)發(fā)送流程需要增加一個(gè)發(fā)送數(shù)據(jù)隊(duì)列。
收銀任務(wù)與數(shù)據(jù)發(fā)送任務(wù)之間關(guān)系如下圖 1.2所示。
圖 1.3收銀任務(wù)與數(shù)據(jù)發(fā)送任務(wù)之間關(guān)系
然后收銀任務(wù)與數(shù)據(jù)發(fā)送任務(wù)需要按下面步驟來實(shí)現(xiàn)。
1.5.1 收銀任務(wù)流程
1. 正常收銀流程
2. 收銀完成
3. 申請一個(gè)內(nèi)存塊,將待發(fā)送數(shù)據(jù)復(fù)制放入內(nèi)存塊,將該內(nèi)存塊放入隊(duì)列。
注意:這里的數(shù)據(jù)隊(duì)列不是以字節(jié)單位,而是以塊為單位。
4. 將待發(fā)送數(shù)據(jù)放入發(fā)送隊(duì)列后,繼續(xù)收銀。
圖 1.4收銀任務(wù)流程
1.5.2 數(shù)據(jù)發(fā)送任務(wù)流程
1. 判斷數(shù)據(jù)隊(duì)列是否為空
2. 如果為空,等待數(shù)據(jù)
3. 如果有數(shù)據(jù),進(jìn)入圖 1.1一票一控上位機(jī)單張票據(jù)發(fā)送流程
圖 1.5數(shù)據(jù)發(fā)送任務(wù)流程
1.6 新增指令
為了實(shí)現(xiàn)一票一控,需要增加數(shù)據(jù)塊起始指令與數(shù)據(jù)塊結(jié)束指令來封裝打印數(shù)據(jù)塊。
1.6.1 一票一控?cái)?shù)據(jù)塊起始指令
【格式】 ASCII GS # S SN
十六進(jìn)制 1D 23 53 SN
功能:標(biāo)志打印數(shù)據(jù)塊開始,后續(xù)為打印數(shù)據(jù)內(nèi)容
SN 4BYTE 流水號
建議SN流水號為十進(jìn)制數(shù)表示,由表 1.2所示的4部分組成。
表 1.2流水號組成
2位
2位
2位
4位
年
月
日
序列號
例如,13年8月13日第一張票的SN為十進(jìn)制數(shù)的 1308130001,
16進(jìn)制表示為 4D F8 7AD1,
因?yàn)閿?shù)據(jù)是小端模式,對應(yīng)的16進(jìn)制指令是
1D 23 53 D1 7A F8 4D
1D 23 53 4E 61 BC 00
1.6.2 一票一控?cái)?shù)據(jù)塊結(jié)束指令
【格式】 ASCII GS # E
十六進(jìn)制 1D 23 45
功能:標(biāo)志打印數(shù)據(jù)塊結(jié)束,下位機(jī)收到該指令需要回送應(yīng)答信息,
表 1.3下位機(jī)回送信息內(nèi)容
ASCII
GS
#
E
SN(4BYTE)
16進(jìn)制
1D
23
45
SN(4BYTE)
1.7 封裝后的打印數(shù)據(jù)塊格式
封裝了一票一控?cái)?shù)據(jù)塊起始指令與結(jié)束指令的數(shù)據(jù)內(nèi)容,如下圖 1.5所示。
圖 1.6封裝后的打印數(shù)據(jù)塊格式
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版