這是我在PB中的宣告:
Function int M100A_ReadMagcardDecode(ulong ComHandle, boolean bHasMac_Addr, Char Mac_Addr,char _track, ref ulong _DataLen, ref char _BlockData[],ref string RecordInfo)Library "K100_DLL.dll"
以下是BlockData[]中包含的資訊
TR1_ST、LEN1、TR2_ST、LEN2、TR3_ST、LEN3、一軌資料、二軌資料、三軌資料
注意僅當TR1_ST=0x60, LEN1大于0,一軌資料存在,其他情況下LEN1=0,一軌資料為空
注意僅當TR2_ST=0x60, LEN2大于0,二軌資料存在,其他情況下LEN2=0,二軌資料為空
注意僅當TR3_ST=0x60, LEN3大于0,三軌資料存在,其他情況下LEN3=0,三軌資料為空
下面是動態庫說明(檔案中提供的),請教大家如何把BYTE _BlockData[]中的資料獲取到
int __stdcall M100A_ReadMagcardDecode(HANDLE ComHandle, bool bHasMac_Addr, BYTE Mac_Addr, BYTE _track, DWORD *_DataLen,BYTE _BlockData[], char *RecordInfo);
功能: 讀磁卡解碼資料
引數: [in]ComHandle 已經打開的串口的句柄
[in]bHasMac_Addr 是否為多機通訊版本(使用方式請參檔案前部“介面函式公有的引數說明“)
[in]MacAddr 機器的地址,有效取值(0到8)
[in]_track 要讀取的軌道,具體含義如下
0x30: 讀ISO第一軌資料
0x31: 讀ISO第二軌資料
0x32: 讀ISO第三軌資料
0x33: 讀ISO第一二軌資料
0x34: 讀ISO第一三軌資料
0x35: 讀ISO第二三軌資料
0x36: 讀ISO全三軌資料
[out]_DataLen 存盤回傳的磁卡資料包的長度(_BlockData[]的長度)
[out]_BlockData[] 存盤回傳的磁卡資料包(資料包格式說明見下)
[out]RecrodInfo 存盤該條命令的通訊記錄
回傳值: 正確=0,錯誤=非0
磁卡資料包(_BlockData[])格式如下形式:
[1]TRX_ST(一個位元組),各軌道的讀卡狀態,LENX(一個位元組)各個軌道資料的長度,
=0x60,讀磁卡正確
=0x61,SS錯誤
=0x62,ES錯誤
=0x63,P錯誤
=0x64,LRC錯誤
=0x65,空白磁道
(讀取單軌)讀ISO第一軌資料回傳的資料包格式如下:
TR1_ST
LEN1
一軌資料
注意僅當TR1_ST=0x60, LEN1大于0,一軌資料存在,其他情況下LEN1=0,一軌資料為空
(讀取雙軌)讀ISO第一二軌資料回傳的資料包格式如下:
TR1_ST
LEN1
TR2_ST
LEN2
一軌資料
二軌資料
注意僅當TR1_ST=0x60, LEN1大于0,一軌資料存在,其他情況下LEN1=0,一軌資料為空
注意僅當TR2_ST=0x60, LEN2大于0,二軌資料存在,其他情況下LEN2=0,二軌資料為空
(讀取三軌)讀ISO全三軌資料
TR1_ST
LEN1
TR2_ST
LEN2
TR3_ST
LEN3
一軌資料
二軌資料
三軌資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/82568.html
標籤:API 調用
上一篇:報文pb如何處理
