Exemplo n.º 1
0
static void nfaSnepClientCallback (tNFA_SNEP_EVT snepEvent, tNFA_SNEP_EVT_DATA *eventData)
{
    NXPLOG_API_D("%s: snepEvent= %u", __FUNCTION__, snepEvent);

    switch (snepEvent)
    {
        case NFA_SNEP_REG_EVT:
            NXPLOG_API_D ("%s: NFA_SNEP_REG_EVT; Status: 0x%04x\n", __FUNCTION__, eventData->reg.status);
            NXPLOG_API_D ("%s: NFA_SNEP_REG_EVT; Client Register Handle: 0x%04x\n", __FUNCTION__, eventData->reg.reg_handle);
            sSnepClientHandle = eventData->reg.reg_handle;
            {
                SyncEventGuard guard (sNfaSnepClientRegEvent);
                sNfaSnepClientRegEvent.notifyOne ();
            }
            break;

        case NFA_SNEP_ACTIVATED_EVT:
            NXPLOG_API_D ("%s: NFA_SNEP_ACTIVATED_EVT; Client Activated Handle: 0x%04x\n", __FUNCTION__, eventData->activated.client_handle);
            nativeNfcTag_deregisterNdefTypeHandler ();
            if((eventData->activated.client_handle) &&
                   (sSnepClientHandle == eventData->activated.client_handle))
            {
                nativeNfcSnep_notifyClientActivated();
            }
            break;

        case NFA_SNEP_DEACTIVATED_EVT:
            NXPLOG_API_D ("%s: NFA_SNEP_DEACTIVATED_EVT: Client Deactivated Handle: 0x%04x\n", __FUNCTION__, eventData->deactivated.client_handle);
            if((eventData->deactivated.client_handle) &&
                   (sSnepClientHandle == eventData->deactivated.client_handle))
            {
                nativeNfcSnep_notifyClientDeactivated();
            }
            nativeNfcSnep_abortClientWaits();
            nativeNfcTag_registerNdefTypeHandler();
            break;

        case NFA_SNEP_CONNECTED_EVT:
            if((eventData->connect.reg_handle) &&
               (eventData->connect.conn_handle) &&
               (sSnepClientHandle == eventData->connect.reg_handle))
            {
                SyncEventGuard guard (sNfaSnepClientConnEvent);
                NXPLOG_API_D ("%s: NFA_SNEP_CONNECTED_EVT: Client Register Handle: 0x%04x\n", __FUNCTION__, eventData->connect.reg_handle);
                sSnepClientConnectionHandle = eventData->connect.conn_handle;
                sNfaSnepClientConnEvent.notifyOne ();
            }
            break;
        case NFA_SNEP_DISC_EVT:
            NXPLOG_API_D ("%s: NFA_SNEP_DISC_EVT: Client Connection/Register Handle: 0x%04x\n", __FUNCTION__, eventData->disc.conn_handle);
            {
                nativeNfcSnep_abortClientWaits();
            }
            break;
        case NFA_SNEP_PUT_RESP_EVT:
            NXPLOG_API_D ("%s: NFA_SNEP_PUT_RESP_EVT: Server Response Code: 0x%04x\n", __FUNCTION__, eventData->put_resp.resp_code);
            if((sSnepClientConnectionHandle == eventData->put_resp.conn_handle)
                    && (NFA_SNEP_RESP_CODE_SUCCESS == eventData->put_resp.resp_code))
            {
                nativeNfcSnep_doPutCompleted (NFA_STATUS_OK);
            }
            else
            {
                nativeNfcSnep_doPutCompleted (NFA_STATUS_FAILED);
            }
            break;
        case NFA_SNEP_ALLOC_BUFF_EVT:
            NXPLOG_API_D ("%s: NFA_SNEP_ALLOC_BUFF_EVT: Handle: 0x%04x\n", __FUNCTION__, eventData->alloc.conn_handle);
            break;
        case NFA_SNEP_FREE_BUFF_EVT:
            NXPLOG_API_D ("%s: NFA_SNEP_FREE_BUFF_EVT: \n", __FUNCTION__);
            break;
        default:
            NXPLOG_API_D ("%s: unknown event 0x%X\n", snepEvent);
            break;
    }
}
static void nfaLlcpClientCallback (tNFA_P2P_EVT LlcpEvent, tNFA_P2P_EVT_DATA *eventData)
{
    NXPLOG_API_D("%s: snepEvent= %u", __FUNCTION__, LlcpEvent);

    if(eventData != NULL)
    {
        switch (LlcpEvent)
        {
            case NFA_P2P_REG_CLIENT_EVT:
                NXPLOG_API_D ("%s: NFA_P2P_REG_CLIENT_EVT; Client Register Handle: 0x%04x\n", __FUNCTION__, eventData->reg_client.client_handle);
                sLlcpConnLessClientHandle = eventData->reg_client.client_handle;
                {
                    SyncEventGuard guard (sNfaLlcpClientRegEvent);
                    sNfaLlcpClientRegEvent.notifyOne ();
                }
                break;

            case NFA_P2P_ACTIVATED_EVT:
                NXPLOG_API_D ("%s: NFA_P2P_ACTIVATED_EVT; Client Activated Handle: 0x%04x\n", __FUNCTION__, eventData->activated.handle);
                nativeNfcTag_deregisterNdefTypeHandler ();
                if((eventData->activated.handle) &&
                    (sLlcpConnLessClientHandle == eventData->activated.handle))
                {
                    bDestSap = LLCP_CL_SAP_ID_DEFAULT;
                    sLlcpConnLessHandle = eventData->activated.handle;
                    sLlcpConnLessConnectedHandle = eventData->connected.conn_handle;
                    NXPLOG_API_D("nfaLlcpServerCallBack: remote sap ID 0x%04x\n ", bDestSap);
                    nativeNfcLlcp_notifyClientActivated();
                }
                break;

            case NFA_P2P_DEACTIVATED_EVT:
                NXPLOG_API_D ("%s: NFA_P2P_DEACTIVATED_EVT: Client Deactivated Handle: 0x%04x\n", __FUNCTION__, eventData->deactivated.handle);
                if((eventData->deactivated.handle) &&
                       (sLlcpConnLessClientHandle == eventData->deactivated.handle))
                {
                    nativeNfcLlcp_notifyClientDeactivated();
                }
                nativeNfcLlcp_abortClientWaits();
                nativeNfcTag_registerNdefTypeHandler();
                break;

            case NFA_P2P_DISC_EVT:
                NXPLOG_API_D ("%s: NFA_SNEP_DISC_EVT: Client Connection/Register Handle: 0x%04x\n", __FUNCTION__, eventData->disc.handle);
                {
                    nativeNfcLlcp_abortClientWaits();
                }
                break;
            case NFA_P2P_DATA_EVT:
                NXPLOG_API_D ("%s: NFA_P2P_DATA_EVT: Handle: 0x%04x Remote SAP: 0x%04x\n", __FUNCTION__,
                        eventData->data.handle, eventData->data.remote_sap);
                bDestSap = eventData->data.remote_sap;
                sLlcpConnLessHandle = eventData->data.handle;
                NXPLOG_API_D("nfaLlcpServerCallBack: remote sap ID 0x%04x\n ", bDestSap);
                /* Chekthe Data event */
                nativeNfcLlcp_doClientReadCompleted(NFA_STATUS_OK);
                break;
            case NFA_P2P_CONGEST_EVT:
                NXPLOG_API_D ("%s: NFA_SNEP_ALLOC_BUFF_EVT: Handle: 0x%04x\n", __FUNCTION__, eventData->congest.handle);
                break;
            case NFA_P2P_SDP_EVT:
                    bDestSap = eventData->sdp.remote_sap;
                    sNfaLlcpSdpEvt.notifyOne();
                    NXPLOG_API_D ("nfaLlcpServerCallBack: 0x%04x\n", bDestSap);
                break;
            default:
                NXPLOG_API_D ("%s: unknown event 0x%X\n", LlcpEvent);
                break;
        }
    }
}