NfcrdlibEx8_HCE_T4T example

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

NfcrdlibEx8_HCE_T4T example

828 次查看
nddona
Contributor I

We have a custom Linux platform where we have successfully made the PN5190 to work as a card reader for years.

Now we want to try out to make it work as a type 4A tag as in example "NfcrdlibEx8_HCE_T4T". We have tried to use the example with the reader library version 7.14.00 but we're getting the same results as reported in the thread: https://community.nxp.com/t5/NFC/HCE-T4T-Example-not-working-with-NXP-NFC-Library-v07-08-00-in/td-p/...

When Android (Samsung S23 ultra) is tapped with NXP "TagInfo" App, it's getting an invalid RATS. Rx buffer receives data starting with 0x11 0xD4 ... etc.

[phacDiscLoop_Sw_Run] Starting Listen Mode
[T4TCardEmulation] Card Activated in Listen mode...
[phpalI14443p4mC_Sw_Activate] RATS: 11 D4 00 8C 26 82 9B FA 12 01 DF 84 5B 00 00 00 30
[phpalI14443p4mC_Sw_Activate] Invalid RATS received...

 

Is it because the phone is trying to talk in NFC-DEP (P2P Mode / SNEP)

Appreciate any help to resolve this issue.

Thanks!

0 项奖励
回复
4 回复数

520 次查看
nddona
Contributor I

Hi,

I have further question related to this topic.

Even though I got our device to work as a type 4 card emulator with "NfcrdlibEx8_HCE_T4T" example, it seems very slow. The application steps are as below.

1. Device runs in the reader (polling) mode

2. A phone is tapped and it reads a card in mobile wallet

3. Immediately turns off RF after reading finishes

4. Re-initialize the RF chip in HCE type 4 card emulator mode (passive listener mode)

5. Sends a URL (NDEF) to the smart phone

The issue is it takes about 1500ms to re-init the RF chip in card emulator mode and send the URL to smartphone.

Is there a faster way to do this, so that user doesn't have to keep the phone holding/tapping ?

When I searched on Google it says that it can be done via type 2 tag as below. But it didn't work. Nothing was received by the phone.



Step 1: Terminate Field 
│ (~1ms)

Step 2: Load NDEF Data 
│ (~3ms)


Step 3: Go Autocoll 

Appreciate if you can guide me on how exactly I can achieve this fast mode switching and a URL is sent to a phone within 500ms.

Thanks!

0 项奖励
回复

507 次查看
nddona
Contributor I

In related to my question above, the code I tried to implement after terminating the field as given below. I can get phhalHw_Autocoll() to return success but I get 0x020A for phhalHw_Pn5190_Instr_ExchangeRFData(). 

phhalHw_Pn5190_Autocoll() is also updated with the below.

phhalHw_Pn5190_Instr_SwitchModeAutocoll(pDataParams,bRfTechnology,PHHAL_HW_PN5190_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY))

 

int card_emulator_main_cutdown(void)

{

    do

    {

        int               ret;

        phStatus_t        status;

        pHal_Hce = phNfcLib_GetDataParams(PH_COMP_HAL);

        TRACE0("NfcLib data params pointers set successfully");

 

        /* ================================================================= */

        /*   STEP 3: STAGE EMULATION PROFILE AND LOAD URL PAYLOAD        */

        /* ================================================================= */

        TRACE0("Configuring hardware target layers and loading URL buffer...");

       

        /* Configure target mode HAL parameters */

        status = phAppHce_HALConfigAutoColl();

        CHECK_STATUS(status);

        if (status != PH_ERR_SUCCESS) {

            TRACE1("phhalHw_TargetInit failed: 0x%04X", status);

            return status;

        }

        /* ================================================================= */

        /*   STEP 4: ENGAGE AUTOCOLL (Autonomous Listening State)         */

        /* ================================================================= */

        TRACE0("Entering sub-100ms Autonomous Listen mode...");

       

        // CRITICAL FIX: Allocate valid storage memory to prevent PH_ASSERT_NULL crashes

        uint8_t * pRxBufferPtr = NULL;

        uint16_t  wRxLengthData = 0;

        uint16_t  wProtocolParams = 0;

        // Execute the function mapping strictly to your HAL's parameter footprint.

        // We pass 'A_MODE' to tell the switch code to select Passive NFC-A Technology.

        status = phhalHw_Autocoll(

            pHal_Hce,

            A_MODE,             // Bitmask flag forcing NFC-A technology profiling

            &pRxBufferPtr,      // Passed as a valid pointer reference to a pointer

            &wRxLengthData,     // Passed as a valid pointer reference to length

            &wProtocolParams    // Passed as a valid pointer reference to parameters

        );

        if ((status & PH_ERR_MASK) == PH_ERR_SUCCESS) {

            TRACE0(" Tap-to-URL switch executed perfectly! Phone hit the antenna field.");

            TRACE1("De-wrapped Activation Protocol Parameters: 0x%04X", wProtocolParams);

            /* ================================================================= */

            /*   STEP 5: PROCESS INCOMING APDU COMMANDS FROM THE PHONE         */

            /* ================================================================= */

            TRACE0("Listening for phone file system read commands...");

           

            // Allocate data exchange buffers

            uint8_t * pDataIn = NULL;

            uint16_t  wDataInLen = 0;

            // Retrieve the initial data packet the phone transmitted right upon activation

            // Your Autocoll snippet already stores the address in pRxBufferPtr / wRxLengthData

            pDataIn = pRxBufferPtr;

            wDataInLen = wRxLengthData;

            // Enter a rapid loop to process the phone's Read commands

            // The phone will send "Select NDEF Application" -> "Select NDEF File" -> "Read Binary"

            //while (1)

            {

                //Use the correct Target Emulation transmit function to bypass the 0x0225 check

                //PH_RECEIVE_RF_ENABLE_EVT_STATUS enables event tracking for the transfer

                status = phhalHw_Pn5190_Instr_ExchangeRFData(

                    pHal_Hce,

                    PH_EXCHANGE_DEFAULT,                  // wOption

                    0,                                    // bTxLastBits (0 indicates complete 8-bit byte layout)

                    0x05,                                 // bRespControl: Bitmask 0x04 (Event Status) | 0x01 (Rx Status)

                    aNdefFile,                            // Your URL array structure

                    23,                                   // Size of your URL data payload

                    &pRxBufferPtr,                          // Address of your response data pointer

                    &wRxLengthData                        // Address of your incoming length tracker

                );

           

                if (status == PH_ERR_SUCCESS) {

                    TRACE0(" Single-shot URL packet injected successfully. Task complete!");

                } else {

                    TRACE1("Injection status / timeout: 0x%04X (Phone likely disconnected cleanly)", status);

                }

            }

        } else {

            TRACE1("Autocoll exited, timed out, or dropped with status: 0x%04X", status);

        }

    } while(0);

    return 0;

}

 

// /* Mandatory NDEF file. It's set using phceT4T_SetElementaryFile. */

uint8_t aNdefFile[] = {

    /* --- MANDATORY CONTACTLESS TRANSPORT HEADER --- */

    //0x02,       // 1. PCB Byte: Configures this frame as a Part 4 I-Block (Block Number 0)

    0x00, 0x13, // 1. T4T Container Length Indicator (19 bytes total payload)

    0xD1,       // 2. NDEF Record Header (MB=1, ME=1, SR=1, TNF=0x01 Well-Known Type)

    0x01,       // 3. Type Length (1 byte long name)

    0x0F,       // 4. Payload Length (15 bytes for prefix + string)

    0x55,       // 5. Record Type: 'U' (0x55 for URI record)

    0x02,       // 6. URI Identifier Prefix: Code 0x02 maps to "https://www."

   

    // 7. URI Payload String of 14bytes

    0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww, 0xww,

     /* --- MANDATORY SMART CARD STATUS TRAILER --- */

    0x90, 0x00  // 21-22. APDU Success Status (tells Android the data read is complete)

};

Log output:

06-16 17:34:31.600 26047 27687 E nfc : [card_emulator_main_cutdown] NfcLib data params pointers set successfully

06-16 17:34:31.600 26047 27687 E nfc : [card_emulator_main_cutdown] Configuring hardware target layers and loading URL buffer...

06-16 17:34:31.605 26047 27687 E nfc : [card_emulator_main_cutdown] Entering sub-100ms Autonomous Listen mode...

06-16 17:34:31.607 26047 27999 V nfc : [socket_send_thread] Entered socketSend

06-16 17:34:31.607 26047 27999 V nfc :

06-16 17:34:32.456 26047 27687 E nfc : [card_emulator_main_cutdown] Tap-to-URL switch executed perfectly! Phone hit the antenna field.

06-16 17:34:32.456 26047 27687 W nfc : [card_emulator_main_cutdown] De-wrapped Activation Protocol Parameters: 0x0100

06-16 17:34:32.456 26047 27687 E nfc : [card_emulator_main_cutdown] Listening for phone file system read commands...

06-16 17:34:32.456 26047 27687 W nfc : [card_emulator_main_cutdown] Injection status / timeout: 0x020A (Phone likely disconnected cleanly)

 

 

0 项奖励
回复

774 次查看
nddona
Contributor I
This issue is solved by disabling some macros and updating the SAK to correct value 0x20.
0 项奖励
回复

723 次查看
Fabian_R
NXP TechSupport
NXP TechSupport

Hello sir,

Thank you for letting me know. I will address this for the respective clarifications and updates.

Have a great day!

Best Regards,
Fabian
0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2372202%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ENfcrdlibEx8_HCE_T4T%20%E7%A4%BA%E4%BE%8B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2372202%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3E%E6%88%91%E4%BB%AC%E6%9C%89%E4%B8%80%E4%B8%AA%E5%AE%9A%E5%88%B6%E7%9A%84%20Linux%20%E5%B9%B3%E5%8F%B0%EF%BC%8C%E5%A4%9A%E5%B9%B4%E6%9D%A5%EF%BC%8C%E6%88%91%E4%BB%AC%E5%B7%B2%E7%BB%8F%E6%88%90%E5%8A%9F%E5%9C%B0%E5%B0%86%20PN5190%20%E7%94%A8%E4%BD%9C%E8%AF%BB%E5%8D%A1%E5%99%A8%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E7%8E%B0%E5%9C%A8%EF%BC%8C%E6%88%91%E4%BB%AC%E8%A6%81%E5%B0%9D%E8%AF%95%E5%B0%86%E5%85%B6%E4%BD%9C%E4%B8%BA%204A%20%E5%9E%8B%E6%A0%87%E7%AD%BE%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%A6%82%E7%A4%BA%E4%BE%8B%22NfcrdlibEx8_HCE_T4T%22%20%E3%80%82%E6%88%91%E4%BB%AC%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%207.14.00%20%E7%89%88%E6%9C%AC%E7%9A%84%E9%98%85%E8%AF%BB%E5%99%A8%E5%BA%93%E4%BD%BF%E7%94%A8%E8%AF%A5%E7%A4%BA%E4%BE%8B%EF%BC%8C%E4%BD%86%E5%BE%97%E5%88%B0%E7%9A%84%E7%BB%93%E6%9E%9C%E4%B8%8E%E4%B8%BB%E9%A2%98%E4%B8%AD%E6%8A%A5%E5%91%8A%E7%9A%84%E7%9B%B8%E5%90%8C%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FNFC%2FHCE-T4T-Example-not-working-with-NXP-NFC-Library-v07-08-00-in%2Ftd-p%2F1686764%22%20target%3D%22_blank%22%3E%EF%BC%9A%20https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FNFC%2FHCE-T4T-Example-not-working-with-NXP-NFC-Library-v07-08-00-in%2Ftd-p%2F1686764%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E5%BD%93%E4%BD%BF%E7%94%A8%E6%81%A9%E6%99%BA%E6%B5%A6%20%22%20TagInfo%20%22%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%AA%83%E5%90%AC%E5%AE%89%E5%8D%93%EF%BC%88%E4%B8%89%E6%98%9F%20S23%20Ultra%EF%BC%89%E6%97%B6%EF%BC%8C%E5%AE%83%E5%BE%97%E5%88%B0%E7%9A%84%20RATS%20%E6%97%A0%E6%95%88%E3%80%82Rx%20%E7%BC%93%E5%86%B2%E5%8C%BA%E6%8E%A5%E6%94%B6%E4%BB%8E%200x11%200xD4%20...%20%E7%AD%89%E5%BC%80%E5%A7%8B%E7%9A%84%E6%95%B0%E6%8D%AE%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%5BphacDiscLoop_Sw_Run%5D%20Starting%20Listen%20Mode%3CBR%20%2F%3E%5BT4TCardEmulation%5D%20Card%20Activated%20in%20Listen%20mode...%3CBR%20%2F%3E%5BphpalI14443p4mC_Sw_Activate%5D%20RATS%EF%BC%9A11%20D4%2000%208C%2026%2082%209B%20FA%2012%2001%20DF%2084%205B%2000%2000%2000%2030%3CBR%20%2F%3E%5BphpalI14443p4mC_Sw_Activate%5D%20Invalid%20RATS%20received...%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3E%E6%98%AF%E5%9B%A0%E4%B8%BA%E6%89%8B%E6%9C%BA%E8%AF%95%E5%9B%BE%E4%BB%A5%3CSTRONG%3ENFC-DEP%EF%BC%88P2P%20%E6%A8%A1%E5%BC%8F%2FSNEP%EF%BC%89%3C%2FSTRONG%3E%E8%BF%9B%E8%A1%8C%E9%80%9A%E8%AF%9D%E5%90%97%EF%BC%9F%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E8%AF%B7%E5%B8%AE%E5%8A%A9%E8%A7%A3%E5%86%B3%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E8%B0%A2%E8%B0%A2%E6%82%A8%EF%BC%81%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2372819%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20NfcrdlibEx8_HCE_T4T%20example%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2372819%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E7%A6%81%E7%94%A8%E6%9F%90%E4%BA%9B%E5%AE%8F%E5%B9%B6%E5%B0%86%20SAK%20%E6%9B%B4%E6%96%B0%E4%B8%BA%E6%AD%A3%E7%A1%AE%E7%9A%84%200x20%20%E5%80%BC%EF%BC%8C%E5%B0%B1%E5%8F%AF%E4%BB%A5%E8%A7%A3%E5%86%B3%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%E3%80%82%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2374562%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20NfcrdlibEx8_HCE_T4T%20example%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2374562%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%E5%85%88%E7%94%9F%EF%BC%8C%3C%2FP%3E%0A%3CP%3E%E8%B0%A2%E8%B0%A2%E4%BD%A0%E5%91%8A%E8%AF%89%E6%88%91%E3%80%82%E6%88%91%E5%B0%86%E5%AF%B9%E6%AD%A4%E8%BF%9B%E8%A1%8C%E8%AF%B4%E6%98%8E%E5%92%8C%E6%9B%B4%E6%96%B0%E3%80%82%3C%2FP%3E%0A%3CP%3E%E7%A5%9D%E4%BD%A0%E6%84%89%E5%BF%AB%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2381683%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20NfcrdlibEx8_HCE_T4T%20example%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2381683%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%85%B3%E4%BA%8E%E6%88%91%E4%B8%8A%E9%9D%A2%E6%8F%90%E5%87%BA%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E6%88%91%E5%9C%A8%E7%BB%88%E6%AD%A2%E8%AF%A5%E5%AD%97%E6%AE%B5%E5%90%8E%E5%B0%9D%E8%AF%95%E5%AE%9E%E7%8E%B0%E7%9A%84%E4%BB%A3%E7%A0%81%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%E3%80%82%E6%88%91%E8%83%BD%E8%AE%A9%20phhalHw_Autocoll()%20%E8%BF%94%E5%9B%9E%E6%88%90%E5%8A%9F%EF%BC%8C%E4%BD%86%20phhalHw_Pn5190_Instr_ExchangeRFData()%20%E5%8D%B4%E8%BF%94%E5%9B%9E%E4%BA%86%200x020A%E3%80%82%26nbsp%3B%3C%2FP%3E%3CP%3EphhalHw_Pn5190_Autocoll()%20%E4%B9%9F%E5%B7%B2%E6%A0%B9%E6%8D%AE%E4%BB%A5%E4%B8%8B%E5%86%85%E5%AE%B9%E8%BF%9B%E8%A1%8C%E4%BA%86%E6%9B%B4%E6%96%B0%E3%80%82%3C%2FP%3E%3CP%3E%3CSPAN%3EphhalHw_Pn5190_Instr_SwitchModeAutocoll%3C%2FSPAN%3E%3CSPAN%3E(pDataParams%2CbRfTechnology%2C%3CFONT%20color%3D%22%230000FF%22%3E%3CSTRONG%3EPHHAL_HW_PN5190_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY%3C%2FSTRONG%3E%3C%2FFONT%3E))%3C%2FSPAN%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3Eint%20card_emulator_main_cutdown(void)%3C%2FP%3E%3CP%3E%7B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20do%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%7B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20int%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ret%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20phStatus_t%20%20%20%20%20%20%20%20status%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20pHal_Hce%20%3D%20phNfcLib_GetDataParams(PH_COMP_HAL)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20TRACE0(%22NfcLib%20%E6%95%B0%E6%8D%AE%E5%8F%82%E6%95%B0%E6%8C%87%E9%92%88%E5%B7%B2%E6%88%90%E5%8A%9F%E8%AE%BE%E7%BD%AE%22)%3B%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20*%2F%3C%2FP%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3E%3CLI-EMOJI%20id%3D%22lia_backhand-index-pointing-right%22%20title%3D%22%3Abackhand_index_pointing_right%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3CSPAN%3E%E7%AC%AC%203%20%E6%AD%A5%EF%BC%9A%E6%9A%82%E5%AD%98%E4%BB%BF%E7%9C%9F%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%B9%B6%E5%8A%A0%E8%BD%BD%20URL%20%E8%B4%9F%E8%BD%BD%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20*%2F%3C%2FP%3E%3CP%3ETRACE0%20(%22)%20%E9%85%8D%E7%BD%AE%E7%A1%AC%E4%BB%B6%E7%9B%AE%E6%A0%87%E5%B1%82%E5%92%8C%E5%8A%A0%E8%BD%BD%20URL%20%E7%BC%93%E5%86%B2%E5%8C%BA...%22)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%E9%85%8D%E7%BD%AE%E7%9B%AE%E6%A0%87%E6%A8%A1%E5%BC%8F%20HAL%20%E5%8F%82%E6%95%B0%20*%2F%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20status%20%3D%20phAppHce_HALConfigAutoColl()%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20CHECK_STATUS(status)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20if%20(status%20!%3D%20PH_ERR_SUCCESS)%20%7B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20TRACE1(%22phhalHw_TargetInit%20%E5%A4%B1%E8%B4%A5%EF%BC%9A0x%2504X%22%2C%20status)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%E8%BF%94%E5%9B%9E%E7%8A%B6%E6%80%81%EF%BC%9B%3C%2FP%3E%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20*%2F%3C%2FP%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3E%3CLI-EMOJI%20id%3D%22lia_backhand-index-pointing-right%22%20title%3D%22%3Abackhand_index_pointing_right%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3CSPAN%3E%20%E7%AC%AC%204%20%E6%AD%A5%EF%BC%9A%E8%BF%9B%E5%85%A5%20AUTOCOLL%EF%BC%88%E8%87%AA%E4%B8%BB%E8%81%86%E5%90%AC%E7%8A%B6%E6%80%81%EF%BC%89%20%20%20%20%20%20%20%20%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20*%2F%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20TRACE0(%22%E8%BF%9B%E5%85%A5%E5%B0%8F%E4%BA%8E100%E6%AF%AB%E7%A7%92%E7%9A%84%E8%87%AA%E4%B8%BB%E7%9B%91%E5%90%AC%E6%A8%A1%E5%BC%8F...%22)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2F%20%E5%85%B3%E9%94%AE%E4%BF%AE%E5%A4%8D%EF%BC%9A%E5%88%86%E9%85%8D%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%98%E5%82%A8%E5%86%85%E5%AD%98%EF%BC%8C%E4%BB%A5%E9%98%B2%E6%AD%A2%E5%9B%A0%20PH_ASSERT_NULL%20%E5%AF%BC%E8%87%B4%E7%9A%84%E5%B4%A9%E6%BA%83%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20uint8_t%20*%20pRxBufferPtr%20%3D%20NULL%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20uint16_t%20%20wRxLengthData%20%3D%200%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20uint16_t%20%20wProtocolParams%20%3D%200%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2F%20%E4%B8%A5%E6%A0%BC%E6%8C%89%E7%85%A7%E6%82%A8%20HAL%20%E7%9A%84%E5%8F%82%E6%95%B0%E7%BB%93%E6%9E%84%E6%89%A7%E8%A1%8C%E5%87%BD%E6%95%B0%E6%98%A0%E5%B0%84%E3%80%82%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2F%20%E6%88%91%E4%BB%AC%E5%B0%86%E2%80%9CA_MODE%E2%80%9D%E4%BD%9C%E4%B8%BA%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92%EF%BC%8C%E4%BB%A5%E6%8C%87%E7%A4%BA%E5%BC%80%E5%85%B3%E4%BB%A3%E7%A0%81%E9%80%89%E6%8B%A9%E8%A2%AB%E5%8A%A8%E5%BC%8F%20NFC-A%20%E6%8A%80%E6%9C%AF%E3%80%82%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20status%20%3D%20phhalHw_Autocoll(%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20pHal_Hce%EF%BC%8C%3C%2FP%3E%3CP%3EA_MODE%2C%2F%2F%E4%BD%8D%E6%8E%A9%E7%A0%81%E6%A0%87%E5%BF%97%E5%BC%BA%E5%88%B6%E8%BF%9B%E8%A1%8C%20NFC-A%20%E6%8A%80%E6%9C%AF%E5%88%86%E6%9E%90%3C%2FP%3E%3CP%3E%26amp%3B%20prxBufferPtr%2C%2F%2F%E4%BD%9C%E4%B8%BA%E6%8C%87%E9%92%88%E7%9A%84%E6%9C%89%E6%95%88%E6%8C%87%E9%92%88%E5%BC%95%E7%94%A8%E4%BC%A0%E9%80%92%3C%2FP%3E%3CP%3E%26amp%3B%20wrxLengthData%2C%2F%2F%E4%BD%9C%E4%B8%BA%E5%AF%B9%E9%95%BF%E5%BA%A6%E7%9A%84%E6%9C%89%E6%95%88%E6%8C%87%E9%92%88%E5%BC%95%E7%94%A8%E4%BC%A0%E9%80%92%3C%2FP%3E%3CP%3E%26amp%3B%20wProtocolParams%2F%2F%E4%BD%9C%E4%B8%BA%E5%AF%B9%E5%8F%82%E6%95%B0%E7%9A%84%E6%9C%89%E6%95%88%E6%8C%87%E9%92%88%E5%BC%95%E7%94%A8%E4%BC%A0%E9%80%92%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20if%20((status%26amp%3B%20PH_ERR_MASK)%20%3D%3D%20PH_ERR_SUCCESS)%20%7B%3C%2FP%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20TRACE0(%22%3C%2FSPAN%3E%3CSPAN%3E%3CLI-EMOJI%20id%3D%22lia_rocket%22%20title%3D%22%3Arocket%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3CSPAN%3E%E7%82%B9%E6%8C%89%E5%88%B0%20URL%20%E7%9A%84%E5%88%87%E6%8D%A2%E6%89%A7%E8%A1%8C%E5%BE%97%E5%BE%88%E5%AE%8C%E7%BE%8E%EF%BC%81%E7%94%B5%E8%AF%9D%E6%92%9E%E5%88%B0%E4%BA%86%E5%A4%A9%E7%BA%BF%E5%9C%BA%E3%80%82%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20TRACE1(%22%E8%A7%A3%E5%8C%85%E5%90%8E%E7%9A%84%E6%BF%80%E6%B4%BB%E5%8D%8F%E8%AE%AE%E5%8F%82%E6%95%B0%EF%BC%9A0x%2504X%22%2C%20wProtocolParams)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20*%2F%3C%2FP%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%26nbsp%3B%20%3C%2FSPAN%3E%3CSPAN%3E%3CLI-EMOJI%20id%3D%22lia_backhand-index-pointing-right%22%20title%3D%22%3Abackhand_index_pointing_right%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3CSPAN%3E%20%E6%AD%A5%E9%AA%A4%205%EF%BC%9A%E5%A4%84%E7%90%86%E6%9D%A5%E8%87%AA%E6%89%8B%E6%9C%BA%E7%9A%84%E4%BC%A0%E5%85%A5%20APDU%20%E5%91%BD%E4%BB%A4%20%20%20%20%20%20%20%20%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F*%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20*%2F%3C%2FP%3E%3CP%3ETRACE0%20(%22%20%E6%AD%A3%E5%9C%A8%E7%9B%91%E5%90%AC%E7%94%B5%E8%AF%9D%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E8%AF%BB%E5%8F%96%E5%91%BD%E4%BB%A4...%22)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2F%20%E5%88%86%E9%85%8D%E6%95%B0%E6%8D%AE%E4%BA%A4%E6%8D%A2%E7%BC%93%E5%86%B2%E5%8C%BA%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20uint8_t%20*%20pDataIn%20%3D%20NULL%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20uint16_t%20%20wDataInLen%20%3D%200%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2F%20%E8%8E%B7%E5%8F%96%E6%89%8B%E6%9C%BA%E5%9C%A8%E6%BF%80%E6%B4%BB%E5%90%8E%E7%AB%8B%E5%8D%B3%E5%8F%91%E9%80%81%E7%9A%84%E5%88%9D%E5%A7%8B%E6%95%B0%E6%8D%AE%E5%8C%85%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2F%20%E6%82%A8%E7%9A%84%20Autocoll%20%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%E5%B7%B2%E7%BB%8F%E5%B0%86%E5%9C%B0%E5%9D%80%E5%AD%98%E5%82%A8%E5%9C%A8%20pRxBufferPtr%20%2F%20wRxLengthData%20%E4%B8%AD%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20pDataIn%20%3D%20pRxBufferPtr%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20wDataInLen%20%3D%20wRxLengthData%3B%3C%2FP%3E%3CP%3E%2F%2F%E8%BF%9B%E5%85%A5%E5%BF%AB%E9%80%9F%E5%BE%AA%E7%8E%AF%E6%9D%A5%E5%A4%84%E7%90%86%E6%89%8B%E6%9C%BA%E7%9A%84%20Read%20%E5%91%BD%E4%BB%A4%3C%2FP%3E%3CP%3E%2F%2F%E6%89%8B%E6%9C%BA%E5%B0%86%E5%8F%91%E9%80%81%20%22%20%E9%80%89%E6%8B%A9%20NDEF%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20%22-%26gt%3B%20%22%20%E9%80%89%E6%8B%A9%20NDEF%20%E6%96%87%E4%BB%B6%20%22-%26gt%3B%20%22%20Read%20%E4%BA%8C%E8%BF%9B%E5%88%B6%20%22%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2Fwhile%20(1)%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2F%E4%BD%BF%E7%94%A8%E6%AD%A3%E7%A1%AE%E7%9A%84%E2%80%9C%E7%9B%AE%E6%A0%87%E4%BB%BF%E7%9C%9F%E2%80%9D%E5%8F%91%E9%80%81%E5%87%BD%E6%95%B0%E6%9D%A5%E7%BB%95%E8%BF%87%200x0225%20%E6%A0%A1%E9%AA%8C%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%2F%2FPH_RECEIVE_RF_ENABLE_EVT_STATUS%20%E5%90%AF%E7%94%A8%E4%BC%A0%E8%BE%93%E7%9A%84%E4%BA%8B%E4%BB%B6%E8%B7%9F%E8%B8%AA%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20status%20%3D%20phhalHw_Pn5190_Instr_ExchangeRFData(%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20pHal_Hce%EF%BC%8C%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20PH_EXCHANGE_DEFAULT%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20wOption%3C%2FP%3E%3CP%3E0%2C%2F%2FbtxLastBits%EF%BC%880%20%E8%A1%A8%E7%A4%BA%E5%AE%8C%E6%95%B4%E7%9A%84%208%20%E4%BD%8D%E5%AD%97%E8%8A%82%E5%B8%83%E5%B1%80%EF%BC%89%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%200x05%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20bRespControl%EF%BC%9A%E4%BD%8D%E6%8E%A9%E7%A0%81%200x04%EF%BC%88%E4%BA%8B%E4%BB%B6%E7%8A%B6%E6%80%81%EF%BC%89%7C%200x01%EF%BC%88%E6%8E%A5%E6%94%B6%E7%8A%B6%E6%80%81%EF%BC%89%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20aNdefFile%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E6%82%A8%E7%9A%84%20URL%20%E6%95%B0%E7%BB%84%E7%BB%93%E6%9E%84%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%2023%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20URL%20%E6%95%B0%E6%8D%AE%E8%B4%9F%E8%BD%BD%E7%9A%84%E5%A4%A7%E5%B0%8F%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%26amp%3BpRxBufferPtr%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E5%93%8D%E5%BA%94%E6%95%B0%E6%8D%AE%E6%8C%87%E9%92%88%E7%9A%84%E5%9C%B0%E5%9D%80%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%26amp%3BwRxLengthData%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%E4%BC%A0%E5%85%A5%E9%95%BF%E5%BA%A6%E8%B7%9F%E8%B8%AA%E5%99%A8%E7%9A%84%E5%9C%B0%E5%9D%80%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20if%20(status%20%3D%3D%20PH_ERR_SUCCESS)%20%7B%3C%2FP%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20TRACE0(%22%3C%2FSPAN%3E%3CSPAN%3E%3CLI-EMOJI%20id%3D%22lia_party-popper%22%20title%3D%22%3Aparty_popper%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3CSPAN%3E%20%E5%8D%95%E6%AC%A1URL%E6%95%B0%E6%8D%AE%E5%8C%85%E6%B3%A8%E5%85%A5%E6%88%90%E5%8A%9F%E3%80%82%E4%BB%BB%E5%8A%A1%E5%AE%8C%E6%88%90%EF%BC%81%22)%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7D%20%E5%90%A6%E5%88%99%20%7B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20TRACE1(%22%E6%B3%A8%E5%85%A5%E7%8A%B6%E6%80%81%2F%E8%B6%85%E6%97%B6%EF%BC%9A0x%2504X%EF%BC%88%E6%89%8B%E6%9C%BA%E5%8F%AF%E8%83%BD%E5%B7%B2%E6%AD%A3%E5%B8%B8%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%EF%BC%89%22%2C%20%E7%8A%B6%E6%80%81)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FP%3E%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%7D%20%E5%90%A6%E5%88%99%20%7B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20TRACE1(%22Autocoll%20%E5%B7%B2%E9%80%80%E5%87%BA%E3%80%81%E8%B6%85%E6%97%B6%E6%88%96%E8%A2%AB%E4%B8%A2%E5%BC%83%EF%BC%8C%E7%8A%B6%E6%80%81%E4%B8%BA%EF%BC%9A0x%2504X%22%2C%20status)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%7D%20while(0)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20return%200%3B%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%2F%2F%20%2F*%20%E5%BF%85%E9%9C%80%E7%9A%84%20NDEF%20%E6%96%87%E4%BB%B6%E3%80%82%E5%AE%83%E6%98%AF%E9%80%9A%E8%BF%87%20phceT4T_SetElementaryFile%20%E5%87%BD%E6%95%B0%E8%AE%BE%E7%BD%AE%E7%9A%84%E3%80%82%20*%2F%3C%2FP%3E%3CP%3Euint8_t%20aNdefFile%5B%5D%20%3D%20%7B%3C%2FP%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%2F*%20---%20%3C%2FSPAN%3E%3CSPAN%3E%3CLI-EMOJI%20id%3D%22lia_backhand-index-pointing-right%22%20title%3D%22%3Abackhand_index_pointing_right%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3CSPAN%3E%E5%BC%BA%E5%88%B6%E6%80%A7%E5%85%8D%E6%8E%A5%E8%A7%A6%E5%BC%8F%E4%BC%A0%E8%BE%93%E6%8E%A5%E5%A4%B4---*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%2F%2F0x02%2C%2F%2F1.PCB%20%E5%AD%97%E8%8A%82%EF%BC%9A%E5%B0%86%E6%AD%A4%E5%B8%A7%E9%85%8D%E7%BD%AE%E4%B8%BA%E7%AC%AC%204%20%E9%83%A8%E5%88%86%20I-Block%EF%BC%88%E5%8C%BA%E5%9D%97%E5%8F%B7%200%EF%BC%89%3C%2FP%3E%3CP%3E0x00%2C%200x13%2C%2F%2F1.T4T%20%E5%AE%B9%E5%99%A8%E9%95%BF%E5%BA%A6%E6%8C%87%E7%A4%BA%E5%99%A8%EF%BC%88%E6%80%BB%E6%9C%89%E6%95%88%E8%BD%BD%E8%8D%B7%2019%20%E5%AD%97%E8%8A%82%EF%BC%89%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%200xD1%2C%20%20%20%20%20%20%20%2F%2F%202.%20NDEF%20%E8%AE%B0%E5%BD%95%E5%A4%B4%EF%BC%88MB%3D1%EF%BC%8CME%3D1%EF%BC%8CSR%3D1%EF%BC%8CTNF%3D0x01%20%E5%B7%B2%E7%9F%A5%E7%B1%BB%E5%9E%8B%EF%BC%89%3C%2FP%3E%3CP%3E0x01%2C%2F%2F3.%E7%B1%BB%E5%9E%8B%E9%95%BF%E5%BA%A6%EF%BC%881%20%E5%AD%97%E8%8A%82%E9%95%BF%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%89%3C%2FP%3E%3CP%3E0x0F%2C%2F%2F4.%E6%9C%89%E6%95%88%E8%BD%BD%E8%8D%B7%E9%95%BF%E5%BA%A6%EF%BC%88%E5%89%8D%E7%BC%80%20%2B%20%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%BA%2015%20%E5%AD%97%E8%8A%82%EF%BC%89%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%200x55%2C%20%20%20%20%20%20%20%2F%2F%205.%20%E8%AE%B0%E5%BD%95%E7%B1%BB%E5%9E%8B%EF%BC%9A'U'%EF%BC%880x55%20%E8%A1%A8%E7%A4%BA%20URI%20%E8%AE%B0%E5%BD%95%EF%BC%89%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%200x02%2C%20%20%20%20%20%20%20%2F%2F%206.%20URI%20%E6%A0%87%E8%AF%86%E7%AC%A6%E5%89%8D%E7%BC%80%EF%BC%9A%E4%BB%A3%E7%A0%81%200x02%20%E5%AF%B9%E5%BA%94%22%3CA%20href%3D%22https%3A%2F%2Fwww.%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ehttps%3A%2F%2Fwww%E3%80%82%3C%2FA%3E%22%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%2F%2F%207.%2014%E5%AD%97%E8%8A%82%E7%9A%84URI%E6%9C%89%E6%95%88%E8%BD%BD%E8%8D%B7%E5%AD%97%E7%AC%A6%E4%B8%B2%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%200xww%2C%3C%2FP%3E%3CP%3E%3CSPAN%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%2F*%20---%20%3C%2FSPAN%3E%3CSPAN%3E%3CLI-EMOJI%20id%3D%22lia_backhand-index-pointing-right%22%20title%3D%22%3Abackhand_index_pointing_right%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3CSPAN%3E%20%E5%BC%BA%E5%88%B6%E6%80%A7%E6%99%BA%E8%83%BD%E5%8D%A1%E7%8A%B6%E6%80%81%E9%A2%84%E5%91%8A%E7%89%87%20---%20*%2F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%200x90%2C%200x00%20%20%2F%2F%2021-22.APDU%20%E6%88%90%E5%8A%9F%E7%8A%B6%E6%80%81%EF%BC%88%E5%91%8A%E7%9F%A5%20Android%20%E6%95%B0%E6%8D%AE%E8%AF%BB%E5%8F%96%E5%B7%B2%E5%AE%8C%E6%88%90%EF%BC%89%3C%2FP%3E%3CP%3E%7D%3B%3C%2FP%3E%3CP%3E%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA%EF%BC%9A%3C%2FP%3E%3CP%3E06-16%2017%3A34%3A31.600%2026047%2027687%20E%20nfc%20%3A%20%5Bcard_emulator_main_cutdown%5D%20NfcLib%20%E6%95%B0%E6%8D%AE%E5%8F%82%E6%95%B0%E6%8C%87%E9%92%88%E5%B7%B2%E6%88%90%E5%8A%9F%E8%AE%BE%E7%BD%AE%3C%2FP%3E%3CP%3E06-16%2017%3A34%3A31.600%2026047%2027687%20E%20nfc%EF%BC%9A%5Bcard_emulator_main_cutdown%5D%20%E9%85%8D%E7%BD%AE%E7%A1%AC%E4%BB%B6%E7%9B%AE%E6%A0%87%E5%B1%82%E5%92%8C%E5%8A%A0%E8%BD%BD%20URL%20%E7%BC%93%E5%86%B2%E5%8C%BA...%3C%2FP%3E%3CP%3E06-16%2017%3A34%3A31.605%2026047%2027687%20E%20nfc%20%3A%20%5Bcard_emulator_main_cutdown%5D%20%E8%BF%9B%E5%85%A5%E4%BA%9A100%E6%AF%AB%E7%A7%92%E8%87%AA%E4%B8%BB%E7%9B%91%E5%90%AC%E6%A8%A1%E5%BC%8F%E2%80%A6%E2%80%A6%3C%2FP%3E%3CP%3E06-16%2017%3A34%3A31.607%2026047%2027999%20V%20nfc%20%3A%20%5Bsocket_send_thread%5D%20%E8%BF%9B%E5%85%A5%20socketSend%3C%2FP%3E%3CP%3E06-16%2017%3A34%3A31.607%2026047%2027999%20V%20nfc%20%3A%3C%2FP%3E%3CP%3E%3CSPAN%3E06-16%2017%3A34%3A32.456%2026047%2027687%20E%20nfc%20%3A%20%5Bcard_emulator_main_cutdown%5D%20%3C%2FSPAN%3E%3CSPAN%3E%3CLI-EMOJI%20id%3D%22lia_rocket%22%20title%3D%22%3Arocket%3A%22%3E%3C%2FLI-EMOJI%3E%3C%2FSPAN%3E%3CSPAN%3E%E7%82%B9%E6%8C%89%E5%88%B0%20URL%20%E7%9A%84%E5%88%87%E6%8D%A2%E6%89%A7%E8%A1%8C%E5%BE%97%E5%BE%88%E5%AE%8C%E7%BE%8E%EF%BC%81%E7%94%B5%E8%AF%9D%E6%92%9E%E5%88%B0%E4%BA%86%E5%A4%A9%E7%BA%BF%E5%9C%BA%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E06-16%2017%3A34%3A32.456%2026047%2027687%20W%20nfc%20%3A%20%5Bcard_emulator_main_cutdown%5D%20%E8%A7%A3%E5%B0%81%E8%A3%85%E7%9A%84%E6%BF%80%E6%B4%BB%E5%8D%8F%E8%AE%AE%E5%8F%82%E6%95%B0%EF%BC%9A0x0100%3C%2FP%3E%3CP%3E06-16%2017%3A34%3A32.456%2026047%2027687%20E%20nfc%EF%BC%9A%5Bcard_emulator_main_cutdown%5D%20%E6%AD%A3%E5%9C%A8%E7%9B%91%E5%90%AC%E6%89%8B%E6%9C%BA%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E8%AF%BB%E5%8F%96%E5%91%BD%E4%BB%A4...%3C%2FP%3E%3CP%3E06-16%2017%3A34%3A32.456%2026047%2027687%20W%20nfc%20%3A%20%5Bcard_emulator_main_cutdown%5D%20%E6%B3%A8%E5%85%A5%E7%8A%B6%E6%80%81%2F%E8%B6%85%E6%97%B6%EF%BC%9A0x020A%EF%BC%88%E6%89%8B%E6%9C%BA%E5%8F%AF%E8%83%BD%E5%B7%B2%E6%AD%A3%E5%B8%B8%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%EF%BC%89%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2381614%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20NfcrdlibEx8_HCE_T4T%20example%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2381614%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3E%E5%85%B3%E4%BA%8E%E8%BF%99%E4%B8%AA%E8%AF%9D%E9%A2%98%EF%BC%8C%E6%88%91%E8%BF%98%E6%9C%89%E4%B8%AA%E9%97%AE%E9%A2%98%E3%80%82%3C%2FP%3E%3CP%3E%E5%B0%BD%E7%AE%A1%E6%88%91%E4%BB%A5%20%22%20%3CSPAN%3Enfcrdlibex8_HCE_T4T%20%22%20%E4%B8%BA%E4%BE%8B%E8%AE%A9%E6%88%91%E4%BB%AC%E7%9A%84%E8%AE%BE%E5%A4%87%E4%BD%9C%E4%B8%BA%204%20%E5%9E%8B%E5%8D%A1%E7%89%8C%E6%A8%A1%E6%8B%9F%E5%99%A8%E4%BD%BF%E7%94%A8%EF%BC%8C%E4%BD%86%E5%AE%83%E7%9C%8B%E8%B5%B7%E6%9D%A5%E5%BE%88%E6%85%A2%E3%80%82%E7%94%B3%E8%AF%B7%E6%AD%A5%E9%AA%A4%E5%A6%82%E4%B8%8B%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E1%E3%80%82%E8%AE%BE%E5%A4%87%E5%9C%A8%E9%98%85%E8%AF%BB%E5%99%A8%EF%BC%88%E8%BD%AE%E8%AF%A2%EF%BC%89%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%BF%90%E8%A1%8C%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E2%E3%80%82%E6%89%8B%E6%9C%BA%E8%A2%AB%E7%AA%83%E5%90%AC%E7%84%B6%E5%90%8E%E5%AE%83%E4%BC%9A%E8%AF%BB%E5%8F%96%E6%89%8B%E6%9C%BA%E9%92%B1%E5%8C%85%E4%B8%AD%E7%9A%84%E5%8D%A1%E7%89%87%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E3.%20%E8%AF%BB%E5%8F%96%E5%AE%8C%E6%88%90%E5%90%8E%E7%AB%8B%E5%8D%B3%E5%85%B3%E9%97%AD%E5%B0%84%E9%A2%91%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E4.%20%E5%9C%A8%20HCE%204%20%E5%9E%8B%E5%8D%A1%E7%89%87%E4%BB%BF%E7%9C%9F%E5%99%A8%E6%A8%A1%E5%BC%8F%EF%BC%88%E8%A2%AB%E5%8A%A8%E7%9B%91%E5%90%AC%E6%A8%A1%E5%BC%8F%EF%BC%89%E4%B8%8B%E9%87%8D%E6%96%B0%E5%88%9D%E5%A7%8B%E5%8C%96%20RF%20%E8%8A%AF%E7%89%87%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E5.%20%E5%90%91%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA%E5%8F%91%E9%80%81%E4%B8%80%E4%B8%AA%20URL%EF%BC%88NDEF%EF%BC%89%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E9%97%AE%E9%A2%98%E5%9C%A8%E4%BA%8E%EF%BC%8C%E5%9C%A8%E5%8D%A1%E7%89%87%E6%A8%A1%E6%8B%9F%E5%99%A8%E6%A8%A1%E5%BC%8F%E4%B8%8B%EF%BC%8C%E9%87%8D%E6%96%B0%E5%88%9D%E5%A7%8B%E5%8C%96%E5%B0%84%E9%A2%91%E8%8A%AF%E7%89%87%E5%B9%B6%E5%B0%86URL%E5%8F%91%E9%80%81%E8%87%B3%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA%E5%A4%A7%E7%BA%A6%E9%9C%80%E8%A6%811500%E6%AF%AB%E7%A7%92%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E6%9C%89%E6%B2%A1%E6%9C%89%E6%9B%B4%E5%BF%AB%E6%8D%B7%E7%9A%84%E6%96%B9%E6%B3%95%E6%9D%A5%E5%AE%9E%E7%8E%B0%E8%BF%99%E4%B8%80%E7%82%B9%EF%BC%8C%E8%BF%99%E6%A0%B7%E7%94%A8%E6%88%B7%E5%B0%B1%E4%B8%8D%E5%BF%85%E4%B8%80%E7%9B%B4%E6%8B%BF%E7%9D%80%E6%89%8B%E6%9C%BA%E6%88%96%E4%B8%8D%E5%81%9C%E7%82%B9%E5%87%BB%E4%BA%86%EF%BC%9F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E6%88%91%E5%9C%A8%E8%B0%B7%E6%AD%8C%E4%B8%8A%E6%90%9C%E7%B4%A2%E5%90%8E%E5%8F%91%E7%8E%B0%EF%BC%8C%E6%8D%AE%E8%AF%B4%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%E7%9A%84%E7%AC%AC2%E7%B1%BB%E6%A0%87%E7%AD%BE%E6%9D%A5%E5%AE%9E%E7%8E%B0%E3%80%82%E4%BD%86%E8%BF%99%E5%B9%B6%E6%B2%A1%E6%9C%89%E5%A5%8F%E6%95%88%E3%80%82%E6%89%8B%E6%9C%BA%E4%B8%8A%E6%B2%A1%E6%9C%89%E6%94%B6%E5%88%B0%E4%BB%BB%E4%BD%95%E4%BF%A1%E6%81%AF%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E2%94%82%3CBR%20%2F%3E%E2%96%BC%3CBR%20%2F%3E%E7%AC%AC%201%20%E6%AD%A5%EF%BC%9A%E7%BB%88%E6%AD%A2%E5%AD%97%E6%AE%B5%20%3CBR%20%2F%3E%20%E2%94%82%20(~1ms)%3CBR%20%2F%3E%E2%96%BC%3CBR%20%2F%3E%E7%AC%AC%202%20%E6%AD%A5%EF%BC%9A%E5%8A%A0%E8%BD%BD%20NDEF%20%E6%95%B0%E6%8D%AE%20%3CBR%20%2F%3E%20%E2%94%82%20(~3ms)%3CBR%20%2F%3E%E2%96%BC%3CBR%20%2F%3E%3CBR%20%2F%3E%E7%AC%AC%203%20%E6%AD%A5%EF%BC%9A%E8%BF%9B%E5%85%A5%E8%87%AA%E5%8A%A8%E7%B2%98%E8%B4%B4%E6%A8%A1%E5%BC%8F%26nbsp%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E5%A6%82%E6%9E%9C%E6%82%A8%E8%83%BD%E6%8C%87%E5%AF%BC%E6%88%91%E5%A6%82%E4%BD%95%E5%85%B7%E4%BD%93%E5%AE%9E%E7%8E%B0%E8%BF%99%E7%A7%8D%E5%BF%AB%E9%80%9F%E6%A8%A1%E5%BC%8F%E5%88%87%E6%8D%A2%EF%BC%8C%E5%B9%B6%E5%9C%A8500%E6%AF%AB%E7%A7%92%E5%86%85%E5%B0%86URL%E5%8F%91%E9%80%81%E8%87%B3%E6%89%8B%E6%9C%BA%EF%BC%8C%E6%88%91%E5%B0%86%E4%B8%8D%E8%83%9C%E6%84%9F%E6%BF%80%E3%80%82%3C%2FP%3E%3CP%3E%E8%B0%A2%E8%B0%A2%E6%82%A8%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E