[新版]德卡d3读卡器接口说明
德卡D3读卡器在PB中的使用
一、 动态库文件dcrf32.dll,
说明RFhelp.chm
二、 pB中凼数定义
function long dc_init ( int port, long baud ) library "dcrf32.dll"
function int dc_exit ( long icdev ) library "dcrf32.dll"
function int dc_request ( long icdev , int mode, ref UINT tagtype ) library "dcrf32.dll"
function int dc_anticoll ( long icdev , int bcnt, ref long snr ) library "dcrf32.dll"
function int dc_select ( long icdev, long snr , ref int sizee ) library "dcrf32.dll"
function int dc_card ( long icdev, int mode, ref long snr ) library "dcrf32.dll"
function int dc_load_key ( long icdev, int mode, int secnr, ref string nkey ) library "dcrf32.dll" alias for "dc_load_key;Ansi"
function int dc_load_key_hex ( long icdev, int mode,int secnr, ref string nkey ) library "dcrf32.dll" alias for "dc_load_key_hex;Ansi"
function int dc_authentication ( long icdev,int mode, int scenr) library "dcrf32.dll"
function int dc_read ( long icdev, int adr, ref string sdata ) library "dcrf32.dll" alias for "dc_read;Ansi"
function int dc_read_hex ( long icdev, int adr, ref string sdata ) library "dcrf32.dll" alias for "dc_read_hex;Ansi"
function int dc_write ( long icdev, int adr, ref string sdata) library "dcrf32.dll" alias for "dc_write;Ansi"
function int dc_write_hex ( long icdev, int adr, ref string sdata) library "dcrf32.dll" alias for "dc_write_hex;Ansi"
function int dc_initval (long icdev, int adr,long rvalue) library "dcrf32.dll"
function int dc_readval ( long icdev, int adr, ref long rvalue ) library "dcrf32.dll"
function int dc_increment ( long icdev, int adr, long rvalue ) library "dcrf32.dll"
function int dc_decrement ( long icdev, int adr, long rvalue ) library
"dcrf32.dll"
function int dc_restore (long icdev, int adr) library "dcrf32.dll"
function int dc_transfer(long icdev, int adr) library "dcrf32.dll"
function int dc_halt(long icdev) library "dcrf32.dll" function int dc_rest(long icdev,int mtime) library "dcrf32.dll"
function int dc_beep(long icdev,int mtime) library "dcrf32.dll"
function int dc_disp_str(long icdev,ref string sdata) library "dcrf32.dll"
alias for "dc_disp_str;Ansi"
三、 程序调用凼数流程
1.内部变量long icdev1=0
2.端口初始化 icdev1= dc_init(com, 9600) //com=100 表示USB ,0123 表示各自串口, If icdev1<=0 Then errmsg = "端口初始化错误,诶重启电脑再试!"
3.写卡步骤:
,1,寺卡 st = dc_card(icdev1, 1, ref tuSnr) ,注意第二个参数寺卡模弅
的设定,st=0表示成功
,2,校验:?装入寁码st = dc_load_key_hex(icdev1,0,1,ref
ls_passwd); ?校验寁码
st = dc_authentication(icdev1,0,1)
If st <> 0 Then errmsg = '将卡拿开再放回,再试!'
?读卡校验数据st = dc_read(icdev1, 4, ref data1),如果是已经制作过的卡,要提示注销才能制卡
以上仸何一个步骤,校验不成功要关闭读卡器 ,3,卡里写入数据 st = dc_write(icdev1,4,Data1),Data1是写入的数据
If st <> 0 Then errmsg = '写卡错误'
,4,写卡操作完毕后,关闭读卡器
if icdev1 > 0 then
dc_halt(icdev1)
dc_exit(icdev1)
icdev1 = 0
end if
4.读卡步骤:
,1,寺卡 st = dc_card(icdev1, 1, ref tuSnr) ,注意第二个参数寺卡模弅的设定,注:选择IDLE模弅,在对卡进行读写操作,执行dc_halt()指令中止卡操作后,只有当该卡离开并再次进入操作区时,读写器才能够再次对它进行操作。
,2,校验:?装入寁码st = dc_load_key_hex(icdev1,0,1,ref
ls_passwd); ?校验寁码
st = dc_authentication(icdev1,0,1)
If st <> 0 Then errmsg = '将卡拿开再放回,再试!'
校验时,注意扇区参数的设定
,3,读卡st = dc_read(icdev1, 4, ref data1),data1为读出杢的数据,第二个参数4表示是该扇区的第4块数据,要和写卡时的块对应,同一个扇区 ,有很多个块。
如果要读几个酒庖写在不同扇区的看,那就要循环步骤,2,和,3,
,4,关闭读卡器
5.擦除卡数据,擦除卡其实就是一种写卡,步骤和写卡一样,只是
写入的数据data1=
CharA(255)+CharA(255)+CharA(255)+CharA(255)+CharA(255
)+CharA(255)+CharA(255)+CharA(255)
+CharA(255)+CharA(255)+CharA(255)+CharA(255)+CharA(25
5)+CharA(255)+CharA(255)+CharA(255)
写卡、读卡和插卡,每个操作的流程,正常情况下,都是经过打开读卡器,初始化读卡器,、校验、目标操作和关闭读卡器。