<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag in NFC</title>
    <link>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019151#M6772</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;you are right.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, I created the erase function using the nfcTag_formatTag function of the linux_libnfc-nct-master library.&lt;/P&gt;&lt;P&gt;Reading never had a problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Src/services/linux_nfc_api.c&lt;/P&gt;&lt;P&gt;…&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int nfcTag_formatTag(unsigned int handle)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;    int ret;&lt;/P&gt;&lt;P&gt;    ret = nativeNfcTag_doFormatTag(handle);&lt;/P&gt;&lt;P&gt;    return ret;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Src/services/interface/nativelNfcTag.cpp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think there is a problem with the „gSyncMutex“&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;…..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INT32 nativeNfcTag_doFormatTag(UINT32 tagHandle)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;    NXPLOG_API_D ("%s: enter", __FUNCTION__);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    tNFA_STATUS status = NFA_STATUS_FAILED;&lt;/P&gt;&lt;P&gt;    UINT32 handle = sCurrentConnectedHandle;&lt;/P&gt;&lt;P&gt;#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)&lt;/P&gt;&lt;P&gt;    isMifare = FALSE;&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    gSyncMutex.lock();&lt;/P&gt;&lt;P&gt;    if (!nativeNfcManager_isNfcActive())&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_E ("%s: Nfc not initialized.", __FUNCTION__);&lt;/P&gt;&lt;P&gt;        goto End;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if (tagHandle != sCurrentConnectedHandle)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_E ("%s: Wrong tag handle!\n)", __FUNCTION__);&lt;/P&gt;&lt;P&gt;        goto End;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    // Do not try to format if tag is already deactivated.&lt;/P&gt;&lt;P&gt;    if (NfcTag::getInstance ().isActivated () == FALSE)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D ("%s: tag already deactivated(no need to format)", __FUNCTION__);&lt;/P&gt;&lt;P&gt;        goto End;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    sem_init (&amp;amp;sFormatSem, 0, 0);&lt;/P&gt;&lt;P&gt;    sFormatOk = FALSE;&lt;/P&gt;&lt;P&gt;    if (NfcTag::getInstance ().mTechLibNfcTypes[handle] == NFA_PROTOCOL_MIFARE)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        status = nativeNfcTag_doReconnect ();&lt;/P&gt;&lt;P&gt;#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)&lt;/P&gt;&lt;P&gt;        isMifare = TRUE;&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D("Format with First Key");&lt;/P&gt;&lt;P&gt;        status = EXTNS_MfcFormatTag(key1,sizeof(key1));&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    else&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        status = NFA_RwFormatTag ();&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    if (status == NFA_STATUS_OK)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D ("%s: wait for completion", __FUNCTION__);&lt;/P&gt;&lt;P&gt;        sem_wait (&amp;amp;sFormatSem);&lt;/P&gt;&lt;P&gt;        status = sFormatOk ? NFA_STATUS_OK : NFA_STATUS_FAILED;&lt;/P&gt;&lt;P&gt;#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)&lt;/P&gt;&lt;P&gt;        if(sFormatOk == TRUE &amp;amp;&amp;amp; isMifare == TRUE)&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_D ("Format with First Key Success");&lt;/P&gt;&lt;P&gt;       }&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    else&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_E ("%s: error status=%u", __FUNCTION__, status);&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    sem_destroy (&amp;amp;sFormatSem);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)&lt;/P&gt;&lt;P&gt;    if(isMifare == TRUE &amp;amp;&amp;amp; sFormatOk != TRUE)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D ("Format with First Key Failed");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        sem_init (&amp;amp;sFormatSem, 0, 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        status = nativeNfcTag_doReconnect ();&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D ("Format with Second Key");&lt;/P&gt;&lt;P&gt;        status = EXTNS_MfcFormatTag(key2,sizeof(key2));&lt;/P&gt;&lt;P&gt;        if (status == NFA_STATUS_OK)&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_D ("%s:2nd try wait for completion", __FUNCTION__);&lt;/P&gt;&lt;P&gt;            sem_wait (&amp;amp;sFormatSem);&lt;/P&gt;&lt;P&gt;            status = sFormatOk ? NFA_STATUS_OK : NFA_STATUS_FAILED;&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;        else&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_E ("%s: error status=%u", __FUNCTION__, status);&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;        sem_destroy (&amp;amp;sFormatSem);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if(sFormatOk)&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_D ("Format with Second Key Success");&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;        else&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_D ("Format with Second Key Failed");&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if (NfcTag::getInstance ().mTechLibNfcTypes[handle] == NFA_PROTOCOL_ISO_DEP)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        nativeNfcTag_doReconnect ();&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;End:&lt;/P&gt;&lt;P&gt;    gSyncMutex.unlock();&lt;/P&gt;&lt;P&gt;    NXPLOG_API_D ("%s: exit", __FUNCTION__);&lt;/P&gt;&lt;P&gt;    return sFormatOk ? NFA_STATUS_OK : NFA_STATUS_FAILED;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Dieter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Von: mario_castaneda &amp;lt;admin@community.nxp.com&amp;gt;&lt;/P&gt;&lt;P&gt;Gesendet: Mittwoch, 29. Januar 2020 19:55&lt;/P&gt;&lt;P&gt;An: Dieter Rudolph &amp;lt;Dieter.Rudolph@truetzschler.de&amp;gt;&lt;/P&gt;&lt;P&gt;Betreff: Re:  - Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NXP Community &amp;lt;https://community.freescale.com/resources/statics/1000/35400-NXP-Community-Email-banner-600x75.jpg&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reply from Mario Ignacio Castaneda Lopez&amp;lt;https://community.nxp.com/people/mario_castaneda?et=watches.email.thread&amp;gt; in NFC - View the full discussion&amp;lt;https://community.nxp.com/message/1261673?commentID=1261673&amp;amp;et=watches.email.thread#comment-1261673&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Feb 2020 09:46:08 GMT</pubDate>
    <dc:creator>dieterrudolph</dc:creator>
    <dc:date>2020-02-05T09:46:08Z</dc:date>
    <item>
      <title>linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag</title>
      <link>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019147#M6768</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;On my linux system with PN7150&lt;/P&gt;&lt;P&gt;nativeNfcTag_doFormatTag blocks if TAG is removed during format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here som debug infos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2020:01:16-10:30:43.112 NxpExtns:&amp;nbsp;&amp;nbsp; Mifare : phLibNfc_GetKeyNumberMFC Key found&lt;BR /&gt;2020:01:16-10:30:43.113 NxpExtns:&amp;nbsp;&amp;nbsp; Mifare : phLibNfc_GetKeyNumberMFC returning = 0x0 Key = 0x1&lt;BR /&gt;2020:01:16-10:30:43.113 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: NFA_SendRawFrame () data_len:3&lt;BR /&gt;2020:01:16-10:30:43.114 NxpTml:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PN54X - I2C Read successful.....&lt;BR /&gt;2020:01:16-10:30:43.114 NxpNciR:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; len =&amp;nbsp;&amp;nbsp; 4 &amp;gt; 41030100&lt;BR /&gt;2020:01:16-10:30:43.115 NxpTml:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PN54X - Posting read message.....&lt;BR /&gt;2020:01:16-10:30:43.115 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: NFA got event 0x010C&lt;BR /&gt;2020:01:16-10:30:43.116 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: nfa_dm_evt_hdlr event: 0xc&lt;BR /&gt;2020:01:16-10:30:43.117 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: nfa_dm_act_send_raw_frame ()&lt;BR /&gt;2020:01:16-10:30:43.117 NxpHal:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read successful status = 0x0&lt;BR /&gt;2020:01:16-10:30:43.118 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; NfcAdaptation::HalDeviceContextDataCallback: len=4&lt;BR /&gt;2020:01:16-10:30:43.118 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: Process Event mt:2&lt;BR /&gt;2020:01:16-10:30:43.119 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: NFC received rsp gid:1&lt;BR /&gt;2020:01:16-10:30:43.119 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: returning from nfa_dm_p2p_prio_logic&amp;nbsp; Disable p2p_prio_logic&lt;BR /&gt;2020:01:16-10:30:43.120 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: nfa_dm_disc_discovery_cback (): event:0x4000&lt;BR /&gt;2020:01:16-10:30:43.120 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: nfa_dm_disc_sm_execute(): state: 0, event:1 disc_flags: 0x21&lt;BR /&gt;2020:01:16-10:30:43.121 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: nfa_dm_disc_new_state(): old_state: 0, new_state: 1 disc_flags: 0x1&lt;BR /&gt;2020:01:16-10:30:43.122 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; Nfc: nfa_dm_disc_sm_execute(): new state: 1,&amp;nbsp; disc_flags: 0x1&lt;BR /&gt;2020:01:16-10:30:43.122 NxpTml:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PN54X - Read requested.....&lt;BR /&gt;2020:01:16-10:30:43.122 NxpTml:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PN54X - Invoking I2C Read.....&lt;BR /&gt;2020:01:16-10:30:43.123 NxpFunc:&amp;nbsp;&amp;nbsp;&amp;nbsp; nativeNfcTag_doFormatTag:2nd try wait for completion&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what can i do ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jan 2020 11:15:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019147#M6768</guid>
      <dc:creator>dieterrudolph</dc:creator>
      <dc:date>2020-01-16T11:15:55Z</dc:date>
    </item>
    <item>
      <title>Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag</title>
      <link>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019148#M6769</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Dieter,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope you are doing great.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please provide more information about the steps that you are following?&lt;/P&gt;&lt;P&gt;Are you writing some NDEF information? Are you erasing the complete tag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Jan 2020 20:49:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019148#M6769</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-01-21T20:49:26Z</dc:date>
    </item>
    <item>
      <title>Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag</title>
      <link>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019149#M6770</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks for your reply,&lt;/P&gt;&lt;P&gt;I hav a function for erasing a a tag.&lt;/P&gt;&lt;P&gt;the erase function hangs in the function nfcTag_formatTag.&lt;/P&gt;&lt;P&gt;Point 1 o.k.&lt;/P&gt;&lt;P&gt;Point 2 never reached if tag is removed at this time.&lt;/P&gt;&lt;P&gt;The callback function "&lt;SPAN lang="en"&gt;onTagDeparture&lt;/SPAN&gt;" is not called.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;error_code ecEraseNFC( void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;error_code ec = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int iRet ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ndef_info_t stNDEFinfo;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;do&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;iRet = nfcTag_isFormatable( g_tagInfos.handle);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; if(!iRet) { ec =EC_NFC_NOT_FORMATABLE;&amp;nbsp;&amp;nbsp; &amp;nbsp;break; }&lt;/P&gt;&lt;P&gt;// Point 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;iRet = nfcTag_formatTag( g_tagInfos.handle);&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( iRet) { ec =EC_NFC_FORMAT;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;break; }&lt;BR /&gt;// Point 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iRet = nfcTag_isNdef( g_tagInfos.handle, &amp;amp;stNDEFinfo);&amp;nbsp;&amp;nbsp; &amp;nbsp;if(!iRet) { ec =EC_NFC_NO_NDEF;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;break; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}while(0); // only once ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return ec;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;Initialization is done by...&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;.....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pv_onAppArrival = onAppArrival;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pv_onAppDepature = onAppDepature;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int iRet;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iRet = nfcManager_doInitialize();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (iRet)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return EC_NFC_IN_USE;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;g_TagCB.onTagArrival = onTagArrival;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;g_TagCB.onTagDeparture = onTagDeparture;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nfcManager_registerTagCallback(&amp;amp;g_TagCB);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nfcManager_enableDiscovery(DEFAULT_NFA_TECH_MASK, 0x01, 0, 0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;Regards &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;Dieter&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Jan 2020 07:06:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019149#M6770</guid>
      <dc:creator>dieterrudolph</dc:creator>
      <dc:date>2020-01-23T07:06:12Z</dc:date>
    </item>
    <item>
      <title>Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag</title>
      <link>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019150#M6771</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Dieter,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As my understanding all this process is working if you do not remove the tag, right?&lt;/P&gt;&lt;P&gt;I have a function for erasing a tag.the erase function hangs in the function nfcTag_formatTag.&lt;/P&gt;&lt;P&gt;Did you create this function for erasing the tag? The library has a specific time to read/write, in this case. But I am not sure if you modify something in your code if you try to read out some tag, and you remove from the PN7150, the host sends an error and keep running.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Jan 2020 18:54:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019150#M6771</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-01-29T18:54:29Z</dc:date>
    </item>
    <item>
      <title>Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag</title>
      <link>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019151#M6772</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mario,&lt;/P&gt;&lt;P&gt;you are right.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, I created the erase function using the nfcTag_formatTag function of the linux_libnfc-nct-master library.&lt;/P&gt;&lt;P&gt;Reading never had a problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Src/services/linux_nfc_api.c&lt;/P&gt;&lt;P&gt;…&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int nfcTag_formatTag(unsigned int handle)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;    int ret;&lt;/P&gt;&lt;P&gt;    ret = nativeNfcTag_doFormatTag(handle);&lt;/P&gt;&lt;P&gt;    return ret;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Src/services/interface/nativelNfcTag.cpp&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think there is a problem with the „gSyncMutex“&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;…..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INT32 nativeNfcTag_doFormatTag(UINT32 tagHandle)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;    NXPLOG_API_D ("%s: enter", __FUNCTION__);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    tNFA_STATUS status = NFA_STATUS_FAILED;&lt;/P&gt;&lt;P&gt;    UINT32 handle = sCurrentConnectedHandle;&lt;/P&gt;&lt;P&gt;#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)&lt;/P&gt;&lt;P&gt;    isMifare = FALSE;&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    gSyncMutex.lock();&lt;/P&gt;&lt;P&gt;    if (!nativeNfcManager_isNfcActive())&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_E ("%s: Nfc not initialized.", __FUNCTION__);&lt;/P&gt;&lt;P&gt;        goto End;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if (tagHandle != sCurrentConnectedHandle)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_E ("%s: Wrong tag handle!\n)", __FUNCTION__);&lt;/P&gt;&lt;P&gt;        goto End;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    // Do not try to format if tag is already deactivated.&lt;/P&gt;&lt;P&gt;    if (NfcTag::getInstance ().isActivated () == FALSE)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D ("%s: tag already deactivated(no need to format)", __FUNCTION__);&lt;/P&gt;&lt;P&gt;        goto End;&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    sem_init (&amp;amp;sFormatSem, 0, 0);&lt;/P&gt;&lt;P&gt;    sFormatOk = FALSE;&lt;/P&gt;&lt;P&gt;    if (NfcTag::getInstance ().mTechLibNfcTypes[handle] == NFA_PROTOCOL_MIFARE)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        status = nativeNfcTag_doReconnect ();&lt;/P&gt;&lt;P&gt;#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)&lt;/P&gt;&lt;P&gt;        isMifare = TRUE;&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D("Format with First Key");&lt;/P&gt;&lt;P&gt;        status = EXTNS_MfcFormatTag(key1,sizeof(key1));&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    else&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        status = NFA_RwFormatTag ();&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    if (status == NFA_STATUS_OK)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D ("%s: wait for completion", __FUNCTION__);&lt;/P&gt;&lt;P&gt;        sem_wait (&amp;amp;sFormatSem);&lt;/P&gt;&lt;P&gt;        status = sFormatOk ? NFA_STATUS_OK : NFA_STATUS_FAILED;&lt;/P&gt;&lt;P&gt;#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)&lt;/P&gt;&lt;P&gt;        if(sFormatOk == TRUE &amp;amp;&amp;amp; isMifare == TRUE)&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_D ("Format with First Key Success");&lt;/P&gt;&lt;P&gt;       }&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    else&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_E ("%s: error status=%u", __FUNCTION__, status);&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;    sem_destroy (&amp;amp;sFormatSem);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)&lt;/P&gt;&lt;P&gt;    if(isMifare == TRUE &amp;amp;&amp;amp; sFormatOk != TRUE)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D ("Format with First Key Failed");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        sem_init (&amp;amp;sFormatSem, 0, 0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        status = nativeNfcTag_doReconnect ();&lt;/P&gt;&lt;P&gt;        NXPLOG_API_D ("Format with Second Key");&lt;/P&gt;&lt;P&gt;        status = EXTNS_MfcFormatTag(key2,sizeof(key2));&lt;/P&gt;&lt;P&gt;        if (status == NFA_STATUS_OK)&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_D ("%s:2nd try wait for completion", __FUNCTION__);&lt;/P&gt;&lt;P&gt;            sem_wait (&amp;amp;sFormatSem);&lt;/P&gt;&lt;P&gt;            status = sFormatOk ? NFA_STATUS_OK : NFA_STATUS_FAILED;&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;        else&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_E ("%s: error status=%u", __FUNCTION__, status);&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;        sem_destroy (&amp;amp;sFormatSem);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if(sFormatOk)&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_D ("Format with Second Key Success");&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;        else&lt;/P&gt;&lt;P&gt;        {&lt;/P&gt;&lt;P&gt;            NXPLOG_API_D ("Format with Second Key Failed");&lt;/P&gt;&lt;P&gt;        }&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if (NfcTag::getInstance ().mTechLibNfcTypes[handle] == NFA_PROTOCOL_ISO_DEP)&lt;/P&gt;&lt;P&gt;    {&lt;/P&gt;&lt;P&gt;        nativeNfcTag_doReconnect ();&lt;/P&gt;&lt;P&gt;    }&lt;/P&gt;&lt;P&gt;End:&lt;/P&gt;&lt;P&gt;    gSyncMutex.unlock();&lt;/P&gt;&lt;P&gt;    NXPLOG_API_D ("%s: exit", __FUNCTION__);&lt;/P&gt;&lt;P&gt;    return sFormatOk ? NFA_STATUS_OK : NFA_STATUS_FAILED;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Dieter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Von: mario_castaneda &amp;lt;admin@community.nxp.com&amp;gt;&lt;/P&gt;&lt;P&gt;Gesendet: Mittwoch, 29. Januar 2020 19:55&lt;/P&gt;&lt;P&gt;An: Dieter Rudolph &amp;lt;Dieter.Rudolph@truetzschler.de&amp;gt;&lt;/P&gt;&lt;P&gt;Betreff: Re:  - Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NXP Community &amp;lt;https://community.freescale.com/resources/statics/1000/35400-NXP-Community-Email-banner-600x75.jpg&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reply from Mario Ignacio Castaneda Lopez&amp;lt;https://community.nxp.com/people/mario_castaneda?et=watches.email.thread&amp;gt; in NFC - View the full discussion&amp;lt;https://community.nxp.com/message/1261673?commentID=1261673&amp;amp;et=watches.email.thread#comment-1261673&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Feb 2020 09:46:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019151#M6772</guid>
      <dc:creator>dieterrudolph</dc:creator>
      <dc:date>2020-02-05T09:46:08Z</dc:date>
    </item>
    <item>
      <title>Re: linux_libnfc-nci-master - with PN7150 - nativeNfcTag_doFormatTag</title>
      <link>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019152#M6773</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Dieter,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was checking your code. I am not sure if you are still facing issues with the tag, however, you could implement a thread that will be polling if the tag is still present or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mario&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Feb 2020 21:40:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NFC/linux-libnfc-nci-master-with-PN7150-nativeNfcTag-doFormatTag/m-p/1019152#M6773</guid>
      <dc:creator>mario_castaneda</dc:creator>
      <dc:date>2020-02-07T21:40:09Z</dc:date>
    </item>
  </channel>
</rss>

