zoukankan      html  css  js  c++  java
  • BS结构RFID读写器web插件开发之七----NFC标签NDEF数据

    WEB读写NDEF数据

    NFC标签NDEF格式介绍

    NDEF格式是NFC论坛定义的一种标准数据交换格式,有了这种数据格式,各种NFC设备就可以直接读取或者写入所需要的数据,而不需要事先做约定。友我科技全系列NFC读写器都支持NDEF格式。
    NDEF格式约定了很多NDEF数据类型uri,用于解析后面的数据,常用的NDEF数据类型uri有如下:
      0: NDEF Text Type:
      1: NDEF URI Type, http://www.:
      2: NDEF URI Type, https://www.:
      3:NDEF URI Type, http://:
      4:NDEF URI Type, https://:
      5:NDEF RTD URI Type, tel::
      6:NDEF RTD URI Type, mailto::
      7:NDEF RTD URI Type: sms::
      NDEF数据格式URI有更多的格式定义,具体可以参考NDEF相关技术文档。

    友我科技WEB插件NDEF接口

    友我科技IC卡读卡器WEB插件系统支持NDEF格式的写入和读取,支持的卡有M1卡,NTAG等NFC标签。有4个接口可以用于NDEF的操作。

    增加记录到NDEF列表,此函数不操作标签

    NDEF_AddRecord(URI, DataStr)
    

    参数:
    URI: NDEF记录的类型,常用的类型如下:
    0: NDEF Text Type:
      1: NDEF URI Type, http://www.:
      2: NDEF URI Type, https://www.:
      3:NDEF URI Type, http://:
      4:NDEF URI Type, https://:
      5:NDEF RTD URI Type, tel::
      6:NDEF RTD URI Type, mailto::
      7:NDEF RTD URI Type: sms::
    DataStr:记录的字符串值。
    回调函数返回结果:

    FunctionID=51,
    Result:数字,函数执行后的返回值,
    UID:自定义的序号,
    strData:无

    清除所有NDEF记录,此函数不操作标签

    NDEF_ClearAllRecords()
    

    参数:无
    回调函数返回结果:

    FunctionID=52,
    Result:数字,函数执行后的返回值,
    UID:自定义的序号,

    将列表写到NFC标签

    NDEF_Write()
    

    参数:无, 此函数将列表的所有NDEF记录写入到标签中

    回调函数返回结果:

    FunctionID=53,
    Result:数字,函数执行后的返回值,
    UID:自定义的序号,

    从NFC标签读NDEF记录

    NDEF_Read()
    

    参数:无

    回调函数返回结果:

    FunctionID=54,
    Result:数字,函数执行后的返回值,如果>=0,则result值也作为返回的NDEF记录的顺序号
    UID:自定义的序号,
    CardNo:所操作的卡的卡号
    strData:NDEF记录的字符串值
    valData:NDEF类型URI

    NDEF的javascript操作示例代码

    一个NFC标签可以存储多个NDEF记录,NDEF记录数量与自身的数据大小和标签容量的大小有关。所以我们可以在一个NFC标签中存储多个NDEF记录。
    增加一条NDEF记录到列表,注意此时数据只是在内存中,并没有写入到标签。

    function AddToList()
    {
    	var uri;
    	var Payload;
    	
    	uri = 1; //1表示网址,
    	Payload ="youwokeji.com.cn";//写入的NDEF数据,由于uri=1表明是www.,所以此处网址不用增加www.
    
    	rfidreader.Repeat=0;
    	rfidreader.NDEF_AddRecord(uri,Payload);
    }
    
    

    清空所有的NDEF列表,注意是清空内存中的NDEF列表,此处也不操作NFC标签。

    function ClearList()
    {
    	rfidreader.Repeat=0;
    	rfidreader.NDEF_ClearAllRecords();	
    }
    

    写入,将内存中的NDEF数据列表全部写入到NFC标签中。

    function WriteContent()
    {
    	rfidreader.Repeat=0;
    	rfidreader.NDEF_Write();		
    }
    

    读取, 读取NFC标签中所有的NDEF记录

    function ReadContent()
    {
    	rfidreader.Repeat=0;
    	rfidreader.NDEF_Read();		
    }
    

    4个NDEF接口将全部用回调函数返回所有的数据:

    rfidreader.onResult(function(resultdata)
    {
    	switch(resultdata.FunctionID)
        {
    
    		case 51:
    		
    		if(resultdata.Result>0)
    		{
                
                alert("增加到NDEF列表成功");			
    		}
    		break;
    		case 52:
    		if(resultdata.Result>0)
    		{
    			 alert("清空NDEF列表成功");	
    		}
    		break;
    		case 53:
    		if(resultdata.Result>0)
    		{
    			CardNo = resultdata.CardNo;	
    			Alert("写入成功");
    		}		
    		break
    		case 54:
    		
    		if(resultdata.Result>=0)
    		{
    			CardNo = resultdata.CardNo;
    			uri = resultdata.ValData;
    			ndefdata =resultdata.strData;
    		break;
        }
    }
    );
    

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

  • 相关阅读:
    STL容器内数据删除
    grep 同时满足多个关键字和满足任意关键字
    程序运行栈空间不足程序崩溃问题
    VS2010中设置程序以管理员身份运行
    python 包详解
    select 详解
    Hdu 1166
    CF1204C
    CF1204B
    CF1204A
  • 原文地址:https://www.cnblogs.com/yoworfid/p/14792421.html
Copyright © 2011-2022 走看看