本帖最后由 xingyangqing 于 2010-3-2 11:35 编辑
RFID程序用于HUAYU P1300、P1500、P1220系列平台与HUAYU RC531 RFID扩展板通信;
通信协议细节将在后续的文档中公开;相对于之前的协议,新的通信协议具有以下优点:
1. 添加了传输协议(继续感谢Su和Max),RFID扩展板对每一个收到的命令都做ACK,这样做的好处是:当扩展板或者其它外围电路出现故障时,程序能够及时检测到;
2. 将以前的消费扣款等操作改为读、写卡操作;可在读写卡的基础上再做具体的业务;
当RFID打开成功后,在屏幕的右下角会显示打开成功;如果打开失败,会显示原因;
按左软键开始设置:选择块号和扇区号;扇区号的范围为0-15;块号的范围为0-2;
在数据区写入数据,某一块的数据为16字节,以HEX形式写入;
按设置返回后,先按UP键读卡,刷卡后,显示的信息是指定扇区和块的数据:
再按DOWN键写卡,刷卡后,显示成功:00 00
再按UP键读卡,刷卡后,显示写入的信息:
该程序基于HUAYU提供的异步串口机制;HUAYU对串口及基于串口的应用进行了封装,并以GCF标准接口的形式提供;
使用RFID接口的方法:
1. 实现接口HuayuRfidListener
2. 使用接口HuayuNXPConnection- public interface HuayuNXPConnection extends HuayuConnection{
- public void queryCard(int iSectorNum,int iBlockNum) throws HuayuException;
- public void readCard(int iSectorNum, int iBlockNum) throws HuayuException;
- public void writeCard(int iSectorNum,int iBlockNum,byte[] bData) throws HuayuException;
- public void Register(HuayuRfidListener callbackObject) throws HuayuException;
- public void unRegister();
- }
- public interface HuayuRfidListener {
- public void CbAck();
- public void CbPacketComing(CPacket packet);
- }
复制代码
操作流程:
1. 打开RFID接口;
HuayuNXPConnection m_conn;
m_conn = (HuayuNXPConnection)HuayuConnector.open("rc531:1;baudrate=115200");
说明:如果在模拟器上运行,使用COM3,则:
m_conn = (HuayuNXPConnection)HuayuConnector.open("rc531:3;baudrate=115200");
HUAYU库在启动时会检测平台,如果是HUAYU设备,则固定使用串口一;
2. 注册
m_conn.Register(RC531DemoView.this);
3. 查询卡、读卡、写卡操作;
m_conn.readCard(1,1);
4. ACK数据到;
CbAck(),当命令发送后,会收到ACK;
5. 卡信息到;
CbPacketComing,刷卡后,卡数据到;
6. 关闭RFID接口
m_conn.close();
m_conn.unRegister(); |