我有一个读卡器(连接COM1或COM2口),但是不知道怎样对卡进行读写操作?急得要命!!!(100分)

  • 主题发起人 主题发起人 wrq
  • 开始时间 开始时间
W

wrq

Unregistered / Unconfirmed
GUEST, unregistred user!
关于读卡器,只有一个WORD的协议,没有DLL之类的文件.
 
随便找一个串口工具试
 
不知哪位做这方面有经验的,帮小弟一把,真的是急得不行了,我被逼得没法活了!
 
那没办法,厂家不可能不提供接口库吧。???
 
http://www.powerba.com/develop/delphi/article/20010318007.htm

http://www2.arnes.si/~sopecrni/download.html
 
是名汉的吗?
 
不是名汉的,是我的朋友自己开发的!
 
有读写协议就行了,用其他Com口控件进行发送和接收。如 MSCOMM 控件。(很多硬件控制都只有控制协议的)
 
楼上的兄弟呀,你能否帮我做个例子!我做了很久都没做出来,求你啦!
 
你的协议贴出来!
 
读卡器通讯协议:
波特率 9600 数据格式: 0 XX(8个数据) 1
1.计算机将DTR RTS 置成高电平。读卡器开始工作。
2.上电后,读卡器一直发送 A0(连接命令),计算机回复 A0(确认)读卡器进入待机状态。
3.卡正确插入,读卡器一直发送 B0(数据准备就绪)。
1)计算机回复 B0(读数据),读卡器发送一组数据包。格式如下:
AA XX(128个数据) BB
(引导符) ( 结束位)
2)计算机回复 F0(注册卡),读卡器回复 F0(确认)。计算机回复4个注册数据。格式如下:
XX XX XX XX
(编号高位) (编号低位) (性别1-男 0-女) (年龄)
注册完毕后,读卡器发送成功标志 CC 。
4.注册卡或读数据之后,如计算机发送 D0 ,读卡器执行清卡命令。将卡中所有测量数据清空。(注:必须将测量数据保存在计算机中后,方可执行此指令)
5.拔卡,读卡器发送 D0 。
6.卡插反或错误卡,读卡器发送 C0 。



IC卡内128个数据具体格式
00H,01H 编号 ;
测试数据:
02H,03H 身高 ; 04H,05H 体重; 07H,08H 坐位体;
09H,0AH 握力 ;0CH,0DH 肺活量; 0FH,10H 反应时;
11H,12H 纵跳 ;13H,14H 往返跑; 15H,16H 仰卧起坐;
17H,18H 俯卧撑 ;19H,1AH 单足站立;1BH,1CH台阶实验;
1DH,1EH 50米跑 ;1FH,20H 立定跳远;21H,22H 50*8往返跑;
23H,24H 1000米 ;25H,26H 800米跑;
测试标志位:(00 未测 ; 01 已测)
60H 身高 ; 61H体重 ; 62H 坐位体; 63H握力;64H肺活量;
65H反应时; 66H纵跳; 67H 往返跑; 68H仰卧起坐;
69H俯卧撑; 6AH单足站立;6BH台阶实验;6CH 50M跑;
6DH立定跳远;6EH 50*8往返跑;6FH 1000米;61H 800米跑;
其他:
7CH 7DH 识别码 ; 7EH 性别(00 男; 01 女) ;
7FH 年龄;
 
seachange老兄,你在哪呢?有电话或电子邮件吗?这个问题我搞了很久都没搞出来,真是急死了,被人崔得简直没法活了!!!!!

 
我到搞过读写器,可惜我没有那没多时间!
一般做法,先写一些协议的Dll,
比如:上电,初始化读写器,读卡,写卡,关闭读写器,下电等.
 
procedure TForm1.Button1Click(Sender: TObject);
var
comm:TMscomm;
begin
comm.CommPort:=1;
comm.Settings:='9600,n,8,1';
comm.PortOpen:=true;
comm.DTREnable:=true;
comm.OnComm:=OnGetInfo; //**** TForm1.OnGetInfo(Sender:TObject);

end;
 
你可不可以帮我做一个完整一点的接收和发送的例子?
 
定义一个发送函数,发送命令类似如下:
var SendData:OleVariant;
SendData:=VarArrayCreate([1,4],varByte);
SendData[1]:=$11;
SendData[2]:=$20;
SendData[3]:=$30+ChannelNo;
SendData[4]:=$50+ChannelNo;
comm.Output:=SendData;
按你的协议看来,还是用的16进制,一种操作定义一个函数,发送相应的16进制命令即可,
在接收事件里检查收到的是否合法,若不合法重新发送!(用comm.Iutput 接收)
我在福州,Email:re_start@sohu.com

 
具体 MSComm 的使用你可以参考 MSDN 讲的很清楚,而且还有中文的。
 
老兄呀,请等一下,"comm.Iutput ",你用的是MSCOMM控件吗?是什么版本的?可否发一份给我,我的那个版本没这个属性!
 
对不起,写错了是 Comm.Input!
 
你还是参考一下 MSDN 其中还有示例!
 

Similar threads

后退
顶部