我给我的客户做的磁卡机,开始使用的是PS/2口的,结果PS/2口的就是仿真键盘,和键盘一样,打开记事本,就能够把卡号显示在里面,字符长短取决于磁道的字符存储量。
不过写卡器都是串口的。
后来,感觉这个没有什么用处,都换成了,串口的,不过加了10块钱,这下好了写。使用SPCOMM打开串口的时候,读卡器灯就亮了,把取接收的字符就OK了。
现在一直用着呢。。
不过写卡器的开发,需要到服务商索取写入和读入指令的。。。
磁卡使用的是:SOLIC的R140.
这个是我主登录界面的读卡程序,其他例子也有不过都是SPCOMM组件的。
procedure COMSTART(COM:Integer);
procedure TFrmLogin.COMSTART(COM:Integer);
begin
if COM=1 then
Comm1.CommName:='COM1' else Comm1.CommName:='COM2';
try
Comm1.StopComm;
Comm1.StartComm;
except
Comm1.StopComm;
ErrMessage('不能通信,串口没有准备好!');
end;
end;
procedure TFrmLogin.Comm1ReceiveError(Sender: TObject;
EventMask: Cardinal);
begin
ErrMessage('读写卡错误!错误号码:'+IntToStr(EventMask));
end;
procedure TFrmLogin.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
StrReceive:string;
begin
SetLength(StrReceive,BufferLength);
Move(Buffer^,Pchar(StrReceive)^,BufferLength);
if Length(StrReceive)>8 then
begin
ed_CardID.Text:=StrReceive;
bLogin.OnClick(self);
end;
end;