admin 發表於 2016-6-26 22:42:30

RS232與ESC/POS

串列傳輸&並列傳輸
POS周邊大部分都是串列傳輸(Serial)和並列傳輸(LPT),一般我們會稱呼為RS232、RS485主要是早期用來溝通硬體設備的語言,至今依舊是溝通硬體的主要方式。在POS中最常串接的發票機、熱感機、磅秤機、條碼掃描器、客戶顯示器都是利用RS232 或 LPT來達到溝通的動作。主要是透過WINDOW你要設備間互通S提供的API來操作使用RS232一定要了解RS232的鮑率(Baud Rate): 300, 1200, 2400, 9600, 19200, 115200 等bit/s同位檢查(Parity Check): 奇同位(Odd)、偶同位(Even)、不減查同位(None)資料位元(Data Bit) :5、6、7、8 bit/s。停止位元(Stop Bit): 1 、 1.5 、 2 bit/s。特別強調這四點的原因是因為。你要設備間互通。這四組一定要一致才會收的到正確的資訊。台灣設備一般都是9600,n,8,1 or 9600,E,7,1ESC/POS
這是種周邊的語言。舉凡發票機熱感機客戶顯示器都是透過這標準的ESC/POS指令來完成動作由EPSON定義。在編寫使用此指令的設備時,不需要使用到最新的技術文章。要找到相符的版本級指令集較好。[文件]1.1    印紙本發票特別注意事項例外]
[*]1.       在QRCODE部分進PAGMODE模式處理
[*]2.       PAGEMODE須定義長度及大小
[*]3.       定義完畢後須先定義QRCODE的列印位置
[*]4.       再送QRCODE
[*]5.       如需平行列印兩顆以上QRCODE 必須在離開PAGEMODE之前都先定義好
[*]6.       離開PAGEMOD->STANDMODE 再繼續列印接續資料。
[*]1.       一般標準BARCODE只能印17個字元
[*]2.       若要提高只能縮小BARCODE的列印寬度及長度。相對的會降低掃描能力
1.2    印BARCODE注意事項
POS的應用

[*]1.       提供RS232 送收指令的元件[磅秤機整合]、[發票機整合]、[熱感機整合]、[客戶顯示器整合]
[*]2.       信用卡元件
[*]3.       電子發票的列印
信用卡UML
1.       利用RS232送命令觸發卡機。
[*]2.       將金額、交易模式讓卡機得知,進行刷卡。
[*]

[*]3.       卡機回傳卡號POS判斷[授權碼]&[驗證碼]。


RS232元件使用

TCommDev– 元件底層屬性]
參數屬性說明
FBaudRate          TBaudRateType鮑率 Ex. 9600
FDataBitsTDataBitsType資料位元 Ex. 8
FParityCheckTparityCheckType位元檢查 Ex. None
FStopBitsTStopBitsType停止位元 Ex. _1
FDevicePortTDevicePort連接埠 Ex. COM1
FCheckDSRBoolean設備告訴電腦已準備好(過電)
FDelayinteger下一筆指令間延遲時間
發票機、熱感機元件

TinvPrinter. SendString – [直接送字串給周邊]
參數屬性說明
SendString      AnsiString預列印的字串
回傳屬性說明
ResultBooleanTrue 指令已送出False連線失敗


TinvPrinter. SendCOMString – [送ESC/POS指令給周邊]
參數屬性說明
SendString      AnsiString預送出的ESC/POS指令
回傳屬性說明
ResultBooleanTrue 指令已送出False連線失敗
TinvPrinter. OpenCashDrawer – [開錢櫃]
回傳屬性說明
ResultBooleanTrue 指令已送出False連線失敗


TinvPrinter. PrintBarcode – [印barcode]
參數屬性說明
xBarcode      AnsiString要列印的BARCODE內容
回傳屬性說明
ResultBooleanTrue 指令已送出False連線失敗

TinvPrinter. PrintQRcode – [印QRCODE]
參數屬性說明
xBarcode      AnsiString要列印的QRCODE內容
回傳屬性說明
ResultBooleanTrue 指令已送出False連線失敗


TinvPrinter. EndPageMode– [結束PageMode]
因Pagemode每一種機型都不相同。故此沒做成祖先







信用卡元件

TEDCCom. SendToEDC – [送]
參數屬性說明
TransType       AnsiString交易型態 [參考規格文件]
PaymentAnsiString交易金額
StoreNoAnsiString店號
PosNoAnsiString機號
TrnNoAnsiString交易序號
回傳屬性說明
ResultBooleanTrue 指令已送出False連線失敗


TEDCCom. SendToEDC2 – 廠商提供的EXE檔]
參數屬性說明
TransType       AnsiString交易型態 [參考規格文件]
PaymentAnsiString交易金額
StoreNoAnsiString店號
PosNoAnsiString機號
TrnNoAnsiString交易序號
回傳屬性說明
ResultBooleanTrue INI已寫入False連線失敗








信用卡通訊過程
Time out:60 seconds or more before sending response block.
ECRRouteAS320 EDC
REQUEST messageè
ç<ACK> <ACK>
(ECR is waiting for response…)|(EDC is in processing…)
çRESPONSE message
<ACK><ACK>è(DONE)

REQUEST Data144 bytes 固定長度
項欄位名稱長度位置備註
1            Trans Type21交易別
2       Host ID23銀行別
3       Receipt No65調閱編號
4       Card Number1911信用卡卡號(左靠右補空白)
5       Expiration Date430信用卡有效期(以****取代)
6       Trans Amount1234交易金額
7       Trans Date646交易日期
8       Trans Time652交易時間
9       Approval Code958授權碼(左靠右補空白)
10    ECR Response Code467通訊回應碼
11    Terminal ID871端末機代號
12    Reference No1279銀行交易序號
13    Store ID1691櫃號(左靠右補空白)
14    Amount112107金額1
15    Amount212119金額2
16    Amount312131金額3
17    Installment Period2143期數







頁: [1]
查看完整版本: RS232與ESC/POS