通訊協定
RS232序列資料通訊介面,非同步傳輸(Asynchronous),115200 Baud Rate, 8N1
通訊格式
ASCII : 美國標準資訊交換碼(American Standard Code for Information Interchange, ASCII)
通訊內容
Request (ECR) | Response (EDC) | |
STXDATAETXLRC | >> | |
<< | ACKACK | |
等待處理中(Timeout >60秒) | 刷磁條卡,插晶片或感應信用卡 | |
<< | STXDATAETXLRC | |
ACKACK | >> |
通訊內容說明
STX byte
- ASCII字符集中的控制字符STX(Start of Text)
- 十六進制(Hexadecimal)值為 0x02
byte STX = 0x02 ;
DATA byte
- 交易電文內容,長度總共600字元。
ETX byte
- ASCII字符集中的控制字符ETX(End of Text)
- 十六進制(Hexadecimal)值為0x03
byte ETX = 0x03 ;
LRC byte 電文檢查碼
- 將LRC初始值=0跟Data(請求電文內容)+ETX(請求電文結束內容)進行XOR位元運算的結果
// 計算 LRC
byte LRC = 0; // LRC 的初始值
foreach (byte b in (dataBytes))
{
LRC ^= b; // 進行 XOR 運算
}
LRC ^= ETX; // 進行 XOR 運算
ACK byte 確認回應
- 由刷卡機產生回傳
- ASCII字符集中的控制字符ACK,確認收到請求回應
- 十六進制(Hexadecimal)值為0x06
byte ACK = 0x06 ;
通訊流程
- 正常情況
注意事項:
- 刷卡機需在主畫面才能接收POS指令
- POS等待處理中 (timeout總秒數至少要60秒逾時)
- 非正常情況
Request錯誤,通常發生時機:
- LRC 錯誤
- 資料長度錯誤