zoukankan      html  css  js  c++  java
  • BS结构RFID读写器web插件开发之三----读取高频卡卡号

    @


    目前的高频智能卡分为3种,分别为ISO14443A, ISO14443B和ISO15693协议的,这3种协议的卡片在友我科技IC卡读卡器web插件系统中都得到支持.
    如何获取这3种卡的卡号呢? 在友我科技IC卡读卡器web插件系统中这是最简单的应用,我们将逐一介绍.

    读取ISO14443A卡号

    典型的ISO14443A卡有M1卡,包括其兼容的卡如国产的F08卡都属于此类.
    读取这类卡使用的API接口如下:

    RequestTypeACardNo(FormatID, OrderID)
    

    参数:FormatID,返回的卡号格式,0:16进制(8HEX),1:10进制(10DEC).
    OrderID, 卡号的现实顺序,0:正常顺序,1:倒序.

    返回值在第二章中介绍的回调函数中.
    我们给一个完整的调用方法:
    调用api:

    function ReadCardNo()
    {
    	var FormatID;
    	var OrderID;
    	
    	FormatID = 1; //10进制(10DEC).
    	OrderID = 0;   //0:正常顺序
    	rfidreader.Repeat=1; //repeat=1为重复执行,
    	rfidreader.HaltAfterSuccess=1;//卡未离开至读取一次
    	rfidreader.RequestTypeACardNo(FormatID, OrderID);
    }
    

    如果在repeat=1的情况下,一旦读到IC卡,则会触发回调函数:

    rfidreader.onResult(function(resultdata)
    {
    	switch(resultdata.FunctionID)
        {
    		case 0:
    		if(resultdata.Result>0)
    		{
    				CardNo=resultdata.strData;		
    		}
    		break;
        }
    }
    );
    

    在回调函数中resultdata.strData就是所读取的卡号(10DEC格式),
    至此,一个简单的循环读卡号的web程序就可以运行了,如果只要刷卡,对应的卡号就会传给web页面供处理.

    读取ISO14443B卡号

    ISO14443B最为代表的就是身份证,我们此处以读取身份证卡号为例:
    api接口如下:

    RequestChinaIDCardNo()
    

    结果还是会显示在回调函数中., 完整的代码如下:

    function ReadIDCard()
    {
    
    	rfidreader.Repeat=0;
    	rfidreader.HaltAfterSuccess=0;
    	rfidreader.RequestChinaIDCardNo();
    }
    

    回调函数代码:

    rfidreader.onResult(function(resultdata)
    {
    	switch(resultdata.FunctionID)
        {
        	
    		case 3:
    		if(resultdata.Result>0)
    		{
               CardNo= resultdata.strData;			
    		}
    		break;
        }
    }
    );
    

    ISO15693标签的寻卡操作

    ISO15693标签有Icode系列和Tagit等,所有的ISO15693协议的标签寻卡api如下

    Request15693CardUID()
    

    没有任何参数, 调用即可获取ISO15693的卡号.
    完整的代码如下:
    api调用:

    function ReadCard()
    {
    	rfidreader.Repeat=1;
    	rfidreader.HaltAfterSuccess=1;
    	rfidreader.Request15693CardUID();
    }
    

    回调函数处理:

    rfidreader.onResult(function(resultdata)
    {
    	switch(resultdata.FunctionID)
        {
        	
    		case 14:
            document.getElementById("CloudReaderVer").value = resultdata.strData;
            break;
    		case 2:
    		if(resultdata.Result>0)
    		{
                CardNo =resultdata.strData;		
    		}
    		break;
        }
    }
    );
    

    至此可以看出,对于高频卡的3种卡类型,处理方式都是一样的,在web中调用起来也非常简单,下一章我们将介绍如下读写卡内的数据.

    参考资料:IC卡读卡器web开发指南

  • 相关阅读:
    JVM探究之 —— HotSpot虚拟机对象探秘
    JVM探究之 —— Java内存区域
    线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式
    dubbo线程模型配置
    hash bucket
    java 查看线程的信息
    List,Set,Map存取元素各有什么特点
    java 让图片变黑白
    springMVC 防重校验(拦截器)
    BigDecimal 的幂次方运算
  • 原文地址:https://www.cnblogs.com/yoworfid/p/14767643.html
Copyright © 2011-2022 走看看