首页 新闻 会员 周边

.NET读取串口射频卡数据的问题

0
悬赏园豆:15 [已关闭问题] 关闭于 2010-01-18 17:42

公司现在用的MF-500射频卡是串口读数据的,并且提供了API动态链接库,可是我必须写个循环不停的调用他们提供的API才能读卡,程序效率太低!.NET有个SerialPort虽然很好用但是不知道怎么和硬件沟通,获取了消息不知道怎么把Stream变成我想要的DD,谁能帮我啊。

附硬件带的文档,完全不懂:

通讯返回内容:

       ACK + LEN + DATAS + SW + CHK +ETX

SW:函数返回值 SW = 0 表示函数正确返回;否则表示错误

       以下函数所涉及到的发送命令数值,均指通讯协议中的DATAS值。

       DATAS的格式为:CLA+ INS + P1 + P2 + DATAS

    具体说明如下:

ACK = 0x60                   通讯头部,指令启始字节,1 Byte

LEN = Length(DATAS)         通讯数据体长度字节数,1 Byte

CLA:  表示命令的类别,对于该模块CLA = 0x0B

INS:   指令(命令)

 P1:    参数1

P2:    参数2

DATAS:数据

ETX = 0x03                   结束符,1 Byte

INS说明如下: 发送给读写模块的指令都占用一个字节。

命令字节    十六进制      功能

a          0x61       寻找感应区内的卡片并锁定该卡(CardReady)

b          0x62       从IC卡读出数据(ReadCard)

c          0x63       向IC卡写入数据(WriteCard)

d          0x64       将某BLOCK格式化成电子钱包(FormatPurse)

e          0x65       钱包增值(Increase)

f          0x66       钱包减值(Decrease)

g          0x67       读钱包值(ReadPurse)

q          0x71       挂起卡片(Halt)

bidaas的主页 bidaas | 初学一级 | 园豆:124
提问于:2010-01-11 13:11
< >
分享
所有回答(2)
0

http://www.cnblogs.com/catcn/archive/2009/02/04/1383825.html

这个是事件来触发,然后读到的数据分解。

然后发就是把数据拼合起来发啦。

谢小漫 | 园豆:436 (菜鸟二级) | 2010-01-11 15:29
就是问怎么分解法
支持(0) 反对(0) bidaas | 园豆:124 (初学一级) | 2010-01-12 10:03
0

用委托事件来写,我觉得最好的方法。

成斌 | 园豆:265 (菜鸟二级) | 2010-01-12 08:07
牛头不对马嘴
支持(0) 反对(0) bidaas | 园豆:124 (初学一级) | 2010-01-12 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册