当前位置: 首页 > 科技观察

HarmonyOS-TagNFC流式烧录

时间:2023-03-16 13:50:53 科技观察

前言随着物联网时代的兴起,人们对生活便利性和服务性智能家具的要求逐渐提高,万物互联时代即将到来。Next,IwillgettothetopicandtalkabouttheburningofNFCstreamsforBluetoothandwifi.一、NFC的数据结构首先我们先看下NFC的完整数据结构:示例(蓝牙):0336D2024268772001004800323845390081090037200685031417910306FC58FAA2ECB114114643353846414132454342311701029112464335384641413245434231FC58FAA2ECB1。Example(wifi):0336D202316877200100480032394851008109005720068504141791040600BFAFF22192140C303042464146463232313932170100910101。(注:蓝牙项目MAC地址后面的固定值改为:1411,wifi设备不变:140C)。Bluetooth和wifi数据结构中加粗的部分是可变值,根据你的业务场景变化,其他部分是固定值。我们以蓝牙数据为例:32384539:这是ProductID(十六进制转换)。FC58FAA2ECB1:这是MAC地址。464335384641413245434231:这是MAC十六进制转换(转换时不要加冒号)。464335384641413245434231FC58FAA2ECB1:这个是MAC十六进制转换+MAC地址(注意:这里有问题,蓝牙和wifi项目生成的码流,有的需要拼接,有的不需要拼接,大家可以试试,大家根据获取的码流格式,替换相应部分,主要根据DP平台应用的码流)。ASCII码(十六进制转换)(ASCll码在线工具)。如何获取设备的MAC地址?方法一:您可以通过华为智能生活连接设备,在设置中的设备信息中查看。方法二在华为应用市场搜索“BLE调试助手”。打开“BLE调试助手”,此时会显示所有扫描到的蓝牙设备,MAC地址如图所示(红色箭头指向MAC地址)。2.WriteNFCtagdata1.InstallHWAirLinktesttoolDownloadtheAirLinkinstallationpackageandinstallAirLinktesttooldownload.TowritetheNFCcodestream,firstpreparetheNFCdatacontentthatneedstobewritten(youcangotothelabelmanagementofHuaweiBPplatformtoobtaintheNFCtagcodestream).我这边提供一份码流,进行参照:0336D2024268772001004800323845390081090037200685031417910306FC58FAA2ECB1140c4643353846414132454342311701029112464335384641413245434231FC58FAA2ECB1(注:码流最后加粗的部分,根据项目生成的码流为准,有的码流,需要拼接后面的MAC十六进制转和MACAddress,somecodestreamsdonotneedit,remember,iftheatomizationservicecannotbelaunched,youcantrynotsplicingMAChexadecimalconversionandMACaddresslater).Note:AfterwegettheNFCdatacontent,thecodestreamatthistimeisthedefaultcodestreamautomaticallygeneratedbytheplatform,whichcannotbeuseddirectly.Youneedtoperformhexadecimalconversionaccordingtoyourownproject(ProductIDandMACaddressofthedevice).Replacethedefaultcodestreamoftheplatform(theplaceinboldisthereplacementpart).Step1.StarttheAirLinktool:Step2.Click"add",entertheinvitationcode,b4zd8bz3,andclick"OK".Step3.ClicktheNFCoptiontoentertheNFCreadandwriteinterface,andselectthe"NFCWRITE"option.Step4.TowriteNFCdata,youneedtocheckthe"bytecode"option,andclick"Putintocache".PrecautionsThefirsttwobytesofNFCdatacontent''03XX''shouldberemoved,startingfromD2XXXX,allwillbecopiedtotheinputbox.Forexample:fortheappliedcodestream"0336D202xxxxxxxFC58FAA2ECB1",youshouldenter"D202****xxxxxxxFC58FAA2ECB1**"Otherwise,thewritingfails.WhenweusetheAirLinktoolforthefirsttimetoburn,thereisaprobabilitythatthecodestreamhasbeenwrittenunsuccessfully.Atthistime,weonlyneedtouncheckthe**"bytecode"**option,andthenburn(Ifthewritingstillfails,tryafewmoretimes)itwillshowthatthewritingissuccessful,butthewrittencodestreamiswrong(thismethodmainlysolvestheproblemofunsuccessfulwritingofthecodestream).接下来,我们只需要使用HiDotApplication工具将NFC标签烧空(详见第三部分),然后使用AirLink工具勾选**“字节码”**选项,重写码流即可。.注意:每次触发成功后,建议使用TagInfo工具查看码流,判断触发是否正确。3、烧录空NFC标签数据前提条件:下载并安装HiDotApplication工具。工具已放在去中心化资源中,需要的童鞋可自行领取。Step1.打开HiDotApplication工具,点击WRITE-GIDOT。Step2.点击进去后,将HiDotVersion下的滑块滑动到HIDOT2.0,InputHiDotRecord下的输入框留空,然后点击WRITE按钮,Attachyourtagtoyourhandhelm!会出现提示,然后把tag粘贴到手机上,显示writesuccess就说明烧制成功了。注意:本APP也可以烧NFC标签,但是有两个注意事项。本APP在烧录新的(从未烧录过的)NFC标签时,烧录过程中有时会直接跳转到APP。第一页,烧录不成功。这时候就需要使用本文第二部分的AirLink工具进行烧录了。如果你的NFC标签之前已经烧录过,然后用本APP重新烧录码流,需要把码流的前五个字节**“D202426877”**去掉,然后再烧录,如果没有,burnit会在码流中出现错误(详见第四部分)。例如:要烧录的码流“D202426877200100xxxxxxxFC58FAA2ECB1”,应输入“200100****xxxxxxxFC58FAA2ECB1**”。注意:HiDotApplication工具,你可以将其作为烧录空NFC标签的工具使用。如果要编写NFC码流,推荐使用AirLink工具。4、查看NFC码流前提条件:下载并安装TagInfo工具。工具已放在去中心化资源中,需要的童鞋可自行领取。Step1.打开TagInfoNFC查看工具向右滑动,直到下方出现开始按钮提示,然后点击。步骤2.向下滚动页面并单击我接受按钮。Step3.进入APP页面后,不需要点击“GetGooglePlayServices”,直接点击后台关闭即可,然后将NFC贴在手机上,读取写在NFC上的码流。Step4.APP读取码流后,点击NDEF查看码流。(红线是产品的ProductID和MAC地址)。你可以根据你的项目检查是否正确。答:我现在告诉你,第三部分使用HiDotApplication工具烧录NFC标签之前,为什么要删除码流的前五个字节**“D202426877”**,我给你一个详细的回答。我们刚拿到一个新的NFC标签(从来没有烧过),我们用TagInfo工具查看,NDEF显示是空的,如图:工具查看,NDEF显示为我们编写的正确码流(此码流后MAC十六进制转换和MAC地址不拼接,详见本文第一部分),如图图:然后我们用HiDotApplication工具烧录NFC标签,用TagInfo工具查看,会发现NDEF下有NDEF报文的前五个字节(我的理解是第一次烧录时,NFC标签会保存前五个字节),如果不删除前五个字节,如果使用HiDotApplication工具烧录,会发现在NDEF下编译Record会出错,前五个字节被添加,但此码流不能使用。(可以在上图中看到正确的码流写法进行对比)。小结本文主要讲解如何使用工具烧写NFC码流以及大家应该注意的一些要点。我希望这些可以帮助你。了解更多开源信息,请访问:51CTO开源基础软件社区https://ost.51cto.com。