Infineon Logo AIROC BTSDK v4.9 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
iAP2 Protocol Library API

iAP2 library of the AIROC BTSDK provides a simple method for an application to integrate iAP2 functionality. More...

Data Structures

struct  wiced_bt_iap2_event_data_rfcomm_connected_t
 
struct  wiced_bt_iap2_event_data_rfcomm_disconnected_t
 
union  wiced_bt_iap2_event_data_t
 
struct  wiced_bt_iap2_reg_t
 Following structure is used to register application with wiced_bt_iap2 library. More...
 

Macros

#define IAP2_ACCESSORY_UUID   0x00, 0x00, 0x00, 0x00, 0xde, 0xCA, 0xfA, 0xDE, 0xde, 0xca, 0xde, 0xaf, 0xDE, 0xca, 0xCA, 0xff
 iAP2 Accessory Service
 
#define IAP2_DEVICE_UUID   0x00, 0x00, 0x00, 0x00, 0xde, 0xCA, 0xfA, 0xDE, 0xde, 0xca, 0xde, 0xaf, 0xDE, 0xca, 0xCA, 0xfe
 iAP2 Device Service
 
#define IAP2_MAX_PACKET_SIZE   1003
 
#define PORT_PURGE_TXCLEAR   0x01
 
#define PORT_PURGE_RXCLEAR   0x02
 
#define IAP2_CONN_RFCOMM_FAILED   0x01
 failed to create RFCOMM connection
 
#define IAP2_CONN_RFCOMM_CLOSED   0x02
 RFCOMM connection closed.
 
#define IAP2_CONN_SVC_DISC_FAILED   0x03
 service discovery failed
 
#define IAP2_CONN_AUTH_FAILED   0x04
 authentication failed
 
#define IAP2_CONN_ID_REJECTED   0x05
 identification rejected
 
#define IAP2_CONN_EAP_FAILED   0x06
 external accessory protocol session failed
 
#define IAP2_CONN_PEER_RESET   0x07
 peer reset the iAP2 link
 
#define IAP2_CONN_NO_RESP   0x08
 no response from iAP2 peer
 
#define IAP2_MATCH_ACTION_NO_PROMPT   0
 
#define IAP2_MATCH_ACTION_DEVICE_MAY_PROMPT_AND_FIND_APP_BUTTON   1
 
#define IAP2_MATCH_ACTION_DEVICE_NO_PROMPT_AND_FIND_APP_BUTTON   2
 
#define AUTH_CHIP_INFO_DATA_SIZE   8
 

Typedefs

typedef void(* wiced_bt_iap2_connection_up_callback_t )(uint16_t handle, uint8_t *bd_addr)
 Function wiced_bt_iap2_connection_up_callback. More...
 
typedef void(* wiced_bt_iap2_connection_failed_callback_t )(uint8_t err_code)
 Function wiced_bt_iap2_connection_failed_callback. More...
 
typedef void(* wiced_bt_iap2_service_not_found_callback_t )(void)
 Function wiced_bt_iap2_service_not_found_callback. More...
 
typedef void(* wiced_bt_iap2_connection_down_callback_t )(uint16_t handle)
 Function wiced_bt_iap2_connection_down_callback. More...
 
typedef void(* wiced_bt_iap2_tx_complete_callback_t )(uint16_t handle, wiced_result_t result)
 Function wiced_bt_iap2_tx_complete_callback. More...
 
typedef wiced_bool_t(* wiced_bt_iap2_rx_data_callback_t )(uint16_t handle, uint8_t *data, uint32_t dataLen)
 Function wiced_bt_iap2_rx_data_callback. More...
 
typedef void( wiced_bt_iap2_callback_t )(wiced_bt_iap2_event_t event, wiced_bt_iap2_event_data_t *p_data)
 Function wiced_bt_iap2_callback_t.
 

Enumerations

enum  wiced_bt_iap2_event_t { WICED_BT_IAP2_EVENT_RFCOMM_CONNECTED, WICED_BT_IAP2_EVENT_RFCOMM_DISCONNECTED }
 

Functions

wiced_result_t wiced_bt_iap2_get_auth_chip_info (uint8_t *buffer, uint32_t buffer_size)
 Function wiced_bt_iap2_get_auth_chip_info. More...
 
void wiced_bt_iap2_startup (wiced_bt_iap2_reg_t *p_reg)
 Function wiced_bt_iap2_startup. More...
 
void wiced_bt_iap2_connect (uint8_t *bd_addr)
 Function wiced_bt_iap2_connect. More...
 
void wiced_bt_iap2_disconnect (uint16_t handle)
 Function wiced_bt_iap2_disconnect. More...
 
wiced_bool_t wiced_bt_iap2_send_session_data (uint16_t session, uint8_t *p_data, uint32_t len)
 Function wiced_bt_iap2_send_session_data. More...
 
void wiced_bt_iap2_rx_flow_enable (uint16_t session, wiced_bool_t enable)
 Function wiced_bt_iap2_rx_flow_enable. More...
 
wiced_bool_t wiced_bt_iap2_can_send_more_data (void)
 Function wiced_bt_iap2_can_send_more_data. More...
 
void wiced_bt_iap2_port_purge (uint16_t handle, uint8_t purge_flags)
 iAP2 application may use this function to discard all the data from the output or input queues of the specified connection. More...
 
uint16_t wiced_bt_iap2_rfcomm_get_peer_mtu (uint16_t handle)
 iAP2 application use this function to read the peer_mtu size when rfcomm connection made More...
 
uint8_t wiced_bt_iap2_get_connection_state (uint8_t *bd_addr)
 iAP2 application use this function to get the connection state with the peer specified by btaddr More...
 

Variables

uint8_t LocalName []
 Data provided by the application and utilized by the library. More...
 
uint8_t ModelIdentifier []
 zero terminating string with Model Identifier
 
uint8_t Manufacturer []
 zero terminating string with Manufacturer Name
 
uint8_t SerialNumber []
 zero terminating string with device serial number
 
uint8_t FirmwareVersion []
 zero terminating string with firmware version number
 
uint8_t HardwareVersion []
 zero terminating string with firmware version number
 
uint8_t ExternalAccessoryProtocolName []
 zero terminating string with the external accessory protocol name
 
uint8_t MatchAction
 
uint8_t AppMatchTeamId []
 zero terminating string with the match team ID
 
uint8_t CurrentLanguage []
 zero terminating string with the current language
 
uint8_t SupportedLanguage []
 list of zero terminating strings with supported languages for example en\0fr\0\0
 
uint8_t ProductPlanUID []
 zero terminating string with sample ProductPlanUID value More...
 

Detailed Description

iAP2 library of the AIROC BTSDK provides a simple method for an application to integrate iAP2 functionality.

A single External Accessory session is supported in the current version. Application just needs to call API to connect/disconnect and send data. Library in turn indicates status of the connection and passes to the application received data.

Typedef Documentation

typedef void(* wiced_bt_iap2_connection_down_callback_t)(uint16_t handle)

Function wiced_bt_iap2_connection_down_callback.

Connection Down callback indicates that an active External Accessory session has been terminated.

Parameters
[in]handle: Handle that identifies the external accessory session
Returns
Nothing
typedef void(* wiced_bt_iap2_connection_failed_callback_t)(uint8_t err_code)

Function wiced_bt_iap2_connection_failed_callback.

Connection failed callback indicates to the application that the library failed to establish RFCOMM connection with the peer device after connection was requested by the wiced_bt_iap2_connect call.

Returns
Nothing
typedef void(* wiced_bt_iap2_connection_up_callback_t)(uint16_t handle, uint8_t *bd_addr)

Function wiced_bt_iap2_connection_up_callback.

Application must implement connection up callback to be called by the library. The callback indicates to the application that External Accessory session with a specified device has been successfully established. This can be a result of the wiced_bt_iap2_connect requested by the application, or due to an iOS device establishing connection from its side.

Parameters
[in]handle: Handle that identifies the external accessory session
[in]bd_addr: Bluetooth Device address of the connected iOS device.
Returns
Nothing
typedef wiced_bool_t(* wiced_bt_iap2_rx_data_callback_t)(uint16_t handle, uint8_t *data, uint32_t dataLen)

Function wiced_bt_iap2_rx_data_callback.

Rx Data callback passed to the application data received over the External Accessory session. The first 2 octets of the data have the handle of the session in the big endian format.

Parameters
[in]handle: Handle that identifies the external accessory session
[in]p_data: Pointer to buffer with data to send. The first 2 octets of the p_data contain the handle passed to the application in the wiced_bt_iap2_connection_up_callback in the big endian format.
[in]len: Length of the data + handle
Returns
Nothing
typedef void(* wiced_bt_iap2_service_not_found_callback_t)(void)

Function wiced_bt_iap2_service_not_found_callback.

Service not found callback indicates wiced_bt_iap2_connect call requested to establish connection to a device which is currently not present, or which is not running IAP2 service.

Returns
Nothing
typedef void(* wiced_bt_iap2_tx_complete_callback_t)(uint16_t handle, wiced_result_t result)

Function wiced_bt_iap2_tx_complete_callback.

Transmission Complete callback indicates that application can send more data.

Parameters
[in]handle: Handle that identifies the external accessory session
[in]result: Result of tx operaion. 0 if success.
Returns
Nothing

Function Documentation

wiced_bool_t wiced_bt_iap2_can_send_more_data ( void  )

Function wiced_bt_iap2_can_send_more_data.

Returns TRUE if library can queue forward data, or FALSE if forward data queue is full.

void wiced_bt_iap2_connect ( uint8_t *  bd_addr)

Function wiced_bt_iap2_connect.

Establish External Accessory connection to an iOS device. Library will perform Service Discovery. If iAP2 service is running on the specified device RFCOMM connection is established. If connection is established, accessory initiates iAP negotiations which includes accessory authentication and identification. Application on the device is responsible to start External Accessory Session. When session is established, library executes iap2_connection_up_callback.

Parameters
[out]bd_addr: Bluetooth Device address to connect to.
Returns
Nothing
void wiced_bt_iap2_disconnect ( uint16_t  handle)

Function wiced_bt_iap2_disconnect.

Disconnect External Accessory Session with the iOS device. Bluetooth connection is brought down as well.

Parameters
[out]handle: The handle returned by the application in the wiced_bt_iap2_connection_up_callback.
Returns
Nothing
wiced_result_t wiced_bt_iap2_get_auth_chip_info ( uint8_t *  buffer,
uint32_t  buffer_size 
)

Function wiced_bt_iap2_get_auth_chip_info.

Read the auth chip info

Parameters
[out]buffer:Pointer to buffer to get the auth chip info
[out]buffer_size:buffer size
Returns
Status
uint8_t wiced_bt_iap2_get_connection_state ( uint8_t *  bd_addr)

iAP2 application use this function to get the connection state with the peer specified by btaddr

Returns
connection state
void wiced_bt_iap2_port_purge ( uint16_t  handle,
uint8_t  purge_flags 
)

iAP2 application may use this function to discard all the data from the output or input queues of the specified connection.

Parameters
[in]handle: Connection handle indicated in the connection up callback
[in]purge_flags- specify the action to take with PORT_PURGE_TXCLEAR and/or PORT_PURGE_RXCLEAR.
Returns
rfcomm port return code
uint16_t wiced_bt_iap2_rfcomm_get_peer_mtu ( uint16_t  handle)

iAP2 application use this function to read the peer_mtu size when rfcomm connection made

Returns
rfcomm port peer mtu size
void wiced_bt_iap2_rx_flow_enable ( uint16_t  session,
wiced_bool_t  enable 
)

Function wiced_bt_iap2_rx_flow_enable.

IAP2 application may use this call to disable or reenable the RX data flow

Parameters
[out]session: Must always be IAP2_EA_SESSION_ID
[out]enable: If true, data flow is enabled
Returns
Nothing
wiced_bool_t wiced_bt_iap2_send_session_data ( uint16_t  session,
uint8_t *  p_data,
uint32_t  len 
)

Function wiced_bt_iap2_send_session_data.

Send data over the established External Accessory connection. The session must be IAP2_EA_SESSION_ID. The first 2 octets of the p_data must be the handle passed to the application in the wiced_bt_iap2_connection_up_callback in the big endian format.

Parameters
[out]session: Must always be IAP2_EA_SESSION_ID
[out]p_data: Pointer to buffer with data to send. The first 2 octets of the p_data must be the handle passed to the application in the wiced_bt_iap2_connection_up_callback in the big endian format.
[out]len: Length of the data + handle
Returns
WICED_TRUE: if data is scheduled for transmission, otherwise WICED_FALSE
void wiced_bt_iap2_startup ( wiced_bt_iap2_reg_t p_reg)

Function wiced_bt_iap2_startup.

Initialize IAP2 library and starts the RFCOMM service.

Parameters
[out]p_reg: Registration control block that includes RFCOMM SCN and callbacks
Returns
Nothing

Variable Documentation

uint8_t LocalName[]

Data provided by the application and utilized by the library.

zero terminating string with BT Local Name

uint8_t ProductPlanUID[]

zero terminating string with sample ProductPlanUID value

Size of the buffer required to read chip information from the MFi chip