Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Android NfcV读取标记始终位于0x00之前_C#_Android_Xamarin_Nfc_Iso 15693 - Fatal编程技术网

C# Android NfcV读取标记始终位于0x00之前

C# Android NfcV读取标记始终位于0x00之前,c#,android,xamarin,nfc,iso-15693,C#,Android,Xamarin,Nfc,Iso 15693,我对NFC-V标签读取有问题。标签类型为标签it HF-I Plus(TMS37112)。以下是我用来读取数据的代码: private void GetTagInfo(Tag tag){ String[] techList = tag.GetTechList(); for (int i = 0; i < techList.Length; i++) { if(techList[i].Contains("NfcV")){

我对NFC-V标签读取有问题。标签类型为标签it HF-I Plus(TMS37112)。以下是我用来读取数据的代码:

private void GetTagInfo(Tag tag){
        String[] techList = tag.GetTechList();
        for (int i = 0; i < techList.Length; i++) {
            if(techList[i].Contains("NfcV")){
                NfcV nfcv = NfcV.Get (tag);
                nfcv.Connect ();

                var response = nfcv.Transceive(new byte[] {
                    (byte)0x00,
                    (byte)0x23,
                    (byte)0x00,
                    (byte)0x01 });
            }
        }
    }
private void GetTagInfo(Tag-Tag){
String[]techList=tag.GetTechList();
对于(int i=0;i
用c#写,但不是这里的目的(在Xamarin上工作)


不管我使用什么作为第一个块号,我的数据前都有一个0x00。这正常吗?

您看到的是标志字节。该字节是每个NFC-V响应帧的一部分,提供有关命令状态的信息。如果此字节为0x00(或可能为0x80),则命令已成功执行,剩余字节包含命令的响应参数/数据(在您的情况下,读取多个块命令请求从块零开始的一个块)

如果设置了标志字节的第0位,则表示执行错误,第二个字节将按照ISO/IEC 15693-3标准中的定义对错误信息进行编码

因此,典型的NFC-V命令帧(使用
NfcV.transceive()
进行交换时)如下所示:

+-------+--------------+--------------------------------+-------------------------+
| FLAGS | COMMAND CODE | [ADDRESS, if Addressed_flag=1] | COMMAND PARAMETERS/DATA |
+-------+--------------+--------------------------------+-------------------------+
+-------+--------------------------+
| FLAGS | RESPONSE PARAMETERS/DATA |
+-------+--------------------------+
响应框架如下所示:

+-------+--------------+--------------------------------+-------------------------+
| FLAGS | COMMAND CODE | [ADDRESS, if Addressed_flag=1] | COMMAND PARAMETERS/DATA |
+-------+--------------+--------------------------------+-------------------------+
+-------+--------------------------+
| FLAGS | RESPONSE PARAMETERS/DATA |
+-------+--------------------------+

经过一些搜索,我在这里看到,在readSingleBlock的第370行和ReadMultipleBlock的第395行,他避免读取第一个字节。这正常吗?非常感谢你的回答,迈克尔。我找了一段时间来获取nfc-v协议的文档,以检查这个字节是否正常,我仍然没有找到它。所以你的回答对我来说是非常宝贵的。而且你的说明非常明确。