| /* |
| * Copyright (C) 2010 NXP Semiconductors |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| /*! |
| *\file phLibNfc_1.1.h |
| *\brief Contains FRI1.1 API details. |
| *Project: NFC-FRI 1.1 |
| * $Workfile:: phLibNfc_1.1.h $ |
| * $Modtime:: $ |
| * $Author: ing07385 $ |
| * $Revision: 1.80 $ |
| * $Aliases: NFC_FRI1.1_WK1014_SDK,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1019_SDK,NFC_FRI1.1_WK1024_SDK $ |
| *\defgroup grp_lib_nfc LIBNFC Component |
| */ |
| /* \page LibNfc_release_label FRI1.1 API Release Label |
| * $Aliases: NFC_FRI1.1_WK1014_SDK,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1019_SDK,NFC_FRI1.1_WK1024_SDK $ |
| *\note This is the TAG (label, alias) of the FRI1.1. |
| *If the string is empty, the current documentation |
| * has not been generated for official release. |
| */ |
| #ifndef PHLIBNFC_H |
| #define PHLIBNFC_H |
| #include <phNfcTypes.h> |
| #include <phLibNfcStatus.h> |
| #include <phFriNfc_NdefRecord.h> |
| #include <phNfcLlcpTypes.h> |
| #include <phNfcConfig.h> |
| #ifdef ANDROID |
| #include <string.h> |
| #endif |
| |
| /*! |
| *\def PHLIBNFC_MAXNO_OF_SE |
| *Defines maximum no of secured elements supported by PN544. |
| */ |
| #define LIBNFC_READONLY_NDEF |
| #define PHLIBNFC_MAXNO_OF_SE (0x02) |
| |
| typedef uint32_t phLibNfc_Handle; |
| |
| extern const unsigned char *nxp_nfc_full_version; |
| |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| *\brief Defines Testmode Init configuration values |
| */ |
| |
| typedef enum |
| { |
| phLibNfc_TstMode_Off = 0x00, /**< Test mode is off */ |
| phLibNfc_TstMode_On /**< Testmode is on */ |
| |
| } phLibNfc_Cfg_Testmode_t; |
| |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| *\brief Defines Secure Element configurable states |
| */ |
| |
| typedef enum |
| { |
| phLibNfc_SE_Active = 0x00, /**< state of the SE is active */ |
| phLibNfc_SE_Inactive= 0x01 /**< state of the SE is In active*/ |
| |
| } phLibNfc_SE_State_t; |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| *\brief Defines Secure Element types. |
| */ |
| typedef enum |
| { |
| phLibNfc_SE_Type_Invalid=0x00,/**< Indicates SE type is Invalid */ |
| phLibNfc_SE_Type_SmartMX=0x01,/**< Indicates SE type is SmartMX */ |
| phLibNfc_SE_Type_UICC =0x02,/**<Indicates SE type is UICC */ |
| phLibNfc_SE_Type_Unknown=0x03/**< Indicates SE type is Unknown */ |
| }phLibNfc_SE_Type_t; |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| *\brief Defines Ndef Card Offset. |
| */ |
| typedef enum |
| { |
| phLibNfc_Ndef_EBegin = 0x01, /**< Start from Beginning position */ |
| phLibNfc_Ndef_ECurrent /**< Start from Current position */ |
| |
| } phLibNfc_Ndef_EOffset_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief This function allows to activate specific Secure element. |
| |
| *\b VirtualMode: Virtual mode is used to communicated with secure elements from external reader. |
| * This mode is also called as card emulation mode.when secure element mode is set |
| * to this mode,external reader can communicate with this SE. |
| * |
| *\b WiredMode: Wired mode is used to communicate with the Secure Element internally. |
| * No RF field is generated. In this mode, PN544 acts as reader and discovers |
| * SmartMX as MIFARE tag.External reader cannot access any of the SE's in this mode. |
| * This mode is applicable to only SmartMX secure element. |
| * |
| */ |
| typedef enum |
| { |
| phLibNfc_SE_ActModeWired=0x00, /**< Enables Wired Mode communication.This mode shall |
| be applied to */ |
| phLibNfc_SE_ActModeDefault = 0x01, /**< Enables Virtual Mode communication. |
| This can be applied to UICC as well as SmartMX*/ |
| phLibNfc_SE_ActModeVirtual=0x02, /**< Enables Virtual Mode communication. |
| This can be applied to UICC as well as SmartMX*/ |
| phLibNfc_SE_ActModeOff =0x03, /**< Inactivate SE.This means,put SE in in-active state |
| This can be applied to UICC as well as SmartMX*/ |
| phLibNfc_SE_ActModeVirtualVolatile = 0x04 /**< Enabled virtual mode communication for SE through an event |
| This can be applied to UICC as well as SmartMX*/ |
| |
| }phLibNfc_eSE_ActivationMode; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Defines SE low power mode types. |
| */ |
| typedef enum |
| { |
| phLibNfc_SE_LowPowerMode_Off= 0x01, /**< Indicates no SE to be selected in low power mode */ |
| phLibNfc_SE_LowPowerMode_On = 0x02 /**< Indicates requested SE to be selected in low power mode */ |
| |
| } phLibNfc_SE_LowPowerMode_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Defines Secure element event info . |
| */ |
| typedef union phLibNfc_uSeEvtInfo |
| { |
| phNfc_sUiccInfo_t UiccEvtInfo; /**< Indicates UICC event info for Evt_Transaction event */ |
| }phLibNfc_uSeEvtInfo_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Types of SE transaction events sent to SE notification handler . |
| */ |
| typedef enum |
| { |
| phLibNfc_eSE_EvtStartTransaction=0x00, /**< Indicates transaction started on |
| secure element */ |
| phLibNfc_eSE_EvtEndTransaction=0x01, /**<Indicates transaction ended on secure |
| element*/ |
| phLibNfc_eSE_EvtTypeTransaction=0x02, /**<Indicates external reader trying to access secure element */ |
| |
| phLibNfc_eSE_EvtConnectivity, /**<This event notifies the terminal host that it shall |
| send a connectivity event from UICC as defined in |
| ETSI TS 102 622 V7.4.0 */ |
| phLibNfc_eSE_EvtFieldOn, // consider using phLibNfc_eSE_EvtConnectivity |
| phLibNfc_eSE_EvtFieldOff, |
| |
| phLibNfc_eSE_EvtApduReceived, /* PAYPASS MagStripe or MCHIP_4 transaction */ |
| |
| phLibNfc_eSE_EvtCardRemoval, /* Indicates the beginning of an EMV Card Removal sequence */ |
| |
| phLibNfc_eSE_EvtMifareAccess /* Indicates when the SMX Emulation MIFARE is accessed */ |
| } phLibNfc_eSE_EvtType_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Defines possible registration details for notifications. |
| */ |
| typedef phNfc_sSupProtocol_t phLibNfc_Registry_Info_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Generic Data buffer definition. |
| */ |
| typedef phNfc_sData_t phLibNfc_Data_t; |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * Application Identifier (phLibNfc_AID) |
| * |
| * The application identifier defines a specific application on a SE. |
| * |
| */ |
| typedef phNfc_sData_t phLibNfc_AID; |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Remote Device Info definition . |
| */ |
| typedef phNfc_sRemoteDevInformation_t phLibNfc_sRemoteDevInformation_t; |
| /** |
| * \ingroup grp_lib_nfc |
| */ |
| typedef phNfc_eDiscoveryConfigMode_t phLibNfc_eDiscoveryConfigMode_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Transceive info definition. |
| */ |
| typedef phNfc_sTransceiveInfo_t phLibNfc_sTransceiveInfo_t; |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Automatic Device Discovery Definition. |
| */ |
| typedef phNfc_sADD_Cfg_t phLibNfc_sADD_Cfg_t; |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| *\brief Release mode definition. |
| */ |
| typedef phNfc_eReleaseType_t phLibNfc_eReleaseType_t; |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| *\brief device capabilities details. |
| */ |
| typedef phNfc_sDeviceCapabilities_t phLibNfc_sDeviceCapabilities_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Defines supported tag types for NDEF mapping and formatting feature. |
| */ |
| typedef struct SupportedTagInfo |
| { |
| unsigned MifareUL:1; /**<TRUE indicates specified feature (mapping or formatting)for MIFARE UL tag supported else not supported.*/ |
| unsigned MifareStd:1; /**<TRUE indicates specified feature (mapping or formatting)for Mifare Std tag supported else not supported.*/ |
| unsigned MifareULC:1; /**<TRUE indicates specified feature (mapping or formatting)for MIFARE UL2 tag supported else not supported.*/ |
| unsigned ISO14443_4A:1; /**<TRUE indicates specified feature (mapping or formatting)for ISO14443_4A tag supported else not supported.*/ |
| unsigned ISO14443_4B:1; /**<TRUE indicates specified feature (mapping or formatting)for ISO14443_4B tag supported else not supported.*/ |
| unsigned ISO15693:1; /**<TRUE indicates specified feature (mapping or formatting)for ISO15693 tag supported else not supported.*/ |
| unsigned FeliCa:1; /**<TRUE indicates specified feature (mapping or formatting)for FeliCa tag supported else not supported.*/ |
| unsigned Jewel:1; /**<TRUE indicates specified feature (mapping or formatting)for JEWEL tag supported else not supported.*/ |
| unsigned Desfire:1; /**<TRUE indicates specified feature (mapping or formatting)for desfire tag supported else not supported.*/ |
| |
| }phLibNfc_sSupportedTagInfo_t; |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Defines supported tag types for NDEF mapping feature. |
| */ |
| typedef phLibNfc_sSupportedTagInfo_t phLibNfc_sNDEFMappingInfo_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Defines supported tag types for NDEF formatting feature. |
| */ |
| |
| typedef phLibNfc_sSupportedTagInfo_t phLibNfc_sTagFormattingInfo_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Stack capabilities details contains device capabilities and supported tags for NDEF mapping and formatting feature. |
| */ |
| |
| typedef struct StackCapabilities |
| { |
| phLibNfc_sDeviceCapabilities_t psDevCapabilities; |
| phLibNfc_sNDEFMappingInfo_t psMappingCapabilities; |
| phLibNfc_sTagFormattingInfo_t psFormatCapabilities; |
| }phLibNfc_StackCapabilities_t; |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Defines Secure Element list type. |
| */ |
| typedef struct phLibNfc_SecureElementInfo |
| { |
| phLibNfc_Handle hSecureElement; /**< handle to Secure Element */ |
| phLibNfc_SE_Type_t eSE_Type; /**< type of Secure Element(SE)*/ |
| phLibNfc_SE_State_t eSE_CurrentState;/**< state of the secure element indicates activated or not*/ |
| } phLibNfc_SE_List_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Defines target specific info obtained during device discovery. |
| */ |
| typedef struct phLibNfc_RemoteDev |
| { |
| phLibNfc_Handle hTargetDev; /**< discovered Target handle */ |
| phLibNfc_sRemoteDevInformation_t* psRemoteDevInfo; /**< discovered Target details */ |
| |
| }phLibNfc_RemoteDevList_t; |
| |
| typedef phNfc_sNfcIPCfg_t phLibNfc_sNfcIPCfg_t; |
| |
| /** |
| *\ingroup grp_lib_nfc |
| *\brief NDEF registration structure definition. |
| */ |
| typedef struct phLibNfc_Ndef_SrchType |
| { |
| uint8_t Tnf; /**< Type Name Format of this NDEF record */ |
| uint8_t *Type; /**< Type field of this NDEF record */ |
| uint8_t TypeLength; /**< Length of the Type field of this NDEF record */ |
| } phLibNfc_Ndef_SrchType_t; |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * \brief NDEF information structure definition. \n |
| */ |
| typedef struct phLibNfc_Ndef_Info |
| { |
| uint32_t NdefMessageLengthActual; /**< Actual length of the NDEF message */ |
| uint32_t NdefMessageLengthMaximum; /**< Maximum length of the NDEF message */ |
| uint8_t *pNdefMessage; /**< Pointer to raw NDEF Data buffer */ |
| uint32_t NdefRecordCount; /**< Number of NDEF records pointed by pNdefRecord */ |
| phFriNfc_NdefRecord_t *pNdefRecord; /**< Pointer to the NDEF Records contained within the NDEF message */ |
| |
| } phLibNfc_Ndef_Info_t; |
| |
| /* As per NFC forum specification, the card can be in either of the below mentioned states |
| INVALID - means card is NOT NFC forum specified tag. NDEF FORMAT can only be performed for |
| the factory cards, other cards may or may not be formatted for NDEF FORMAT function. |
| INITIALISED - means card is NFC forum specified tag. But, in this state |
| the user has to first call NDEF WRITE, because in INITIALISED state, there |
| wont be any data i.e.,ACTUAL NDEF FILE SIZE is 0. After the first |
| NDEF WRITE, NDEF READ and WRITE functions can be called any number of times. |
| READ WRITE - means card is NFC forum specified tag. User can use both |
| NDEF READ and WRITE functions |
| READ ONLY - means card is NFC forum specified tag. User can only use |
| NDEF READ. NDEF WRITE function will not work. |
| */ |
| #define PHLIBNFC_NDEF_CARD_INVALID 0x00U |
| #define PHLIBNFC_NDEF_CARD_INITIALISED 0x01U |
| #define PHLIBNFC_NDEF_CARD_READ_WRITE 0x02U |
| #define PHLIBNFC_NDEF_CARD_READ_ONLY 0x03U |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Ndef Information Structure. |
| */ |
| typedef struct phLibNfc_ChkNdef_Info |
| { |
| uint8_t NdefCardState; /**< Card state information */ |
| uint32_t ActualNdefMsgLength; /**< Indicates Actual length of NDEF Message in Tag */ |
| uint32_t MaxNdefMsgLength; /**< Indicates Maximum Ndef Message length that Tag can hold*/ |
| } phLibNfc_ChkNdef_Info_t; |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| *\brief LLCP link status. Refer to \ref phFriNfc_LlcpMac_eLinkStatus_t |
| * |
| */ |
| typedef phFriNfc_LlcpMac_eLinkStatus_t phLibNfc_Llcp_eLinkStatus_t; |
| |
| typedef phFriNfc_Llcp_sLinkParameters_t phLibNfc_Llcp_sLinkParameters_t; |
| |
| typedef phFriNfc_LlcpTransport_eSocketType_t phLibNfc_Llcp_eSocketType_t; |
| |
| typedef phFriNfc_LlcpTransport_sSocketOptions_t phLibNfc_Llcp_sSocketOptions_t; |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Response callback for connect request. |
| * |
| * Callback type used to indicate a Connect request Successful or Failure indication to |
| * LibNfc client. |
| * |
| * \param[in] pContext Context passed in the connect request before. |
| * \param[in] hRemoteDev Handle to remote device on which connect was requested. |
| * \param[in] psRemoteDevInfo contains updated remote device details.For few tags |
| * like ISO-14443A details like historical bytes gets updated |
| * only after connecting to target.Once connect is successful |
| * \b psRemoteDevInfo gets updated. |
| * |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Connect operation successful. |
| * \param NFCSTATUS_TARGET_LOST Connect operation failed because target is lost. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * |
| */ |
| |
| typedef void (*pphLibNfc_ConnectCallback_t) (void* pContext, |
| phLibNfc_Handle hRemoteDev, |
| phLibNfc_sRemoteDevInformation_t* psRemoteDevInfo, |
| NFCSTATUS Status |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Response callback for disconnect request. |
| * |
| * Callback type used to provide a disconnect Success or Failure indication to |
| * LibNfc client. |
| * |
| * \param[in] pContext Context passed in the disconnect request before. |
| * \param[in] hRemoteDev Handle to remote device on which disconnect is requested. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Disconnect operation successful. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * |
| */ |
| typedef void (*pphLibNfc_DisconnectCallback_t)(void* pContext, |
| phLibNfc_Handle hRemoteDev, |
| NFCSTATUS Status |
| ); |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Response callback for IOCTL request. |
| * |
| * Callback type to inform success or failure of the Ioctl request |
| * made by LibNfc client. It may optionally contain response data |
| * depending on the Ioctl command type issued. |
| |
| * |
| * \param[in] pContext Context passed in the connect request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Ioctl operation successful. |
| * \param NFCSTATUS_TARGET_LOST Ioctl operation failed because target is lost. |
| * \param NFCSTATUS_SHUTDOWN Ioctl operation failed because Shutdown in progress. |
| * |
| *\param[in,out] pOutParam contains Ioctl command specific response buffer and size |
| * of the buffer.This buffer address will be same as |
| * pOutParam sent in \ref phLibNfc_Mgt_IoCtl. |
| * |
| */ |
| |
| |
| typedef void (*pphLibNfc_IoctlCallback_t) (void* pContext, |
| phNfc_sData_t* pOutParam, |
| NFCSTATUS Status |
| ); |
| |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Response callback for Transceive request. |
| * |
| * This callback type is used to provide received data and it's size to the |
| * LibNfc client in \ref phNfc_sData_t format ,when LibNfc client has performed |
| * a Transceive operation on a tag or when the device acts as an Initiator during a |
| * P2P transactions. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] hRemoteDev Handle to remote device on transceive is performed. |
| * \param[in] pResBuffer Response buffer of type \ref phNfc_sData_t. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Transceive operation successful. |
| * \param NFCSTATUS_TARGET_LOST Transceive operation failed because target is lost. |
| * \param NFCSTATUS_SHUTDOWN Transceive operation failed because Shutdown in progress. |
| * \param NFCSTATUS_ABORTED Aborted due to disconnect request in between. |
| * |
| */ |
| typedef void (*pphLibNfc_TransceiveCallback_t)( void* pContext, |
| phLibNfc_Handle hRemoteDev, |
| phNfc_sData_t* pResBuffer, |
| NFCSTATUS Status |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief Generic Response Callback definition. |
| * |
| * Generic callback definition used as callback type in few APIs below. |
| * |
| * \note : Status and error codes for this type of callback are documented in respective APIs |
| * wherever it is used. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request |
| * before. |
| * \param[in] status Status of the response callback. |
| */ |
| typedef void(*pphLibNfc_RspCb_t) (void* pContext,NFCSTATUS Status); |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief Check NDEF Callback definition. |
| * |
| * This call back is used by check ndef api. |
| * |
| * \note : Status and error codes for this type of callback are documented in API |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request |
| * before. |
| * \param[in] Ndef_Info Ndef message length and the container size. |
| * \param[in] status Status of the response callback. |
| */ |
| typedef void(*pphLibNfc_ChkNdefRspCb_t)(void* pContext, |
| phLibNfc_ChkNdef_Info_t Ndef_Info, |
| NFCSTATUS Status); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief Notification handler callback definition. |
| * |
| *This callback type is used to provide information on discovered targets to LibNfcClient. |
| *Discovered targets will be notified in \ref phLibNfc_RemoteDevList_t format. |
| *In case multiple targets discovered ,remote device list contains these targets one after another. |
| * |
| *\note List will be exported as memory block,based on \b uNofRemoteDev |
| * parameter application has to access remote devices accordingly. |
| * |
| *\b Ex: Multiple targets discovered can be referred as phLibNfc_RemoteDevList_t[0] |
| *and phLibNfc_RemoteDevList_t[1]. |
| * |
| *Subsequent operations on discovered target shall be performed using target specific handle |
| *\b hTargetDev. |
| * |
| * \param[in] pContext Client context passed in the corresponding |
| * request before.The context is handled by client |
| * only. |
| * |
| * \param[in] psRemoteDevList Remote Device list contains discovered target details. |
| * Refer to \ref phLibNfc_RemoteDevList_t . |
| * List size depends on no of remote devices discovered. |
| * |
| * \param[in] uNofRemoteDev Indicates no of remote devices discovered . |
| * In case more than one target discovered,\b psRemoteDevList contains |
| * multiple target details. |
| * |
| * \param[in] Status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Discovered single target successfully. |
| * \param NFCSTATUS_MULTIPLE_TARGETS multiple targets found. |
| * \param NFCSTATUS_MULTI_PROTOCOLS Target found supports multiple protocols. |
| * \param NFCSTATUS_SHUTDOWN Registration failed because shutdown in progress. |
| * \param NFCSTATUS_DESELECTED initiator issued disconnect or intiator |
| * physically removed from the RF field. |
| * |
| *\note: multiple tag detection is possible only within same technology but not across |
| * different technologies. |
| */ |
| typedef void (*phLibNfc_NtfRegister_RspCb_t)( |
| void* pContext, |
| phLibNfc_RemoteDevList_t* psRemoteDevList, |
| uint8_t uNofRemoteDev, |
| NFCSTATUS Status |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief Response Callback for secure element mode settings. |
| * |
| * This callback type is used to provide information on requested secure element is |
| * activated or not to LibNfcClient. |
| * |
| * \param[in] pContext LibNfc client context passed in the activation request. |
| * |
| * \param[in] hSecureElement Handle to secure element. |
| * |
| * \param[in] Status Indicates API status. |
| * \param NFCSTATUS_SUCCESS Secure element activated successfully. |
| * \param NFCSTATUS_SHUTDOWN Activation failed because shutdown in progress. |
| * \param NFCSTATUS_FAILED Activation failed. |
| * |
| */ |
| typedef void(*pphLibNfc_SE_SetModeRspCb_t)( |
| void* pContext, |
| phLibNfc_Handle hSecureElement, |
| NFCSTATUS Status |
| ); |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief Notification callback for \ref phLibNfc_SE_NtfRegister(). |
| * |
| * A function of this type is called when external reader tries to access SE. |
| * |
| *\param[in] pContext LibNfc client context passed in the SE notification register request. |
| * The context is Handled by client only. |
| * \param[in] EventType Event type of secure element transaction |
| * \param[in] hSecureElement handle to Secures Element. |
| * |
| *\param[in] pAppID Application identifier to be accessed on SE . |
| * Sent when available from SE otherwise empty. |
| * |
| *\param[in] Status Indicates API status. |
| * \param NFCSTATUS_SUCCESS Notification handler registered sucessfully. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_FAILED set mode operation failed. |
| * |
| * |
| */ |
| typedef void (*pphLibNfc_SE_NotificationCb_t) (void* pContext, |
| phLibNfc_eSE_EvtType_t EventType, |
| phLibNfc_Handle hSecureElement, |
| phLibNfc_uSeEvtInfo_t* pSeEvtInfo, |
| NFCSTATUS Status |
| ); |
| |
| |
| /** |
| *\ingroup grp_lib_nfc |
| *\brief Receive callback definition. |
| * |
| * This callback type is used to provide received data and it's size to the |
| * LibNfc client in \ref phNfc_sData_t format ,when LibNfc client has performed |
| * when the device acts as a Target during P2P communication |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding |
| * request before. |
| * \param[in] pRecvBufferInfo Response buffer of type \ref phNfc_sData_t. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Receive operation successful. |
| * \param NFCSTATUS_SHUTDOWN Receive operation failed because |
| * Shutdown in progress. |
| * \param NFCSTATUS_ABORTED Aborted due to initiator issued disconnect request. |
| * This status code reported,to indicate P2P session |
| * closed and send and receive requests not allowed any more |
| * unless new session is started. |
| */ |
| typedef void (*pphLibNfc_Receive_RspCb_t)(void* pContext, |
| phNfc_sData_t* pRecvBufferInfo, |
| NFCSTATUS status |
| ); |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief NDEF Response callback definition |
| * |
| * A function of this type is notified when registered NDEF type detected. |
| * |
| * \b Note :Once this type callback is notified,discovery wheel is stopped. |
| *In order to restart discovery process again it is important to disconnect |
| *from current tag.LibNfc client shall disconnect explicitly using |
| *\ref phLibNfc_RemoteDev_Disconnect() interface. |
| * |
| *\param[in] pContext Pointer to context previously provided by the user |
| *\param[in] psNdefInfo All Ndef specific details of the remote device discovered. |
| *\param[in] hRemoteDevice handle to remote device on which NDEF detection is done. |
| * |
| *\param[in] Status Indicates callback status. |
| * |
| * \param NFCSTATUS_SUCCESS Indicates registered tnf type detected. . |
| * \param NFCSTATUS_SHUTDOWN Indicates shutdown in progress. |
| * \param NFCSTATUS_FAILED status failed. |
| * \param NFCSTATUS_ABORTED Aborted due to disconnect operation in between. |
| |
| |
| */ |
| typedef void (*pphLibNfc_Ndef_Search_RspCb_t) ( void* pContext, |
| phLibNfc_Ndef_Info_t* psNdefInfo, |
| phLibNfc_Handle hRemoteDevice, |
| NFCSTATUS Status |
| ); |
| |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP check response callback definition |
| */ |
| typedef void (*pphLibNfc_ChkLlcpRspCb_t) ( void* pContext, |
| NFCSTATUS status |
| ); |
| |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP check response callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpLinkStatusCb_t) ( void* pContext, |
| phLibNfc_Llcp_eLinkStatus_t eLinkStatus |
| ); |
| |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP socket error notification callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketErrCb_t) ( void* pContext, |
| uint8_t nErrCode |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief Incoming connection on a listening LLCP socket callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketListenCb_t) ( void* pContext, |
| phLibNfc_Handle hIncomingSocket |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP socket connect callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketConnectCb_t) ( void* pContext, |
| uint8_t nErrCode, |
| NFCSTATUS status |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP socket disconnect callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketDisconnectCb_t) ( void* pContext, |
| NFCSTATUS status |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP socket Accept callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketAcceptCb_t) ( void* pContext, |
| NFCSTATUS status |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP socket Reject callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketRejectCb_t) ( void* pContext, |
| NFCSTATUS status |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP socket reception callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketRecvCb_t) ( void* pContext, |
| NFCSTATUS status |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP socket reception with SSAP callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketRecvFromCb_t) ( void* pContext, |
| uint8_t ssap, |
| NFCSTATUS status |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * |
| * \brief LLCP socket emission callback definition |
| */ |
| typedef void (*pphLibNfc_LlcpSocketSendCb_t) ( void* pContext, |
| NFCSTATUS status |
| ); |
| |
| |
| /* FUNCTION PROTOTYPES */ |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief Driver configuration function |
| * This synchronous function configures the given driver Interface and |
| * sends the HANDLE to the caller. |
| * |
| * \param[in] psConfig Driver configuration details as provided |
| * by the upper layer. |
| * \param[in,out] ppDriverHandle pointer to which valid Handle to driver |
| * interface is assigned. |
| * |
| * \retval NFCSTATUS_SUCCESS Configuration happened successfully. |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function |
| * is invalid. |
| * \retval NFCSTATUS_FAILED Configuration failed(example.unable to |
| * open HW Interface). |
| * \retval NFCSTATUS_INVALID_DEVICE The device has not been opened or |
| * has been disconnected meanwhile |
| * \retval NFCSTATUS_BOARD_COMMUNICATION_ERROR A board communication error occurred |
| (e.g. configuration went wrong). |
| *\msc |
| *LibNfcClient,LibNfc; |
| *--- [label="Before initializing Nfc LIB,Configure Driver layer"]; |
| *LibNfcClient=>LibNfc[label="phLibNfc_Mgt_ConfigureDriver()",URL="\ref phLibNfc_Mgt_ConfigureDriver"]; |
| *LibNfcClient<<LibNfc[label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_Mgt_ConfigureDriver (pphLibNfc_sConfig_t psConfig, |
| void ** ppDriverHandle |
| ); |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief Release configuration for the given driver Interface. |
| * |
| * \copydoc page_reg Release all that has been |
| * initialised in \b phLibNfc_Mgt_ConfigureDriver function (Synchronous function). |
| * |
| * \param[in] pDriverHandle Link information of the hardware |
| * |
| * \retval NFCSTATUS_SUCCESS Driver Configuration Released successfully. |
| * \retval NFCSTATUS_FAILED Configuration release failed(example: Unable to close Com port). |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_ConfigureDriver()",URL="\ref phLibNfc_Mgt_ConfigureDriver"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pInitCb"]; |
| *--- [label="Perform feature operations "]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_DeInitialize()",URL="\ref phLibNfc_Mgt_DeInitialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pDeInitCb"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_UnConfigureDriver()",URL="\ref phLibNfc_Mgt_UnConfigureDriver"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_Mgt_UnConfigureDriver (void * pDriverHandle |
| ); |
| |
| NFCSTATUS phLibNfc_HW_Reset (); |
| |
| NFCSTATUS phLibNfc_Download_Mode (); |
| |
| int phLibNfc_Load_Firmware_Image (); |
| |
| // Function for delay the recovery in case wired mode is set |
| // to complete the possible pending transaction with SE |
| void phLibNfc_Mgt_Recovery (); |
| |
| // timeout is 8 bits |
| // bits [0..3] => timeout value, (256*16/13.56*10^6) * 2^value |
| // [0] -> 0.0003s |
| // .. |
| // [14] -> 4.9s |
| // [15] -> not allowed |
| // bit [4] => timeout enable |
| // bit [5..7] => unused |
| NFCSTATUS phLibNfc_SetIsoXchgTimeout(uint8_t timeout); |
| int phLibNfc_GetIsoXchgTimeout(); |
| |
| NFCSTATUS phLibNfc_SetHciTimeout(uint32_t timeout_in_ms); |
| int phLibNfc_GetHciTimeout(); |
| |
| // Felica timeout |
| // [0] -> timeout disabled |
| // [1..255] -> timeout in ms |
| NFCSTATUS phLibNfc_SetFelicaTimeout(uint8_t timeout_in_ms); |
| int phLibNfc_GetFelicaTimeout(); |
| |
| // MIFARE RAW timeout (ISO14443-3A / NfcA timeout) |
| // timeout is 8 bits |
| // bits [0..3] => timeout value, (256*16/13.56*10^6) * 2^value |
| // [0] -> 0.0003s |
| // .. |
| // [14] -> 4.9s |
| // [15] -> not allowed |
| // bits [4..7] => 0 |
| NFCSTATUS phLibNfc_SetMifareRawTimeout(uint8_t timeout); |
| int phLibNfc_GetMifareRawTimeout(); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief Initializes the NFC library . |
| * |
| * |
| *\brief This function initializes NFC library and its underlying layers. |
| * As part of this interface underlying modules gets initialized. |
| * A session with NFC hardware will be established. |
| * Once initialization is successful ,NFC library ready for use. |
| *\note It is must to initialize prior usage of the stack . |
| * |
| * \param[in] pDriverHandle Driver Handle currently application is using. |
| * \param[in] pInitCb The init callback is called by the LibNfc when init is |
| * completed or there is an error in initialization. |
| * |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * \retval NFCSTATUS_ALREADY_INITIALISED Stack is already initialized. |
| * \retval NFCSTATUS_PENDING Init sequence has been successfully |
| * started and result will be conveyed via |
| * callback notification. |
| * \retval NFCSTATUS_INVALID_PARAMETER The parameter could not be properly |
| * interpreted. |
| *\retval NFCSTATUS_INSUFFICIENT_RESOURCES Insufficient resource.(Ex: insufficient memory) |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *--- [label="Before initializing Nfc LIB,Configure Driver layer"]; |
| *LibNfcClient=>LibNfc[label="phLibNfc_Mgt_ConfigureDriver()",URL="\ref phLibNfc_Mgt_ConfigureDriver"]; |
| *LibNfcClient<<LibNfc[label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pInitCb"]; |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_Mgt_Initialize (void * pDriverHandle, |
| pphLibNfc_RspCb_t pInitCb, |
| void* pContext |
| ); |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief De-Initializes NFC library. |
| * |
| * |
| * This function de-initializes and closes the current session with PN544 NFC hardware. |
| * All configurations and setups done until now are invalidated to restart |
| * communication. Resources currently used by stack gets released during De-initialization. |
| *\ref phLibNfc_Mgt_Initialize needs to be called once stack is |
| * De-initialized before using the stack again. |
| * |
| * \param[in] pHwHandle Hardware context currently application is using. |
| * |
| * \param[in] pDeInitCb De-initialization callback is called by the LibNfc when init |
| * completed or there is an error in initialization. |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * \retval NFCSTATUS_SUCCESS Device stack is already De-Initialized. |
| * \retval NFCSTATUS_PENDING De-Initialization sequence has been successfully |
| * started and result is conveyed via callback |
| * notification. |
| * |
| * \retval NFCSTATUS_INVALID_PARAMETER The parameter could not be properly |
| * interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| * \retval NFCSTATUS_FAILED Request failed. |
| |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pInitCb"]; |
| *--- [label="Perform feature operations "]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_DeInitialize()",URL="\ref phLibNfc_Mgt_DeInitialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pDeInitCb"]; |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_Mgt_DeInitialize(void * pDriverHandle, |
| pphLibNfc_RspCb_t pDeInitCb, |
| void* pContext |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief Get list of available Secure Elements. |
| * |
| * This function retrieves list of secure elements locally connected. |
| * during LibNfc initialization these SEs enumerated from lower stack and maintained |
| * in LibNfc library.Once libNfc client queries using this interface, |
| * same details exposed to LibNfc client. |
| * LibNfc client shall pass empty list of size \ref PHLIBNFC_MAXNO_OF_SE . |
| * Once SE list is available, libNfc client can perform operation on specific SE |
| * using SE handle. |
| * The handle given in the \ref phLibNfc_SE_List_t structure stays valid until |
| * shutdown is called. |
| * |
| *\note In case no SE's found, API still returns \ref NFCSTATUS_SUCCESS with \b uSE_count |
| set to zero.Value zero indicates none of the SE's connected to PN544 hardware. |
| |
| * \param[in,out] pSE_List contains list of SEs with SE details in \ref phLibNfc_SE_List_t format. |
| * \param[in,out] uSE_count contains no of SEs in the list. |
| * |
| *\note LibNfc client has to interpret no of secure elements in \b pSE_List based on this |
| *count. |
| * |
| *\retval NFCSTATUS_SUCCESS Indicates operation is sucessfull. |
| *\retval NFCSTATUS_SHUTDOWN Operation failed because shutdown in progress. |
| *\retval NFCSTATUS_NOT_INITIALISED Operation failed because stack is not yet initialized. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pInitCb"]; |
| *--- [label="Now SE list can be retrieved"]; |
| *\endmsc |
| */ |
| |
| NFCSTATUS phLibNfc_SE_GetSecureElementList(phLibNfc_SE_List_t* pSE_List, |
| uint8_t* uSE_count |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| *\brief Sets secure element mode. |
| * |
| * This function configures SE to specific mode based on activation mode type. |
| * Effect of different modes on SE is as below. |
| * |
| *\b a)If mode is \ref phLibNfc_SE_ActModeVirtual then external reader can communicate |
| * with this SE. |
| *\note This mode is applicable to both UICC and SmartMX. |
| * |
| \b b)If mode is \ref phLibNfc_SE_ActModeWired then internal reader can communicate with |
| * this SE.In this mode PN544 can act as reader and communicate with SE as normal Tag. |
| *In this mode mode external reader ca not communicate with any of the SEs since RF filed is off. |
| * |
| *\note 1.Wired Mode is applicable to only SmartMX not to UICC. |
| * 2.When SmartMX SE configured in Wired Mode ,LibNfc client shall restart discovery process. |
| * SmartMX gets detected as MIFARE tag. |
| * 3.To exit wired mode ,LibNfc client has to disconnect with release type as "NFC_SMARTMX_RELEASE". |
| * |
| * |
| *\b c)If mode is \ref phLibNfc_SE_ActModeOff |
| *This means SE is off mode .It can not be accessed any more in wired or virtual mode. |
| *internal reader any more.communicate with internal reader and only |
| *PN544 can communicate in reader mode and external reader can not |
| *communicate with it.This mode is applicable both SE types ( UICC and SmartMX) |
| * |
| * \param[in] hSE_Handle Secure Element Handle . |
| * \param[in] eActivation_mode Indicates SE mode to be configured. |
| * |
| * |
| * |
| * \param[in] pphLibNfc_SE_setModeRspCb_t pointer to response callback. |
| * |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * |
| * \retval NFCSTATUS_PENDING Activation transaction started. |
| * \retval NFSCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_INVALID_HANDLE Invalid Handle. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_REJECTED Invalid request.(Ex: If wired mode settings called using |
| * UICC SE handle ,this error code seen). |
| * \retval NFCSTATUS_FAILED Request failed. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pInitCb"]; |
| *--- [label="Now query for available SE's"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_SE_GetSecureElementList()",URL="\ref phLibNfc_SE_GetSecureElementList"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="Now configure specific SE"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_SE_SetMode(hSE_Handle,)",URL="\ref phLibNfc_SE_SetMode"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pSE_SetMode_Rsp_cb"]; |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_SE_SetMode ( phLibNfc_Handle hSE_Handle, |
| phLibNfc_eSE_ActivationMode eActivation_mode, |
| pphLibNfc_SE_SetModeRspCb_t pSE_SetMode_Rsp_cb, |
| void * pContext |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief Registers notification handler to handle secure element specific events. |
| * |
| * This function registers handler to report SE specific transaction events. |
| * Possible different types of events are as defined in \ref phLibNfc_eSE_EvtType_t. |
| |
| * \param[in] pSE_NotificationCb pointer to notification callback. |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| *\retval NFCSTATUS_SUCCESS Registration Sucessful. |
| *\retval NFSCSTATUS_SHUTDOWN Shutdown in progress. |
| *\retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| *\retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| *\retval NFCSTATUS_FAILED Request failed. |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pInitCb"]; |
| *--- [label="Perform feature operations "]; |
| * |
| *LibNfcClient=>LibNfc [label="phLibNfc_SE_NtfRegister()",URL="\ref phLibNfc_SE_NtfRegister"]; |
| LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="Registration sucessfull"]; |
| * |
| *--- [label="In case external reader performs transactions,callback is notified as shown below"]; |
| *LibNfcClient<-LibNfc [label="pSE_NotificationCb"]; |
| *\endmsc |
| */ |
| |
| NFCSTATUS phLibNfc_SE_NtfRegister (pphLibNfc_SE_NotificationCb_t pSE_NotificationCb, |
| void * pContext |
| ); |
| /** |
| * \ingroup grp_lib_nfc |
| *\brief This function unregister the registered listener for SE event. |
| * This function unregisters the listener which has been registered with \ref |
| * phLibNfc_SE_NtfRegister. |
| * |
| *\retval NFCSTATUS_SUCCESS Unregistration successful. |
| *\retval NFSCSTATUS_SHUTDOWN Shutdown in progress. |
| *\retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| *\retval NFCSTATUS_FAILED Request failed. |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pInitCb"]; |
| *--- [label="Perform feature operations "]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_SE_NtfRegister()",URL="\ref phLibNfc_SE_NtfRegister"]; |
| LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="Registration sucessfull"]; |
| * |
| *--- [label="In case external reader performs transactions,callback is notified as shown below"]; |
| * |
| *LibNfcClient<-LibNfc [label="pSE_NotificationCb"]; |
| *--- [label="Unregister SE notification handler in case required "]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_SE_NtfUnregister()",URL="\ref phLibNfc_SE_NtfUnregister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_SE_NtfUnregister(void); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| * \brief IOCTL interface. |
| * |
| * The I/O Control function allows the caller to configure specific |
| * functionality provided by the lower layer.Each feature is accessible via a |
| * specific IOCTL Code. |
| * |
| * \param[in] pDriverHandle Interface handle.This parameter is valid only for firmware download feature. |
| * for other IOCTL features this parameter is not relevent. |
| * |
| * \param[in] IoctlCode Control code for the operation. |
| * This value identifies the specific |
| * operation to be performed.For more details on supported |
| * IOCTL codes refer to \ref grp_lib_ioctl. |
| *\param[in,out] pInParam Pointer to any input data structure |
| * containing data which is interpreted |
| * based on IoCtl code and the length of |
| * the data. |
| * |
| *\param[in,out] pOutParam Pointer to output buffer details to hold |
| * Ioctl specific response buffer and size of |
| * the buffer.This buffer will be updated and |
| * sent back as part of of callback details. |
| * |
| *\param[in] pIoCtl_Rsp_cb Response callback registered by the caller. |
| * |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * |
| *\retval NFCSTATUS_PENDING Update in pending state. RspCB will be |
| * called later. |
| *\retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * |
| \retval NFCSTATUS_BUFFER_TOO_SMALL The buffer supplied by the caller is to |
| *\retval NFSCSTATUS_SHUTDOWN Shutdown in progress. |
| *\retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| *\retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *--- [label="Firmware download Scenario"]; |
| |
| *--- [label="Intialise Driver"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_IoCtl(pDriverHandle,)",URL="\ref phLibNfc_Mgt_IoCtl"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pIoCtl_Rsp_cb()",URL="\ref pphLibNfc_IoctlCallback_t"]; |
| **--- [label="requested IoCtl processed sucessfully "]; |
| * |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_Mgt_IoCtl (void* pDriverHandle, |
| uint16_t IoctlCode, |
| phNfc_sData_t* pInParam, |
| phNfc_sData_t* pOutParam, |
| pphLibNfc_IoctlCallback_t pIoCtl_Rsp_cb, |
| void* pContext |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief This interface registers notification handler for target discovery. |
| * |
| * This function allows libNfc client to register for notifications based technology |
| * type it is interested to discover. In case application is interested in multiples technology |
| * discovery,it can enable respective bits in \b pRegistryInfo . when Registered type target |
| * is discovered in RF field ,LibNfc notifies registered notification callback. |
| * |
| * \note In case this API is called multiple times ,most recent request registry details will be used |
| *for registration. |
| * |
| *\param[in] pRegistryInfo structure contains bitwise registry information. |
| * Specific technology type discovery can be registered if |
| * corresponding bit is enabled.In case bit is disabled |
| * it indicates specific technology type unregistered. |
| * |
| *\param[in] pNotificationHandler Notification callback.This callback will |
| * be notified once registered target is discovered. |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * \retval NFCSTATUS_SUCCESS Indicates registration successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could |
| * not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFSCSTATUS_SHUTDOWN Shutdown in progress. |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *--- [label="Register for technology type.Ex: MIFARE UL"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| * |
| *\endmsc |
| */ |
| |
| NFCSTATUS phLibNfc_RemoteDev_NtfRegister( |
| phLibNfc_Registry_Info_t* pRegistryInfo, |
| phLibNfc_NtfRegister_RspCb_t pNotificationHandler, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief Configure Discovery Modes. |
| * |
| *This function is used to configure ,start and stop the discovery wheel. |
| *Configuration includes |
| *<br><br>a)Enabling/disabling of Reader phases for A,B and F technologies. |
| *<br>b)Configuring NFC-IP1 Initiator Speed and duration of the Emulation phase . |
| * |
| *Discovery wheel configuration based on discovery mode selected is as below. |
| *<br><br>1.If discovery Mode is set as \ref NFC_DISCOVERY_CONFIG then previous configurations |
| * over written by new configurations passed in \ref phLibNfc_sADD_Cfg_t and Discovery wheel |
| *restarts with new configurations. |
| *<br><br>2.If discovery Mode is set as \ref NFC_DISCOVERY_START or \ref NFC_DISCOVERY_STOP then |
| * discovery parameters passed in \ref phLibNfc_sADD_Cfg_t will not be considered and previous |
| *configurations still holds good. |
| *<br><br>3.If discovery Mode is set as \ref NFC_DISCOVERY_RESUME discovery mode starts the discovery |
| *wheel from where it is stopped previously. |
| * |
| *\b Note: Config types \b NFC_DISCOVERY_START, \b NFC_DISCOVERY_STOP and \b NFC_DISCOVERY_RESUME |
| * are not supported currently. It is for future use. |
| * |
| * \param[in] DiscoveryMode Discovery Mode allows to choose between: |
| * discovery configuration and start, stop |
| * discovery and start discovery (with last |
| * set configuration).For mode details refer to |
| \ref phNfc_eDiscoveryConfigMode_t. |
| * \param[in] sADDSetup Includes Enable/Disable discovery for |
| * each protocol A,B and F. |
| * Details refer to \ref phNfc_sADD_Cfg_t. |
| * \param[in] pConfigDiscovery_RspCb is called once the discovery wheel |
| * configuration is complete. |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * |
| *\retval NFCSTATUS_PENDING Discovery request is in progress and result |
| * will be notified via callback later. |
| *\retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| *\retval NFCSTATUS_NOT_INITIALISED Indicates stack is not initialized. |
| *\retval NFCSTATUS_INSUFFICIENT_RESOURCES Insufficient resource.(Ex: insufficient memory) |
| *\retval NFCSTATUS_BUSY already discovery in progress |
| * or it is already discovered Target and |
| * connected. |
| *\retval NFSCSTATUS_SHUTDOWN Shutdown in progress. |
| *\retval NFCSTATUS_FAILED Request failed. |
| |
| * |
| * \note : During Reader/Initiator mode it is mandatory |
| * to call \ref phLibNfc_RemoteDev_Connect before any transaction can be performed |
| * with the discovered target. Even if the LibNfc client is not |
| * interested in using any of the discovered targets \ref phLibNfc_RemoteDev_Connect |
| * and \ref phLibNfc_RemoteDev_Disconnect should be called to restart the Discovery |
| * wheel. |
| * \sa \ref phLibNfc_RemoteDev_Connect, phLibNfc_RemoteDev_Disconnect. |
| |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref |
| phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_ConfigureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now discovery wheel configured as requested"]; |
| * |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Discovery Configuration successful. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_FAILED Request failed. |
| */ |
| |
| NFCSTATUS phLibNfc_Mgt_ConfigureDiscovery (phLibNfc_eDiscoveryConfigMode_t DiscoveryMode, |
| phLibNfc_sADD_Cfg_t sADDSetup, |
| pphLibNfc_RspCb_t pConfigDiscovery_RspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief This function is used to to connect to a single Remote Device. |
| * |
| * This function is called to connect to discovered target. |
| * Once notification handler notified sucessfully discovered targets will be available in |
| * \ref phLibNfc_RemoteDevList_t .Remote device list contains valid handles for discovered |
| * targets .Using this interface LibNfc client can connect to one out of 'n' discovered targets. |
| * A new session is started after connect operation is successful.The session ends with a |
| * successful disconnect operation.Connect operation on an already connected tag Reactivates |
| * the Tag.This Feature is not Valid for Jewel/Topaz Tags ,and hence a second connect if issued |
| * without disconnecting a Jewel/Topaz tag always Fails. |
| * |
| * \note :In case multiple targets discovered LibNfc client can connect to only one target. |
| * |
| * \param[in] hRemoteDevice Handle of the target device obtained during discovery process. |
| * |
| * \param[in] pNotifyConnect_RspCb Client response callback to be to be |
| * notified to indicate status of the request. |
| * |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| *\retval NFCSTATUS_PENDING Request initiated, result will be informed via |
| * callback. |
| *\retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| *\retval NFCSTATUS_TARGET_LOST Indicates target is lost. |
| *\retval NFSCSTATUS_SHUTDOWN shutdown in progress. |
| *\retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| *\retval NFCSTATUS_INVALID_HANDLE Target handle is invalid. |
| * |
| *\retval NFCSTATUS_FAILED Request failed. |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present Tag to be discovered"]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_ConnectCallback_t"]; |
| * |
| *\endmsc |
| */ |
| |
| NFCSTATUS phLibNfc_RemoteDev_Connect(phLibNfc_Handle hRemoteDevice, |
| pphLibNfc_ConnectCallback_t pNotifyConnect_RspCb, |
| void* pContext |
| ); |
| |
| #ifdef RECONNECT_SUPPORT |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief This function is used to to connect to NEXT Remote Device. |
| * |
| * This function is called only if there are more than one remote device is detected. |
| * Once notification handler notified sucessfully discovered targets will be available in |
| * \ref phLibNfc_RemoteDevList_t .Remote device list contains valid handles for discovered |
| * targets .Using this interface LibNfc client can connect to one out of 'n' discovered targets. |
| * A new session is started after connect operation is successful. |
| * Similarly, if the user wants to connect to another handle. Libnfc client can select the handle and |
| * the previously connected device is replaced by present handle. The session ends with a |
| * successful disconnect operation. |
| * Re-Connect operation on an already connected tag Reactivates the Tag. This Feature is not |
| * Valid for Jewel/Topaz Tags ,and hence a second re-connect if issued |
| * without disconnecting a Jewel/Topaz tag always Fails. |
| * |
| * \note :In case multiple targets discovered LibNfc client can re-connect to only one target. |
| * |
| * \param[in] hRemoteDevice Handle of the target device obtained during discovery process. |
| * |
| * \param[in] pNotifyReConnect_RspCb Client response callback to be to be |
| * notified to indicate status of the request. |
| * |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| *\retval NFCSTATUS_PENDING Request initiated, result will be informed via |
| * callback. |
| *\retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| *\retval NFCSTATUS_TARGET_LOST Indicates target is lost. |
| *\retval NFSCSTATUS_SHUTDOWN shutdown in progress. |
| *\retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| *\retval NFCSTATUS_INVALID_HANDLE Target handle is invalid. |
| * |
| *\retval NFCSTATUS_FAILED Request failed. |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present multiple protocol Tag to be discovered"]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *--- [label="TWO remote device information is received, So connect with one handle"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_ConnectCallback_t"]; |
| *--- [label="Connect is successful, so transact using this handle. Now if user wants to switch to another handle then call Reconnect "]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_ReConnect()",URL="\ref phLibNfc_RemoteDev_ReConnect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyReConnect_RspCb",URL="\ref pphLibNfc_ConnectCallback_t"]; |
| * |
| *\endmsc |
| */ |
| NFCSTATUS |
| phLibNfc_RemoteDev_ReConnect ( |
| phLibNfc_Handle hRemoteDevice, |
| pphLibNfc_ConnectCallback_t pNotifyReConnect_RspCb, |
| void *pContext); |
| |
| #endif /* #ifdef RECONNECT_SUPPORT */ |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief This interface allows to perform Read/write operation on remote device. |
| * |
| * This function allows to send data to and receive data |
| * from the target selected by libNfc client.It is also used by the |
| * NFCIP1 Initiator while performing a transaction with the NFCIP1 target. |
| * The LibNfc client has to provide the handle of the target and the |
| * command in order to communicate with the selected remote device. |
| * |
| * |
| *\param[in] hRemoteDevice handle of the remote device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| * \param[in] psTransceiveInfo Information required by transceive is concealed in |
| * this structure.It contains send,receive buffers |
| * and command specific details. |
| * |
| * |
| * \param[in] pTransceive_RspCb Callback function for returning the received response |
| * or error. |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * \retval NFCSTATUS_PENDING Request initiated, result will be informed through |
| * the callback. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could |
| * not be properly interpreted or invalid. |
| * \retval NFCSTATUS_COMMAND_NOT_SUPPORTED The command is not supported. |
| * \retval NFSCSTATUS_SHUTDOWN shutdown in progress. |
| * \retval NFCSTATUS_TARGET_LOST Indicates target is lost. |
| * \retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_REJECTED Indicates invalid request. |
| * \retval NFCSTATUS_FAILED Request failed. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present Tag to be discovered"]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_ConnectCallback_t"]; |
| *--- [label="Now perform transceive operation"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Transceive()",URL="\ref phLibNfc_RemoteDev_Transceive "]; |
| *LibNfcClient<-LibNfc [label="pTransceive_RspCb",URL="\ref pphLibNfc_TransceiveCallback_t"]; |
| * |
| *\endmsc |
| */ |
| |
| NFCSTATUS phLibNfc_RemoteDev_Transceive(phLibNfc_Handle hRemoteDevice, |
| phLibNfc_sTransceiveInfo_t* psTransceiveInfo, |
| pphLibNfc_TransceiveCallback_t pTransceive_RspCb, |
| void* pContext |
| ); |
| |
| /** |
| *\ingroup grp_lib_nfc |
| *\brief Allows to disconnect from already connected target. |
| * |
| * The function allows to disconnect from from already connected target. This |
| * function closes the session opened during connect operation.The status of discovery |
| * wheel after disconnection is determined by the \ref phLibNfc_eReleaseType_t parameter. |
| * it is also used to switch from wired to virtual mode in case the discovered |
| * device is SmartMX in wired mode. |
| * |
| *\param[in] hRemoteDevice handle of the target device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| * \param[in] ReleaseType Release mode to be used while |
| * disconnecting from target.Refer \ref phLibNfc_eReleaseType_t |
| * for possible release types. |
| *\param[in] pDscntCallback Client response callback to be to be notified |
| to indicate status of the request. |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| |
| *\retval NFCSTATUS_PENDING Request initiated, result will be informed through |
| the callback. |
| *\retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could not be |
| * properly interpreted. |
| *\retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| *\retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid. |
| *\retval NFSCSTATUS_SHUTDOWN Shutdown in progress. |
| *\retval NFCSTATUS_REJECTED Indicates previous disconnect in progress. |
| * \retval NFCSTATUS_BUSY Indicates can not disconnect due to outstanding transaction in progress. |
| * \retval NFCSTATUS_FAILED Request failed. |
| |
| * |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present Tag to be discovered"]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_ConnectCallback_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Transceive()",URL="\ref phLibNfc_RemoteDev_Transceive"]; |
| *LibNfcClient<-LibNfc [label="pTransceive_RspCb",URL="\ref pphLibNfc_TransceiveCallback_t"]; |
| *--- [label="Once transceive is completed Now disconnect"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Disconnect()",URL="\ref phLibNfc_RemoteDev_Disconnect"]; |
| *LibNfcClient<-LibNfc [label="pDscntCallback",URL="\ref pphLibNfc_RspCb_t"]; |
| * |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_RemoteDev_Disconnect( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_eReleaseType_t ReleaseType, |
| pphLibNfc_DisconnectCallback_t pDscntCallback, |
| void* pContext |
| ); |
| |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| *\brief This interface unregisters notification handler for target discovery. |
| * |
| * This function unregisters the listener which has been registered with |
| * phLibNfc_RemoteDev_NtfUnregister() before. After this call the callback |
| * function won't be called anymore. If nothing is registered the |
| * function still succeeds |
| * \retval NFCSTATUS_SUCCESS callback unregistered. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| *\retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="Perform operations"]; |
| *--- [label="In case required unregister now"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfUnregister()",URL="\ref phLibNfc_RemoteDev_NtfUnregister"]; |
| * |
| *\endmsc |
| */ |
| |
| NFCSTATUS phLibNfc_RemoteDev_NtfUnregister(void); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief Check for target presence. |
| * This function checks ,given target is present in RF filed or not. |
| * Client can make use of this API to check periodically discovered |
| * tag is present in RF field or not. |
| * |
| * |
| *\param[in] hRemoteDevice handle of the target device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| * \param[in] pPresenceChk_RspCb callback function called on completion of the |
| * presence check or in case an error has occurred. |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * \retval NFCSTATUS_PENDING presence check started. Status will be notified |
| * via callback. |
| * |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not initialized. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could |
| * not be properly interpreted. |
| * \retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Request failed. |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present Tag to be discovered"]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_CheckPresence()",URL="\ref phLibNfc_RemoteDev_CheckPresence"]; |
| *LibNfcClient<-LibNfc [label="pPresenceChk_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| * |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Successful,indicates tag is present in RF field. |
| * \param NFCSTATUS_TARGET_LOST Indicates target is lost. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_FAILED Request failed. |
| * |
| */ |
| NFCSTATUS phLibNfc_RemoteDev_CheckPresence( phLibNfc_Handle hRemoteDevice, |
| pphLibNfc_RspCb_t pPresenceChk_RspCb, |
| void* pContext |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| *\brief Allows to check connected tag is NDEF compliant or not. |
| * This function allows to validate connected tag is NDEF compliant or not. |
| * |
| *\param[in] hRemoteDevice handle of the remote device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| *\param[in] pCheckNdef_RspCb Response callback defined by the caller. |
| *\param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * \retval NFCSTATUS_PENDING The action has been successfully triggered. |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function |
| * is invalid. |
| * \retval NFCSTATUS_TARGET_LOST Indicates target is lost |
| * \retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Request failed. |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present NDEF complaint Tag Type"]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_CheckNdef()",URL="\ref phLibNfc_Ndef_CheckNdef "]; |
| *LibNfcClient<-LibNfc [label="pCheckNdef_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| * |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Successful and tag is NDEF compliant . |
| * \param NFCSTATUS_TARGET_LOST NDEF check operation is failed because of target is ** lost. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_ABORTED Aborted due to disconnect operation in between. |
| * \param NFCSTATUS_FAILED Request failed. |
| */ |
| |
| NFCSTATUS phLibNfc_Ndef_CheckNdef(phLibNfc_Handle hRemoteDevice, |
| pphLibNfc_ChkNdefRspCb_t pCheckNdef_RspCb, |
| void* pContext); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief Read NDEF message from a Tag. |
| * This function reads an NDEF message from already connected tag. |
| * the NDEF message is read starting after the position of the last read operation |
| * of the same tag during current session. |
| * If it's FALSE the NDEF message is read from starting of the NDEF message. |
| * If the call returns with NFCSTATUS_PENDING , a response callback pNdefRead_RspCb is |
| * called ,when the read operation is complete. |
| * |
| *\note Before issuing NDEF read operation LibNfc client should perform NDEF check operation |
| * using \ref phLibNfc_Ndef_CheckNdef interface. |
| * If the call back error code is NFCSTATUS_FAILED then the LIBNFC client has to do the |
| * phLibNfc_RemoteDev_CheckPresence to find , its communication error or target lost. |
| * |
| *\param[in] hRemoteDevice handle of the remote device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| * \param[in] psRd Pointer to the read buffer info. |
| * \param[in] Offset Reading Offset : phLibNfc_Ndef_EBegin means from the |
| * beginning, phLibNfc_Ndef_ECurrent means from the |
| * current offset. |
| * \param[in] pNdefRead_RspCb Response callback defined by the caller. |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * \retval NFCSTATUS_SUCCESS NDEF read operation successful. |
| * \retval NFCSTATUS_PENDING Request accepted and started |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could not |
| * be properly interpreted. |
| * \retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| * \retval NFCSTATUS_FAILED Read operation failed since tag does not contain NDEF data. |
| * \retval NFCSTATUS_NON_NDEF_COMPLIANT Tag is not Ndef Compliant. |
| * \param NFCSTATUS_REJECTED Rejected due to NDEF read issued on non |
| * ,or Ndef check has not been performed |
| * before the readNDEF tag. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present NDEF complaint Tag Type"]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_CheckNdef()",URL="\ref phLibNfc_Ndef_CheckNdef "]; |
| *LibNfcClient<-LibNfc [label="pCheckNdef_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_Read()",URL="\ref phLibNfc_Ndef_Read "]; |
| *LibNfcClient<-LibNfc [label="pNdefRead_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| * |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS NDEF read operation successful. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_ABORTED Aborted due to disconnect operation in between. |
| * \param NFCSTATUS_FAILED Request failed. |
| */ |
| NFCSTATUS phLibNfc_Ndef_Read(phLibNfc_Handle hRemoteDevice, |
| phNfc_sData_t* psRd, |
| phLibNfc_Ndef_EOffset_t Offset, |
| pphLibNfc_RspCb_t pNdefRead_RspCb, |
| void* pContext |
| ); |
| /** |
| ** \ingroup grp_lib_nfc |
| * |
| * \brief Write NDEF data to NFC tag. |
| * |
| * This function allows the client to write a NDEF data to already connected NFC tag. |
| * Function writes a complete NDEF message to a tag. If a NDEF message already |
| * exists in the tag, it will be overwritten. When the transaction is complete, |
| * a notification callback is notified. |
| * |
| *\note Before issuing NDEF write operation LibNfc client should perform NDEF check operation |
| * using \ref phLibNfc_Ndef_CheckNdef interface. |
| * |
| *\param[in] hRemoteDevice handle of the remote device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| *\param[in] psWr Ndef Buffer to write. If NdefMessageLen is set to 0 |
| * and pNdefMessage = NULL, the NFC library will erase |
| * tag internally. |
| *\param[in] pNdefWrite_RspCb Response callback defined by the caller. |
| *\param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| *\note If \ref phNfc_sData_t.NdefMessageLen is 0 bytes, this function will erase all |
| *current NDEF data present in the tag. Any non-zero length buffer size |
| *will attempt to write NEDF data onto the tag. |
| * If the call back error code is NFCSTATUS_FAILED then the LIBNFC client has to do the |
| * phLibNfc_RemoteDev_CheckPresence to find , its communication error or target lost. |
| * |
| * |
| * \retval NFCSTATUS_PENDING Request accepted and started. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could not |
| * be properly interpreted. |
| * \retval NFCSTATUS_NON_NDEF_COMPLIANT Tag is not Ndef Compliant. |
| * \retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| * \retval NFCSTATUS_REJECTED Rejected due to NDEF write issued without |
| * performing a CheckNdef(). |
| * \retval NFCSTATUS_FAILED operation failed. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present NDEF Tag "]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_CheckNdef()",URL="\ref phLibNfc_Ndef_CheckNdef "]; |
| *LibNfcClient<-LibNfc [label="pCheckNdef_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_Write()",URL="\ref phLibNfc_Ndef_Write "]; |
| *LibNfcClient<-LibNfc [label="pNdefWrite_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| * |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS NDEF write operation is successful. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_ABORTED, Aborted due to disconnect operation in between. |
| * \param NFCSTATUS_NOT_ENOUGH_MEMORY Requested no of bytes to be writen exceeds size of the memory available on the tag. |
| * \param NFCSTATUS_FAILED Request failed. |
| */ |
| |
| NFCSTATUS phLibNfc_Ndef_Write (phLibNfc_Handle hRemoteDevice, |
| phNfc_sData_t* psWr, |
| pphLibNfc_RspCb_t pNdefWrite_RspCb, |
| void* pContext |
| ); |
| |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief Format target. |
| * |
| * This function allows the LibNfc client to perform NDEF formating operation on discovered target. |
| This function formats given target |
| * |
| *\note |
| * <br>1. Prior to formating it is recommended to perform NDEF check using \ref phLibNfc_Ndef_CheckNdef interface. |
| * <br>2. formatting feature supported only for MIFARE Std,MIFARE UL and Desfire tag types. |
| * If the call back error code is NFCSTATUS_FAILED then the LIBNFC client has to do the |
| * phLibNfc_RemoteDev_CheckPresence to find , its communication error or target lost. |
| * |
| *\param[in] hRemoteDevice handle of the remote device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| *\param[in] pScrtKey info containing the secret key data |
| * and Secret key buffer length. |
| * |
| *\param[in] pNdefformat_RspCb Response callback defined by the caller. |
| *\param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * |
| * \retval NFCSTATUS_PENDING Request accepted and started. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could not |
| * be properly interpreted. |
| * \retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| * \retval NFCSTATUS_FAILED operation failed. |
| * \retval NFCSTATUS_REJECTED Tag is already formatted one. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present non NDEF Tag "]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_CheckNdef()",URL="\ref phLibNfc_Ndef_CheckNdef "]; |
| *LibNfcClient<-LibNfc [label="pCheckNdef_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Tag found to be non NDEF compliant ,now format it"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_FormatNdef()",URL="\ref phLibNfc_RemoteDev_FormatNdef "]; |
| *LibNfcClient<-LibNfc [label="pNdefformat_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| * |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS NDEF formatting operation is successful. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_ABORTED, Aborted due to disconnect operation in between. |
| * \param NFCSTATUS_FAILED Request failed. |
| */ |
| |
| NFCSTATUS phLibNfc_RemoteDev_FormatNdef(phLibNfc_Handle hRemoteDevice, |
| phNfc_sData_t* pScrtKey, |
| pphLibNfc_RspCb_t pNdefformat_RspCb, |
| void* pContext |
| ); |
| |
| #ifdef LIBNFC_READONLY_NDEF |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief To convert a already formatted NDEF READ WRITE tag to READ ONLY. |
| * |
| * This function allows the LibNfc client to convert a already formatted NDEF READ WRITE |
| * tag to READ ONLY on discovered target. |
| * |
| *\note |
| * <br>1. Prior to formating it is recommended to perform NDEF check using \ref phLibNfc_Ndef_CheckNdef interface. |
| * <br>2. READ ONLY feature supported only for MIFARE UL and Desfire tag types. |
| * If the call back error code is NFCSTATUS_FAILED then the LIBNFC client has to do the |
| * phLibNfc_RemoteDev_CheckPresence to find, its communication error or target lost. |
| * |
| *\param[in] hRemoteDevice handle of the remote device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| *\param[in] pScrtKey Key to be used for making Mifare read only. This parameter is |
| * unused in case of readonly for other cards. |
| *\param[in] pNdefReadOnly_RspCb Response callback defined by the caller. |
| *\param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * |
| * \retval NFCSTATUS_PENDING Request accepted and started. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could not |
| * be properly interpreted. |
| * \retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| * \retval NFCSTATUS_FAILED operation failed. |
| * \retval NFCSTATUS_REJECTED Tag is already formatted one. |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present NDEF Tag "]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_CheckNdef()",URL="\ref phLibNfc_Ndef_CheckNdef "]; |
| *LibNfcClient<-LibNfc [label="pCheckNdef_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Tag found to be NDEF compliant ,now convert the tag to read only"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_ConvertToReadOnlyNdef()",URL="\ref phLibNfc_ConvertToReadOnlyNdef "]; |
| *LibNfcClient<-LibNfc [label="pNdefReadOnly_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| * |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Converting the tag to READ ONLY NDEF is successful. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_ABORTED, Aborted due to disconnect operation in between. |
| * \param NFCSTATUS_FAILED Request failed. |
| */ |
| |
| NFCSTATUS phLibNfc_ConvertToReadOnlyNdef (phLibNfc_Handle hRemoteDevice, |
| phNfc_sData_t* pScrtKey, |
| pphLibNfc_RspCb_t pNdefReadOnly_RspCb, |
| void* pContext |
| ); |
| #endif /* #ifdef LIBNFC_READONLY_NDEF */ |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Search for NDEF Record type</b>. |
| * |
| * This function allows LibNfc client to search NDEF content based on TNF value and type \n |
| * |
| *This API allows to find NDEF records based on RTD (Record Type Descriptor) info. |
| *LibNfc internally parses NDEF content based registration type registered. |
| *In case there is match LibNfc notifies LibNfc client with NDEF information details. |
| *LibNfc client can search a new NDEF registration type once the previous call is handled. |
| * |
| *\param[in] hRemoteDevice Handle of the remote device.This handle to be |
| * same as as handle obtained for specific remote device |
| * during device discovery. |
| *\param[in] psSrchTypeList List of NDEF records to be looked in based on TNF value and type. |
| * For NDEF search type refer to \ref phLibNfc_Ndef_SrchType. |
| * If this set to NULL then it means that libNfc client interested in |
| * all possible NDEF records. |
| * |
| *\param[in] uNoSrchRecords Indicates no of NDEF records in requested list as mentioned |
| * in psSrchTypeList. |
| *\param[in] pNdefNtfRspCb Response callback defined by the caller. |
| *\param[in] pContext Client context which will be included in |
| * callback when callback is notified. |
| * |
| * |
| * \retval NFCSTATUS_SUCCESS Indicates NDEF notification registration successful. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_INVALID_HANDLE Target handle is invalid. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters could not |
| * be properly interpreted. |
| * \retval NFCSTATUS_TARGET_NOT_CONNECTED The Remote Device is not connected. |
| * \retval NFCSTATUS_FAILED operation failed. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| * |
| * \retval NFCSTATUS_ABORTED Aborted due to disconnect request in between. |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_configureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *LibNfcClient<-LibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Now Present NDEF Tag "]; |
| *LibNfcClient<-LibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *LibNfcClient<-LibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_CheckNdef()",URL="\ref phLibNfc_Ndef_CheckNdef "]; |
| *LibNfcClient<-LibNfc [label="pCheckNdef_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Ndef_SearchNdefContent()",URL="\ref phLibNfc_Ndef_SearchNdefContent"]; |
| *LibNfcClient<-LibNfc [label="pNdefNtfRspCb",URL="\ref pphLibNfc_Ndef_Search_RspCb_t()"]; |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| */ |
| NFCSTATUS phLibNfc_Ndef_SearchNdefContent( |
| phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Ndef_SrchType_t* psSrchTypeList, |
| uint8_t uNoSrchRecords, |
| pphLibNfc_Ndef_Search_RspCb_t pNdefNtfRspCb, |
| void * pContext |
| ); |
| |
| |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b> Interface used to receive data from initiator at target side during P2P communication</b>. |
| * |
| *This function Allows the NFC-IP1 target to retrieve data/commands coming from the |
| *Initiator.Once this function is called by LibNfc client on target side it waits for |
| *receiving data from initiator.It is used by libNfc client which acts as target during P2P |
| *communication. |
| * |
| *\note : Once this API is called,its mandatory to wait for receive |
| *\ref pphLibNfc_Receive_RspCb_t callback notification,before calling any other |
| *API.Only function allowed is \ref phLibNfc_Mgt_DeInitialize. |
| * |
| * \param[in] hRemoteDevice Peer handle obtained during device discovery process. |
| * |
| * \param[in] pReceiveRspCb Callback function called after receiving |
| * the data or in case an error has |
| * has occurred. |
| * |
| * \param[in] pContext Upper layer context to be returned |
| * in the callback. |
| * |
| * \retval NFCSTATUS_PENDING Receive operation is in progress. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_INVALID_DEVICE The device has been disconnected meanwhile. |
| * \retval NFCSTATUS_DESELECTED Receive operation is not possible due to |
| * initiator issued disconnect or intiator |
| * physically removed from the RF field. |
| * |
| *\retval NFCSTATUS_REJECTED Indicates invalid request. |
| *\retval NFCSTATUS_FAILED Request failed. |
| * |
| *\msc |
| *P2PInitiatorClient,InitiatorLibNfc,P2PTargetLibNfc,P2PTargetClient; |
| *--- [label="stack is intialised and P2P notification handler registered alredy"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_Mgt_SetP2P_ConfigParams()",URL="\ref phLibNfc_Mgt_SetP2P_ConfigParams"]; |
| *P2PTargetClient<<P2PTargetLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pConfigRspCb()",URL="\ref pphLibNfc_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_Mgt_SetP2P_ConfigParams()",URL="\ref phLibNfc_Mgt_SetP2P_ConfigParams"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pConfigRspCb()",URL="\ref pphLibNfc_RspCb_t"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_Mgt_ConfigureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *P2PTargetClient<<P2PTargetLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_Mgt_ConfigureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Place Initiator and target closely"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_ConnectCallback_t"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *--- [label="On connect target must be immediately ready to receive data from initiator"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_RemoteDev_Receive()",URL="\ref phLibNfc_RemoteDev_Receive"]; |
| *--- [label="Now target waits to receive data from intiator"]; |
| *--- [label="Send data from initiator now"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_RemoteDev_Transceive()",URL="\ref phLibNfc_RemoteDev_Transceive "]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pTransceive_RspCb",URL="\ref pphLibNfc_TransceiveCallback_t"]; |
| *--- [label="Now data arrived at target side"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pReceiveRspCb",URL="\ref pphLibNfc_Receive_RspCb_t"]; |
| \endmsc |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Receive operation successful. |
| * \param NFCSTATUS_SHUTDOWN Receive operation failed because Shutdown in progress. |
| * \param NFCSTATUS_ABORTED Aborted due to initiator issued disconnect request. |
| * or intiator removed physically from the RF field. |
| * This status code reported,to indicate P2P session |
| * closed and send and receive requests not allowed |
| * any more unless new session is started. |
| * \param NFCSTATUS_DESELECTED Receive operation is not possible due to |
| * initiator issued disconnect or intiator |
| * physically removed from the RF field. |
| */ |
| extern |
| NFCSTATUS |
| phLibNfc_RemoteDev_Receive( phLibNfc_Handle hRemoteDevice, |
| pphLibNfc_Receive_RspCb_t pReceiveRspCb, |
| void* pContext |
| ); |
| |
| |
| |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Interface used to send data from target to initiator during P2P communication</b>. |
| * |
| *This function Allows the NFC-IP1 target to send data to Initiator,in response to packet received |
| *from initiator during P2P communication.It is must prior to send request target has received |
| *data from initiator using \ref phLibNfc_RemoteDev_Receive interface. |
| * |
| * |
| * \param[in] hRemoteDevice Peer handle obtained during device discovery process. |
| * |
| * \param[in] pTransferData Data and the length of the data to be |
| * transferred. |
| * \param[in] pSendRspCb Callback function called on completion |
| * of the NfcIP sequence or in case an |
| * error has occurred. |
| * |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| ** \retval NFCSTATUS_PENDING Send operation is in progress. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_INVALID_DEVICE The device has been disconnected meanwhile. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| * \retval NFCSTATUS_DESELECTED Receive operation is not possible due to |
| * initiator issued disconnect or intiator |
| * physically removed from the RF field. |
| *\retval NFCSTATUS_REJECTED Indicates invalid request. |
| *\retval NFCSTATUS_FAILED Request failed. |
| * |
| *\msc |
| *P2PInitiatorClient,InitiatorLibNfc,P2PTargetLibNfc,P2PTargetClient; |
| *--- [label="stack is intialised and P2P notification handler registered alredy"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_Mgt_SetP2P_ConfigParams()",URL="\ref phLibNfc_Mgt_SetP2P_ConfigParams"]; |
| *P2PTargetClient<<P2PTargetLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pConfigRspCb()",URL="\ref pphLibNfc_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_Mgt_SetP2P_ConfigParams()",URL="\ref phLibNfc_Mgt_SetP2P_ConfigParams"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pConfigRspCb()",URL="\ref pphLibNfc_RspCb_t"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_Mgt_ConfigureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *P2PTargetClient<<P2PTargetLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_Mgt_ConfigureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Place Initiator and target closely"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_ConnectCallback_t"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *--- [label="On connect target must be immediately ready to receive data from initiator"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_RemoteDev_Receive()",URL="\ref phLibNfc_RemoteDev_Receive"]; |
| *--- [label="Now target waits to receive data from intiator"]; |
| *--- [label="Send data from initiator now"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_RemoteDev_Transceive()",URL="\ref phLibNfc_RemoteDev_Transceive "]; |
| *--- [label="Now data arrived at target side"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pReceiveRspCb",URL="\ref pphLibNfc_Receive_RspCb_t"]; |
| *--- [label="Now send data from target"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_RemoteDev_Send()",URL="\ref phLibNfc_RemoteDev_Send"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pTransceive_RspCb",URL="\ref pphLibNfc_TransceiveCallback_t"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pSendRspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS Send operation successful. |
| * \param NFCSTATUS_SHUTDOWN Send operation failed because Shutdown in progress. |
| * \param NFCSTATUS_ABORTED Aborted due to initiator issued disconnect request. |
| * or intiator removed physically from the RF field. |
| * This status code reported,to indicate P2P session |
| * closed and send and receive requests not allowed |
| * any more unless new session is started. |
| * \param NFCSTATUS_DESELECTED Receive operation is not possible due to |
| * initiator issued disconnect or intiator |
| * physically removed from the RF field. |
| * |
| * |
| */ |
| extern |
| NFCSTATUS |
| phLibNfc_RemoteDev_Send(phLibNfc_Handle hRemoteDevice, |
| phNfc_sData_t* pTransferData, |
| pphLibNfc_RspCb_t pSendRspCb, |
| void* pContext |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Interface to configure P2P and intiator mode configurations</b>. |
| * The setting will be typically take effect for the next cycle of the relevant |
| * phase of discovery. For optional configuration internal defaults will be |
| * used in case the configuration is not set. |
| * |
| *\note Currently general bytes configuration supported. |
| * |
| * \param[in] pConfigInfo Union containing P2P configuration details as |
| * in \ref phLibNfc_sNfcIPCfg_t. |
| * |
| * \param[in] pConfigRspCb This callback has to be called once LibNfc |
| * completes the Configuration. |
| * |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * |
| * \retval NFCSTATUS_PENDING Config operation is in progress. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| * |
| *\msc |
| *P2PInitiatorClient,InitiatorLibNfc,P2PTargetLibNfc,P2PTargetClient; |
| *--- [label="stack is intialised and P2P notification handler registered alredy"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_Mgt_SetP2P_ConfigParams()",URL="\ref phLibNfc_Mgt_SetP2P_ConfigParams"]; |
| *P2PTargetClient<<P2PTargetLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pConfigRspCb()",URL="\ref pphLibNfc_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_Mgt_SetP2P_ConfigParams()",URL="\ref phLibNfc_Mgt_SetP2P_ConfigParams"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PTargetClient=>P2PTargetLibNfc [label="phLibNfc_Mgt_ConfigureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *P2PTargetClient<<P2PTargetLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_Mgt_ConfigureDiscovery()",URL="\ref phLibNfc_Mgt_ConfigureDiscovery"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pConfigDiscovery_RspCb",URL="\ref pphLibNfc_RspCb_t"]; |
| *--- [label="Place Initiator and target closely"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *P2PInitiatorClient=>InitiatorLibNfc [label="phLibNfc_RemoteDev_Connect()",URL="\ref phLibNfc_RemoteDev_Connect"]; |
| *P2PInitiatorClient<<InitiatorLibNfc [label="NFCSTATUS_PENDING"]; |
| *P2PInitiatorClient<-InitiatorLibNfc [label="pNotifyConnect_RspCb",URL="\ref pphLibNfc_ConnectCallback_t"]; |
| *P2PTargetClient<-P2PTargetLibNfc [label="pNotificationHandler",URL="\ref phLibNfc_NtfRegister_RspCb_t"]; |
| *--- [label="Now configured params ( Ex : general bytes can been seen in remote device info"]; |
| *\endmsc |
| * |
| *\note Response callback parameters details for this interface are as listed below. |
| * |
| * \param[in] pContext LibNfc client context passed in the corresponding request before. |
| * \param[in] status Status of the response callback. |
| * |
| * \param NFCSTATUS_SUCCESS configuration operation is successful. |
| * \param NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \param NFCSTATUS_FAILED Request failed. |
| * |
| */ |
| extern NFCSTATUS phLibNfc_Mgt_SetP2P_ConfigParams( phLibNfc_sNfcIPCfg_t* pConfigInfo, |
| pphLibNfc_RspCb_t pConfigRspCb, |
| void* pContext |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Interface to stack capabilities</b>. |
| * |
| * LibNfc client can query to retrieve stack capabilities.Stack capabilities contains |
| * <br><br>a).Device capabilities which contains details like protocols supported, |
| * Hardware,Firmware and model-id version details .For details refer to \ref phNfc_sDeviceCapabilities_t. |
| * <br><br>b).NDEF mapping related info. This info helps in identifying supported tags for NDEF mapping feature. |
| * <br><br>c).NDEF formatting related info. This info helps in identifying supported tags for NDEF formatting feature. |
| * |
| * \param[in] phLibNfc_StackCapabilities Contains device capabilities and NDEF mapping and formatting feature |
| support for different tag types. |
| * |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * |
| * \retval NFCSTATUS_SUCCESS Indicates Get stack Capabilities operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED operation failed. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| * |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_Initialize()",URL="\ref phLibNfc_Mgt_Initialize"]; |
| *LibNfcClient<-LibNfc [label="pInitCb()",URL="\ref pphLibNfc_RspCb_t()"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_RemoteDev_NtfRegister()",URL="\ref phLibNfc_RemoteDev_NtfRegister"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_GetstackCapabilities()",URL="\ref phLibNfc_Mgt_GetstackCapabilities"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="Now stack capabilities available "]; |
| * |
| *\endmsc*/ |
| |
| |
| extern NFCSTATUS phLibNfc_Mgt_GetstackCapabilities(phLibNfc_StackCapabilities_t* phLibNfc_StackCapabilities, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfcHW_ |
| * \brief <b>Interface to configure local LLCP peer</b>. |
| * |
| * This function configures the parameters of the local LLCP peer. This function must be called |
| * before any other LLCP-related function from this API. |
| * |
| * \param[in] pConfigInfo Contains local LLCP link parameters to be applied |
| * \param[in] pConfigRspCb This callback has to be called once LibNfc |
| * completes the Configuration. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_PENDING Configuration operation is in progress, |
| pConfigRspCb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| */ |
| extern NFCSTATUS phLibNfc_Mgt_SetLlcp_ConfigParams( phLibNfc_Llcp_sLinkParameters_t* pConfigInfo, |
| pphLibNfc_RspCb_t pConfigRspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Checks if a remote peer is LLCP compliant</b>. |
| * |
| * This functions allows to check if a previously detected tag is compliant with the |
| * LLCP protocol. This step is needed before calling any other LLCP-related function on |
| * this remote peer, except local LLCP peer configurationn, which is more general. Once |
| * this checking is done, the caller will be able to receive link status notifications |
| * until the peer is disconnected. |
| * |
| * \param[in] hRemoteDevice Peer handle obtained during device discovery process. |
| * \param[in] pCheckLlcp_RspCb The callback to be called once LibNfc |
| * completes the LLCP compliancy check. |
| * \param[in] pLink_Cb The callback to be called each time the |
| * LLCP link status changes. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callbacks. |
| * |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_PENDING Check operation is in progress, pCheckLlcp_RspCb will |
| * be called upon completion. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_CheckLlcp( phLibNfc_Handle hRemoteDevice, |
| pphLibNfc_ChkLlcpRspCb_t pCheckLlcp_RspCb, |
| pphLibNfc_LlcpLinkStatusCb_t pLink_Cb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Activates a LLCP link with a remote device </b>. |
| * |
| * This function launches the link activation process on a remote LLCP-compliant peer. The link status |
| * notification will be sent by the corresponding callback given in the phLibNfc_Llcp_CheckLlcp function. |
| * If the activation fails, the deactivated status will be notified, even if the link is already in a |
| * deactivated state. |
| * |
| * \param[in] hRemoteDevice Peer handle obtained during device discovery process. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_PENDING Activation operation is in progress, |
| pLink_Cb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Activate( phLibNfc_Handle hRemoteDevice ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Deactivate a previously activated LLCP link with a remote device</b>. |
| * |
| * This function launches the link deactivation process on a remote LLCP-compliant peer. The link status |
| * notification will be sent by the corresponding callback given in the phLibNfc_Llcp_CheckLlcp function. |
| * |
| * \param[in] hRemoteDevice Peer handle obtained during device discovery process. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_PENDING Deactivation operation is in progress, |
| pLink_Cb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Deactivate( phLibNfc_Handle hRemoteDevice ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Get information on the local LLCP peer</b>. |
| * |
| * This function returns the LLCP link parameters of the local peer that were used |
| * during the link activation. |
| * |
| * \param[in] hRemoteDevice Peer handle obtained during device discovery process. |
| * \param[out] pConfigInfo Pointer on the variable to be filled with the configuration |
| parameters used during activation. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_GetLocalInfo( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Llcp_sLinkParameters_t* pConfigInfo |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Get information on the remote LLCP peer</b>. |
| * |
| * This function returns the LLCP link parameters of the remote peer that were received |
| * during the link activation. |
| * |
| * \param[in] hRemoteDevice Peer handle obtained during device discovery process. |
| * \param[out] pConfigInfo Pointer on the variable to be filled with the configuration |
| parameters used during activation. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_GetRemoteInfo( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Llcp_sLinkParameters_t* pConfigInfo |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Create a socket on a LLCP-connected device</b>. |
| * |
| * This function creates a socket for a given LLCP link. Sockets can be of two types : |
| * connection-oriented and connectionless. If the socket is connection-oriented, the caller |
| * must provide a working buffer to the socket in order to handle incoming data. This buffer |
| * must be large enough to fit the receive window (RW * MIU), the remaining space being |
| * used as a linear buffer to store incoming data as a stream. Data will be readable later |
| * using the phLibNfc_Llcp_Recv function. If the socket is connectionless, the caller may |
| * provide a working buffer to the socket in order to bufferize as many packets as the buffer |
| * can contain (each packet needs MIU + 1 bytes). |
| * The options and working buffer are not required if the socket is used as a listening socket, |
| * since it cannot be directly used for communication. |
| * |
| * \param[in] eType The socket type. |
| * \param[in] psOptions The options to be used with the socket. |
| * \param[in] psWorkingBuffer A working buffer to be used by the library. |
| * \param[out] phSocket A pointer on the variable to be filled with the handle |
| * on the created socket. |
| * \param[in] pErr_Cb The callback to be called each time the socket |
| * is in error. |
| * \param[in] pContext Upper layer context to be returned in the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_BUFFER_TOO_SMALL The working buffer is too small for the MIU and RW |
| * declared in the options. |
| * \retval NFCSTATUS_INSUFFICIENT_RESOURCES No more socket handle available. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Socket( phLibNfc_Llcp_eSocketType_t eType, |
| phLibNfc_Llcp_sSocketOptions_t* psOptions, |
| phNfc_sData_t* psWorkingBuffer, |
| phLibNfc_Handle* phSocket, |
| pphLibNfc_LlcpSocketErrCb_t pErr_Cb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Get SAP of remote services using their names</b>. |
| * |
| * This function sends SDP queries to the remote peer to get the SAP to address for a given |
| * service name. The queries are aggregated as much as possible for efficiency, but if all |
| * the queries cannot fit in a single packet, they will be splitted in multiple packets. |
| * The callback will be called only when all of the requested services names SAP will be |
| * gathered. As mentionned in LLCP specification, a SAP of 0 means that the service name |
| * as not been found. |
| * |
| * This feature is available only since LLCP v1.1, both devices must be at least v1.1 in |
| * order to be able to use this function. |
| * |
| * \param[in] hRemoteDevice Peer handle obtained during device discovery process. |
| * \param[in] psServiceNameList The list of the service names to discover. |
| * \param[out] pnSapList The list of the corresponding SAP numbers, in the same |
| * order than the service names list. |
| * \param[in] nListSize The size of both service names and SAP list. |
| * \param[in] pDiscover_Cb The callback to be called once LibNfc matched SAP for |
| * all of the provided service names. |
| * \param[in] pContext Upper layer context to be returned in the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| * \retval NFCSTATUS_FEATURE_NOT_SUPPORTED Remote peer does not support this feature (e.g.: is v1.0). |
| * \retval NFCSTATUS_BUSY Previous request in progress can not accept new request. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_DiscoverServices( phLibNfc_Handle hRemoteDevice, |
| phNfc_sData_t *psServiceNameList, |
| uint8_t *pnSapList, |
| uint8_t nListSize, |
| pphLibNfc_RspCb_t pDiscover_Cb, |
| void *pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Close a socket on a LLCP-connected device</b>. |
| * |
| * This function closes a LLCP socket previously created using phLibNfc_Llcp_Socket. |
| * If the socket was connected, it is first disconnected, and then closed. |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Close( phLibNfc_Handle hSocket ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Get the local options of a socket</b>. |
| * |
| * This function returns the local options (maximum packet size and receive window size) used |
| * for a given connection-oriented socket. This function shall not be used with connectionless |
| * sockets. |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] psLocalOptions A pointer to be filled with the local options of the socket. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_SocketGetLocalOptions( phLibNfc_Handle hSocket, |
| phLibNfc_Llcp_sSocketOptions_t* psLocalOptions |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Get the local options of a socket</b>. |
| * |
| * This function returns the remote options (maximum packet size and receive window size) used |
| * for a given connection-oriented socket. This function shall not be used with connectionless |
| * sockets. |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] psRemoteOptions A pointer to be filled with the remote options of the socket. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_SocketGetRemoteOptions( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| phLibNfc_Llcp_sSocketOptions_t* psRemoteOptions |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Bind a socket to a local SAP</b>. |
| * |
| * This function binds the socket to a local Service Access Point. |
| * |
| * \param[in] hSocket Peer handle obtained during device discovery process. |
| * \param TODO (nSap + sn) |
| |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_ALREADY_REGISTERED The selected SAP is already bound to another |
| socket. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Bind( phLibNfc_Handle hSocket, |
| uint8_t nSap, |
| phNfc_sData_t * psServiceName |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Listen for incoming connection requests on a socket</b>. |
| * |
| * This function switches a socket into a listening state and registers a callback on |
| * incoming connection requests. In this state, the socket is not able to communicate |
| * directly. The listening state is only available for connection-oriented sockets |
| * which are still not connected. The socket keeps listening until it is closed, and |
| * thus can trigger several times the pListen_Cb callback. The caller can adverise the |
| * service through SDP by providing a service name. |
| * |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] pListen_Cb The callback to be called each time the |
| * socket receive a connection request. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state to switch |
| * to listening state. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Listen( phLibNfc_Handle hSocket, |
| pphLibNfc_LlcpSocketListenCb_t pListen_Cb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Accept an incoming connection request for a socket</b>. |
| * |
| * This functions allows the client to accept an incoming connection request. |
| * It must be used with the socket provided within the listen callback. The socket |
| * is implicitly switched to the connected state when the function is called. |
| * |
| * \param[in] hSocket Socket handle obtained in the listening callback. |
| * \param[in] psOptions The options to be used with the socket. |
| * \param[in] psWorkingBuffer A working buffer to be used by the library. |
| * \param[in] pErr_Cb The callback to be called each time the accepted socket |
| * is in error. |
| * \param[in] pAccept_RspCb The callback to be called when the Accept operation |
| * is completed. |
| * \param[in] pContext Upper layer context to be returned in the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_BUFFER_TOO_SMALL The working buffer is too small for the MIU and RW |
| * declared in the options. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Accept( phLibNfc_Handle hSocket, |
| phLibNfc_Llcp_sSocketOptions_t* psOptions, |
| phNfc_sData_t* psWorkingBuffer, |
| pphLibNfc_LlcpSocketErrCb_t pErr_Cb, |
| pphLibNfc_LlcpSocketAcceptCb_t pAccept_RspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Reject an incoming connection request for a socket</b>. |
| * |
| * This functions allows the client to reject an incoming connection request. |
| * It must be used with the socket provided within the listen callback. The socket |
| * is implicitly closed when the function is called. |
| * |
| * \param[in] hSocket Socket handle obtained in the listening callback. |
| * \param[in] pReject_RspCb The callback to be called when the Reject operation |
| * is completed. |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| pphLibNfc_LlcpSocketAcceptCb_t pReject_RspCb, |
| void* pContext); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Try to establish connection with a socket on a remote SAP</b>. |
| * |
| * This function tries to connect to a given SAP on the remote peer. If the |
| * socket is not bound to a local SAP, it is implicitly bound to a free SAP. |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] nSap The destination SAP to connect to. |
| * \param[in] pConnect_RspCb The callback to be called when the connection |
| * operation is completed. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_PENDING Connection operation is in progress, |
| * pConnect_RspCb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| uint8_t nSap, |
| pphLibNfc_LlcpSocketConnectCb_t pConnect_RspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Try to establish connection with a socket on a remote service, given its URI</b>. |
| * |
| * This function tries to connect to a SAP designated by an URI. If the |
| * socket is not bound to a local SAP, it is implicitly bound to a free SAP. |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] psUri The URI corresponding to the destination SAP to connect to. |
| * \param[in] pConnect_RspCb The callback to be called when the connection |
| * operation is completed. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_PENDING Connection operation is in progress, |
| * pConnect_RspCb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| phNfc_sData_t* psUri, |
| pphLibNfc_LlcpSocketConnectCb_t pConnect_RspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Disconnect a currently connected socket</b>. |
| * |
| * This function initiates the disconnection of a previously connected socket. |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] pDisconnect_RspCb The callback to be called when the |
| * operation is completed. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_PENDING Disconnection operation is in progress, |
| * pDisconnect_RspCb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| pphLibNfc_LlcpSocketDisconnectCb_t pDisconnect_RspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Read data on a socket</b>. |
| * |
| * This function is used to read data from a socket. It reads at most the |
| * size of the reception buffer, but can also return less bytes if less bytes |
| * are available. If no data is available, the function will be pending until |
| * more data comes, and the response will be sent by the callback. This function |
| * can only be called on a connection-oriented socket. |
| * |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] psBuffer The buffer receiving the data. |
| * \param[in] pRecv_RspCb The callback to be called when the |
| * operation is completed. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_PENDING Reception operation is in progress, |
| * pRecv_RspCb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| phNfc_sData_t* psBuffer, |
| pphLibNfc_LlcpSocketRecvCb_t pRecv_RspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Read data on a socket and get the source SAP</b>. |
| * |
| * This function is the same as phLibNfc_Llcp_Recv, except that the callback includes |
| * the source SAP. This functions can only be called on a connectionless socket. |
| * |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] psBuffer The buffer receiving the data. |
| * \param[in] pRecv_RspCb The callback to be called when the |
| * operation is completed. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_PENDING Reception operation is in progress, |
| * pRecv_RspCb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| phNfc_sData_t* psBuffer, |
| pphLibNfc_LlcpSocketRecvFromCb_t pRecv_Cb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Send data on a socket</b>. |
| * |
| * This function is used to write data on a socket. This function |
| * can only be called on a connection-oriented socket which is already |
| * in a connected state. |
| * |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] psBuffer The buffer containing the data to send. |
| * \param[in] pSend_RspCb The callback to be called when the |
| * operation is completed. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_PENDING Reception operation is in progress, |
| * pSend_RspCb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| phNfc_sData_t* psBuffer, |
| pphLibNfc_LlcpSocketSendCb_t pSend_RspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Send data on a socket to a given destination SAP</b>. |
| * |
| * This function is used to write data on a socket to a given destination SAP. |
| * This function can only be called on a connectionless socket. |
| * |
| * |
| * \param[in] hSocket Socket handle obtained during socket creation. |
| * \param[in] nSap The destination SAP. |
| * \param[in] psBuffer The buffer containing the data to send. |
| * \param[in] pSend_RspCb The callback to be called when the |
| * operation is completed. |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * \retval NFCSTATUS_SUCCESS Operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_PENDING Reception operation is in progress, |
| * pSend_RspCb will be called upon completion. |
| * \retval NFCSTATUS_INVALID_STATE The socket is not in a valid state, or not of |
| * a valid type to perform the requsted operation. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| * \retval NFCSTATUS_FAILED Operation failed. |
| */ |
| extern NFCSTATUS phLibNfc_Llcp_SendTo( phLibNfc_Handle hRemoteDevice, |
| phLibNfc_Handle hSocket, |
| uint8_t nSap, |
| phNfc_sData_t* psBuffer, |
| pphLibNfc_LlcpSocketSendCb_t pSend_RspCb, |
| void* pContext |
| ); |
| |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * |
| * \brief Initializes \ DeInitialize the NFC library for testmode. |
| * |
| * |
| *\brief This function initializes / DeInitialize NFC library and its underlying layers |
| * in test mode. As part of this interface underlying layers gets configured. |
| * Once phLibNfc_TstMode_On is successful ,NFC library ready in testmode using IOCTL. |
| * After using test IOCTLs ,Test mode should be DeInit using phLibNfc_TstMode_Off. |
| *\note This API should be used only for test IOCTL codes. |
| * |
| * \param[in] pDriverHandle Driver Handle currently application is using. |
| * \param[in] pTestModeCb The init callback is called by the LibNfc when |
| * Configure test mode completed or there is an error |
| * in initialization. |
| * |
| * \param[in] pContext Client context which will be included in |
| * callback when the request is completed. |
| * |
| * \retval NFCSTATUS_ALREADY_INITIALISED Stack is already initialized. |
| * \retval NFCSTATUS_PENDING Init sequence has been successfully |
| * started and result will be conveyed via |
| * callback notification. |
| * \retval NFCSTATUS_INVALID_PARAMETER The parameter could not be properly |
| * interpreted. |
| *\retval NFCSTATUS_INSUFFICIENT_RESOURCES Insufficient resource.(Ex: insufficient memory) |
| * |
| *\msc |
| *LibNfcClient,LibNfc; |
| *--- [label="Before initializing Nfc LIB,Setup Driver layer"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_ConfigureDriver()",URL="\ref phLibNfc_Mgt_ConfigureDriver"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_SUCCESS"]; |
| *LibNfcClient=>LibNfc [label="phLibNfc_Mgt_ConfigureTestMode()",URL="\ref phLibNfc_Mgt_ConfigureTestMode"]; |
| *LibNfcClient<<LibNfc [label="NFCSTATUS_PENDING"]; |
| *LibNfcClient<-LibNfc [label="pTestModeCb"]; |
| *\endmsc |
| */ |
| NFCSTATUS phLibNfc_Mgt_ConfigureTestMode(void *pDriverHandle, |
| pphLibNfc_RspCb_t pTestModeCb, |
| phLibNfc_Cfg_Testmode_t eTstmode, |
| void *pContext |
| ); |
| |
| /** |
| * \ingroup grp_lib_nfc |
| * \brief <b>Interface to LibNfc Reset</b>. |
| * |
| * LibNfc client can reset the stack. |
| * |
| * \param[in] pContext Upper layer context to be returned in |
| * the callback. |
| * |
| * |
| * \retval NFCSTATUS_SUCCESS Indicates Get stack Capabilities operation successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER One or more of the supplied parameters |
| * could not be properly interpreted. |
| * \retval NFCSTATUS_NOT_INITIALISED Indicates stack is not yet initialized. |
| * \retval NFCSTATUS_SHUTDOWN Shutdown in progress. |
| */ |
| |
| NFCSTATUS phLibNfc_Mgt_Reset(void *pContext); |
| |
| #endif /* PHLIBNFC_H */ |
| |