Infineon Logo AIROC BTSDK v4.6 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups
GATT Profiles

Bluetooth LE GATT Profiles functions. More...

Typedefs

struct {
   UINT16   fine_timer_interval
 
   UINT8   default_adv
 
   UINT8   button_adv_toggle
 
   UINT16   high_undirect_adv_interval
 
   UINT16   low_undirect_adv_interval
 
   UINT16   high_undirect_adv_duration
 
   UINT16   low_undirect_adv_duration
 
   UINT16   high_direct_adv_interval
 
   UINT16   low_direct_adv_interval
 
   UINT16   high_direct_adv_duration
 
   UINT16   low_direct_adv_duration
 
   char   local_name [LOCAL_NAME_LEN_MAX]
 
   char   cod [COD_LEN]
 
   char   ver [VERSION_LEN]
 
   UINT8   encr_required
 
   UINT8   disc_required
 
   UINT8   test_enable
 
   UINT8   tx_power_level
 
   UINT8   con_idle_timeout
 
   UINT8   powersave_timeout
 
   UINT16   hdl [HANDLE_NUM_MAX]
 
   UINT16   serv [HANDLE_NUM_MAX]
 
   UINT16   cha [HANDLE_NUM_MAX]
 
   UINT8   findme_locator_enable
 
   UINT8   findme_alert_level
 
   UINT8   client_grouptype_enable
 
   UINT8   linkloss_button_enable
 
   UINT8   pathloss_check_interval
 
   UINT8   alert_interval
 
   UINT8   high_alert_num
 
   UINT8   mild_alert_num
 
   UINT8   status_led_enable
 
   UINT8   status_led_interval
 
   UINT8   status_led_con_blink
 
   UINT8   status_led_dir_adv_blink
 
   UINT8   status_led_un_adv_blink
 
   UINT16   led_on_ms
 
   UINT16   led_off_ms
 
   UINT16   buz_on_ms
 
   UINT8   button_power_timeout
 
   UINT8   button_client_timeout
 
   UINT8   button_discover_timeout
 
   UINT8   button_filter_timeout
 
BLE_PROFILE_CFG
 Bluetooth LE Profile Configuration. More...
 
struct {
   UINT32   baudrate
 
   UINT8   txpin
 
   UINT8   rxpin
 
BLE_PROFILE_PUART_CFG
 UART Configuration. More...
 
struct {
   INT8   gpio_pin [GPIO_NUM_MAX]
 
   UINT16   gpio_flag [GPIO_NUM_MAX]
 
BLE_PROFILE_GPIO_CFG
 GPIO Configuration. More...
 

Functions

void bleprofile_GenerateADVData (BLE_ADV_FIELD *p_adv, UINT8 number)
 Generate Advertisement data. More...
 
void bleprofile_GenerateScanRspData (BLE_ADV_FIELD *p_adv, UINT8 number)
 Generate Scan Response data. More...
 
void bleprofile_CFGRegister (BLE_PROFILE_CFG *p_cfg)
 Register Configuration. More...
 
void bleprofile_PUARTRegister (BLE_PROFILE_PUART_CFG *p_puart_cfg)
 Register Peripheral UART Configuration. More...
 
void bleprofile_GPIORegister (BLE_PROFILE_GPIO_CFG *p_gpio_cfg)
 Register GPIO Configuration. More...
 
void bleprofile_Init (BLE_PROFILE_CFG *p_cfg)
 Initialize Blueooth LE profile. More...
 
void bleprofile_GPIOInit (BLE_PROFILE_GPIO_CFG *p_gpio_cfg)
 Initialize GPIO. More...
 
UINT8 bleprofile_ReadNVRAM (UINT8 vsID, UINT8 itemLength, UINT8 *payload)
 Read NVRAM. More...
 
UINT8 bleprofile_WriteNVRAM (UINT8 vsID, UINT8 itemLength, UINT8 *payload)
 Write NVRAM. More...
 
BOOL32 bleprofile_DeleteNVRAM (UINT8 vsID)
 Delete NVRAM. More...
 
void bleprofile_WPEnable (UINT8 wp_enable)
 Sets NVRAM Write Protection. More...
 
void bleprofile_ReadUART (char *data)
 Read UART. More...
 
INT32 bleprofile_ReadHandle (UINT16 hdl, BLEPROFILE_DB_PDU *p_pdu)
 Read local GATT database by handle. More...
 
INT32 bleprofile_WriteHandle (UINT16 hdl, BLEPROFILE_DB_PDU *p_pdu)
 Write data to GATT database by handle. More...
 
void bleprofile_sendWriteReq (UINT16 attrHandle, UINT8 *attr, INT32 len)
 Send Write Request. More...
 
void bleprofile_sendWriteCmd (UINT16 attrHandle, UINT8 *data, INT32 len)
 Send Write Command. More...
 
void bleprofile_sendReadReq (UINT16 Handle)
 Send Read Request. More...
 
void bleprofile_sendReadByTypeReq (UINT16 startHandle, UINT16 endHandle, UINT16 uuid16)
 Send Read by Type Request. More...
 
void bleprofile_sendReadByGroupTypeReq (UINT16 startHandle, UINT16 endHandle, UINT16 uuid16)
 Send Read by Group Type Request. More...
 
void bleprofile_sendHandleValueConf (void)
 Send Handle Value Confirmation. More...
 
void bleprofile_sendIndication (UINT16 attrHandle, UINT8 *attr, INT32 len, LEATT_NO_PARAM_CB cb)
 Send Indication. More...
 
void bleprofile_sendNotification (UINT16 attrHandle, UINT8 *attr, INT32 len)
 Send Notification. More...
 
void bleprofile_LEDOn (void)
 Turn LED On. More...
 
void bleprofile_LEDOff (void)
 Turn LED Off. More...
 
void bleprofile_LEDBlink (UINT16 on_ms, UINT16 off_ms, UINT8 num)
 Perform LED blinking. More...
 
void bleprofile_BUZOn (void)
 Turn Buzzer On. More...
 
void bleprofile_BUZOff (void)
 Turn Buzzer Off. More...
 
void bleprofile_BUZBeep (UINT16 duration_ms)
 Play a Buzzer beep. More...
 
void bleprofile_PWMBUZFreq (UINT8 preset, UINT16 init_value, UINT16 toggle_val)
 Change Buzzer beeping frequency. More...
 
void bleprofile_BatOn (void)
 Turn Battery monitoring on. More...
 
void bleprofile_BatOff (void)
 Turn Battery monitoring off. More...
 
void bleprofile_UARTOn (void)
 Turn UART on. More...
 
void bleprofile_UARTOff (void)
 Turn UART off. More...
 
void bleprofile_PUARTTxOn (void)
 Turn on Peripheral UART TX. More...
 
void bleprofile_PUARTTxOff (void)
 Turn off Peripheral UART TX. More...
 
void bleprofile_PUARTRxOn (void)
 Turn on Peripheral UART RX. More...
 
void bleprofile_PUARTRxOff (void)
 Turn off Peripheral UART RX. More...
 
INT8 bleprofile_ReadBut (void)
 Read button. More...
 
INT8 bleprofile_ReadBut1 (void)
 Read button 1. More...
 
INT8 bleprofile_ReadBut2 (void)
 Read button 2. More...
 
INT8 bleprofile_ReadBut3 (void)
 Read button 3. More...
 
SFLOAT bleprofile_UINT16toSFLOAT (UINT16 uin)
 Convert UINT16 to SFLOAT. More...
 
UINT16 bleprofile_SFLOATtoUINT16 (SFLOAT sfl)
 Convert SFLOAT to UINT16. More...
 
SFLOAT bleprofile_UINT8_UINT8toSFLOAT (UINT8 minus, UINT8 uin, UINT8 bdp)
 Creates SFLOAT value. More...
 
FLOAT32 bleprofile_UINT32toFLOAT32 (UINT32 uin)
 Convert UINT32 to FLOAT32. More...
 
UINT32 bleprofile_FLOAT32toUINT32 (FLOAT32 fl)
 Convert FLOAT32 to UINT32. More...
 
FLOAT32 bleprofile_UINT16_UINT16toFLOAT32 (UINT8 minus, UINT16 uin, UINT16 bdp)
 Creates FLOAT32 value. More...
 
UINT8 bleprofile_GetDiscoverable (void)
 Get Discoverable State. More...
 
void bleprofile_Discoverable (UINT8 Discoverable, BD_ADDR paired_addr)
 Set Discoverable. More...
 
void bleprofile_regHandleUARTCb (BLEPROFILE_DOUBLE_PARAM_CB cb)
 Register callback to receive UART data. More...
 
void bleprofile_regIntCb (BLEPROFILE_SINGLE_PARAM_CB callback)
 Register receive GPIO Interrupt. More...
 
void bleprofile_regButtonFunctionCb (BLEPROFILE_SINGLE_PARAM_CB cb)
 Register receive polling button callback. More...
 
void bleprofile_ReadButton (void)
 Callback function for polling button functionality. More...
 
void bleprofile_regTimerCb (BLEAPP_TIMER_CB fine_cb, BLEAPP_TIMER_CB normal_cb)
 Register receive timer callbacks. More...
 
void bleprofile_StartTimer (void)
 Start timers. More...
 
void bleprofile_KillTimer (void)
 Stop timers. More...
 
void bleprofile_regAppEvtHandler (BLECM_APP_EVT_ENUM idx, BLECM_NO_PARAM_FUNC func)
 Register application event handler. More...
 
void bleprofile_InitPowersave (void)
 Init Powersave. More...
 
UINT8 bleprofile_pollPowersave (void)
 Poll Powersave. More...
 
void bleprofile_StartPowersave (void)
 Start Powersave. More...
 
void bleprofile_StopPowersave (void)
 Stop Powersave. More...
 
void bleprofile_PreparePowersave (void)
 Prepare Powersave. More...
 
void bleprofile_setupTargetAdrInScanRsp (void)
 Setup Scan Response. More...
 
void bleprofile_appTimerCb (UINT32 arg)
 Application Timer Callback. More...
 
void bleprofile_setidletimer_withNotification (void)
 Configure Idle timer depending on the notification state. More...
 
void bleprofile_StartConnIdleTimer (UINT8 timeout, BLEAPP_TIMER_CB cb)
 Start Connection Idle Timer. More...
 
void bleprofile_StopConnIdleTimer (void)
 Stop Connection Idle Timer. More...
 
void bleprofile_SendConnParamUpdateReq (UINT16 minInterval, UINT16 maxInterval, UINT16 peripheralLatency, UINT16 timeout)
 Send Connection Parameters Update Request. More...
 

Detailed Description

Bluetooth LE GATT Profiles functions.

Typedef Documentation

typedef { ... } BLE_PROFILE_CFG

Bluetooth LE Profile Configuration.

BLE_PROFILE_CFG is used for setting application timer interval, ADV related parameters, local device information, connection/encryption related parameters, GATT DB handle, alert/led/buzzer related parameters, button related parameters.

typedef { ... } BLE_PROFILE_GPIO_CFG

GPIO Configuration.

BLE_PROFILE_GPIO_CFG defines up to GPIO_NUM_MAX (currently 16) GPIO settings. Gpio_pin denotes GPIO pin number and gpio_flag defines GPIO setting (Input/Output, Interrupt, polarity) and the purpose (LED, Buzzer, Button, EEPROM Write Protect, etc). When GPIO purpose flag is set, profile common library functions can be usable. Without using GPIO purpose flag, GPIOs still can be usable with GPIO driver.

typedef { ... } BLE_PROFILE_PUART_CFG

UART Configuration.

BLE_PROFILE_PUART_CFG defines baudrate, txpin, and rxpin of Periperal UART.

Function Documentation

void bleprofile_appTimerCb ( UINT32  arg)

Application Timer Callback.

This function is called when ADV, Connection related events happen. ADV related event can change ADV setting (eg. High undirected ADV -> Low undirected ADV). Connection Idle timeout event can disconnect the Bluetooth LE connection.

Parameters
argType of events
  • BLEAPP_APP_TIMER_ADV
  • BLEAPP_APP_TIMER_DIRECT_ADV
  • BLEAPP_APP_TIMER_CONN_IDLE
void bleprofile_BatOff ( void  )

Turn Battery monitoring off.

This function turns off battery monitor (ADC) GPIO by using input disable mode.

void bleprofile_BatOn ( void  )

Turn Battery monitoring on.

This function turns on battery monitor (ADC) GPIO.

void bleprofile_BUZBeep ( UINT16  duration_ms)

Play a Buzzer beep.

This function plays a beep tone over Buzzer that is defined in BLE_PROFILE_GPIO_CFG. When PWM supporting GPIO (26-29) is used for buzzer, PWM is used to generate constant frequency. When other GPIO is used for buzzer, FW will control beeping sound and frequency may be changed.

Parameters
duration_ms: beeping duration (multiple of 12.5ms, MIN: 25ms, MAX: 1sec)
void bleprofile_BUZOff ( void  )

Turn Buzzer Off.

This function turns off Buzzer that is defined in BLE_PROFILE_GPIO_CFG.

void bleprofile_BUZOn ( void  )

Turn Buzzer On.

This function turns on Buzzer that is defined in BLE_PROFILE_GPIO_CFG. When PWM supporting GPIO (26-29) is used for buzzer, PWM is used to generate constant frequency. When other GPIO is used for buzzer, FW will control beeping sound and frequency may be changed.

void bleprofile_CFGRegister ( BLE_PROFILE_CFG p_cfg)

Register Configuration.

Application can call this function to overwrite default configuration.

Parameters
p_cfgPointer to the BLE_PROFILE_CFG configuration structure.
BOOL32 bleprofile_DeleteNVRAM ( UINT8  vsID)

Delete NVRAM.

This function releases the NVRAM previously allocated by the bleprofile_WriteNVRAM call.

Parameters
vsIDID number of NVRAM. Valid values are 0x10 to 0x6F.
Returns
  • 1 Delete succeeded.
  • 0 delete failed.
void bleprofile_Discoverable ( UINT8  Discoverable,
BD_ADDR  paired_addr 
)

Set Discoverable.

This function sets ADV state

Parameters
state
  • NO_DISCOVERABLE = 0,
  • LOW_DIRECTED_DISCOVERABLE = 1,
  • HIGH_DIRECTED_DISCOVERABLE = 2,
  • LOW_UNDIRECTED_DISCOVERABLE = 3,
  • HIGH_UNDIRECTED_DISCOVERABLE = 4,
bdaBluetooth address of the peer for directed advertisements, not use for undirected advertisements
UINT32 bleprofile_FLOAT32toUINT32 ( FLOAT32  fl)

Convert FLOAT32 to UINT32.

A helper function to convert FLOAT32 a 4 byte float type used in some medical profiles into UINT32.

Parameters
sflFLOAT32 value
Returns
uin 32 bit unsigned integer value converted from sfl.
void bleprofile_GenerateADVData ( BLE_ADV_FIELD *  p_adv,
UINT8  number 
)

Generate Advertisement data.

This function generates ADV data to be used in the LE advertisement packets. When p_adv is NULL, default fields (Flags, Local Name, Class of Device, Service UUID) are included. If p_adv and number are not zeroes, ADV data is set based on the user defined values.

If application does not call this function default values will be used.

Parameters
p_advPointer to the first advertisement field or NULL if defaults need to be used.
numberNumber of fields.
void bleprofile_GenerateScanRspData ( BLE_ADV_FIELD *  p_adv,
UINT8  number 
)

Generate Scan Response data.

This function generates data to be used in the LE Scan Response packets. When p_adv is NULL, default data (Tx Power) is included. If p_adv and number are none zeroes, ADV data is set based on the user defined values.

If application does not call this function default values will be used.

Parameters
p_advPointer to the first advertisement field or NULL if defaults need to be used.
numberNumber of fields.
UINT8 bleprofile_GetDiscoverable ( void  )

Get Discoverable State.

returns current discoverable state

Returns
discoverable_state
  • NO_DISCOVERABLE = 0,
  • LOW_DIRECTED_DISCOVERABLE = 1,
  • HIGH_DIRECTED_DISCOVERABLE = 2,
  • LOW_UNDIRECTED_DISCOVERABLE = 3,
  • HIGH_UNDIRECTED_DISCOVERABLE = 4,
void bleprofile_GPIOInit ( BLE_PROFILE_GPIO_CFG p_gpio_cfg)

Initialize GPIO.

This function initializes GPIO pins defined in p_cfg

Parameters
p_cfgPointer to the BLE_PROFILE_GPIO_CFG GPIO configuration structure.
void bleprofile_GPIORegister ( BLE_PROFILE_GPIO_CFG p_gpio_cfg)

Register GPIO Configuration.

This function registers GPIO configuration. bleapp_Init function calls this function using arguments that passed by bleapp_set_cfg function.

Parameters
p_uart_cfgPointer to the BLE_PROFILE_GPIO_CFG config structure
void bleprofile_Init ( BLE_PROFILE_CFG p_cfg)

Initialize Blueooth LE profile.

This function is the main profile common library initialization. Application must call this function during blexxxx_Create. The function registers profile with the stack, initializes power saving, enables interrupts, and generates default advertisement and scan response data.

Parameters
p_cfgPointer to the BLE_PROFILE_CFG configuration structure.
void bleprofile_InitPowersave ( void  )

Init Powersave.

bleprofile_Init function calls this function during profile initialization when powersave_timeout of BLE_PROFILE_CFG is set.

void bleprofile_KillTimer ( void  )

Stop timers.

This function stops fine and normal timers.

void bleprofile_LEDBlink ( UINT16  on_ms,
UINT16  off_ms,
UINT8  num 
)

Perform LED blinking.

This function blinks LED that is defined in BLE_PROFILE_GPIO_CFG.

Parameters
on_msLED on time (multiple of 12.5ms, MIN: 25ms, MAX: 1sec).
off_msLED off time (multiple of 12.5ms, MIN: 25ms, MAX: 1sec).
num: number of times to blink.
void bleprofile_LEDOff ( void  )

Turn LED Off.

This function turns on LED that is defined in BLE_PROFILE_GPIO_CFG.

void bleprofile_LEDOn ( void  )

Turn LED On.

This function turns on LED that is defined in BLE_PROFILE_GPIO_CFG.

UINT8 bleprofile_pollPowersave ( void  )

Poll Powersave.

This function is called to check idle timeout powersaving condition is met or not. This function is usually called by timer timeout function.

Returns
powersave Returns 1 if powersave condition is met. 0 otherwise.
void bleprofile_PreparePowersave ( void  )

Prepare Powersave.

This function initiates idle mode to prepare powersave mode.

void bleprofile_PUARTRegister ( BLE_PROFILE_PUART_CFG p_puart_cfg)

Register Peripheral UART Configuration.

This function registers peripheral UART configuration. bleapp_Init function calls this function using arguments that passed by bleapp_set_cfg function.

Parameters
p_uart_cfgPointer to the BLE_PROFILE_PUART_CFG config structure
void bleprofile_PUARTRxOff ( void  )

Turn off Peripheral UART RX.

This function turns off Peripheral UART RX pins.

void bleprofile_PUARTRxOn ( void  )

Turn on Peripheral UART RX.

This function turns on Peripheral UART RX pin.

void bleprofile_PUARTTxOff ( void  )

Turn off Peripheral UART TX.

This function turns off Peripheral UART TX pins.

void bleprofile_PUARTTxOn ( void  )

Turn on Peripheral UART TX.

This function turns on Peripheral UART TX pin.

void bleprofile_PWMBUZFreq ( UINT8  preset,
UINT16  init_value,
UINT16  toggle_val 
)

Change Buzzer beeping frequency.

This function changes frequency of beeping sound when PWM enabled GPIO is used. GPIO is configured in BLE_PROFILE_GPIO_CFG.

Parameters
presetPreset number. Following values can be usable.
  • HSP_SESSION_RFCOMM_CONNECTION_STATE_CHANGED - The RFCOMM connection state has changed. The application should examine the value of the bt_hsp_session::state member to determine weather the RFCOMM session has connected or disconnected. The RFCOMM session has connected if the HSP_SESSION_STATE_RFCOMM_CONNECTED bit is set in the bt_hsp_session::state member.
  • PWMBUZ_125 = 0 // 125hz
  • PWMBUZ_250 = 1 // 250hz
  • PWMBUZ_500 = 2 // 500hz
  • PWMBUZ_1000 = 3 // 1khz
  • PWMBUZ_2000 = 4 // 2khz
  • PWMBUZ_4000 = 5 // 4khz
  • PWMBUZ_8000 = 6 // 8khz
  • PWMBUZ_FREQ_MANUAL = 0xFF
init_valueInitial value of PWM. only meaningful when PWMBUZ_FREQ_MANUAL
toggle_valToggle value of PWM. only meaningful when preset PWMBUZ_FREQ_MANUAL
INT8 bleprofile_ReadBut ( void  )

Read button.

This function reads the state of the default (first) button.

Parameters
button_state
  • -1 if button is not configured
  • 0 if button is not pressed
  • 1 if button is pressed
INT8 bleprofile_ReadBut1 ( void  )

Read button 1.

This function reads the state of the button 1.

Parameters
button_state
  • -1 if button is not configured
  • 0 if button is not pressed
  • 1 if button is pressed
INT8 bleprofile_ReadBut2 ( void  )

Read button 2.

This function reads the state of the button 2.

Parameters
button_state
  • -1 if button is not configured
  • 0 if button is not pressed
  • 1 if button is pressed
INT8 bleprofile_ReadBut3 ( void  )

Read button 3.

This function reads the state of the button 3.

Parameters
button_state
  • -1 if button is not configured
  • 0 if button is not pressed
  • 1 if button is pressed
void bleprofile_ReadButton ( void  )

Callback function for polling button functionality.

This function can handle powersave, discover, client, filter timeout related functions that are defined in button_power_timeout, button_client_timeout, button_discover_timeout, button_filter_timeout of BLE_PROFILE_CFG config item. When button is pressed for timeout (sec) of powersave, discover, client, filter function, such function (powersaving, undirected ADV for pairing, client function (find me, time, etc), toggle HCI mode) will be initiated.

This function will call user defined callback function that is registered by bleprofile_regButtonFunctionCb function.

INT32 bleprofile_ReadHandle ( UINT16  hdl,
BLEPROFILE_DB_PDU *  p_pdu 
)

Read local GATT database by handle.

This function provides a way for the application to read local GATT database using specific handle. GATT database can modified internally or when peer writes data over the air.

Parameters
handleHandle in the GATT database.
p_pduPointer to the BLEPROFILE_DB_PDU to retrieve the data to
Returns
  • 0 if the function succeeds.
  • error_code returned from the read operation.
UINT8 bleprofile_ReadNVRAM ( UINT8  vsID,
UINT8  itemLength,
UINT8 *  payload 
)

Read NVRAM.

This function reads bytes from the NVRAM(EEPROM). Application should use the same vsID that was used during call.

Parameters
vsIDID number of NVRAM. Valid values are 0x10 to 0x6F.
itemLengthNumber of bytes to read.
payloadAddress of the itemLength bytes where the bytes from NVRAM are copied to.
Returns
  • Number of bytes read from the NVRAM.
  • 0 if attempt to read failed.
void bleprofile_ReadUART ( char *  data)

Read UART.

Application can call this function to read the content of the UART received buffer. Application needs to provide at least READ_UART_LEN byte buffer.

Parameters
dataPointer to the buffer to read UART to.
void bleprofile_regAppEvtHandler ( BLECM_APP_EVT_ENUM  idx,
BLECM_NO_PARAM_FUNC  func 
)

Register application event handler.

Register a callback to receive certain event. Although registering for the notifications is optional and default processing is assumed, in most cases application will want to be notified and process the events.

Parameters
idxEvent for the registration. Following events are defined.
  • BLECM_APP_EVT_START_UP, registeres a callback to be called on startup.
  • BLECM_APP_EVT_LINK_UP, radio link up event.
  • BLECM_APP_EVT_LINK_DOWN, raio link down event.
  • BLECM_APP_EVT_ADV_TIMEOUT, readio exiting the advertisement state based on timeout
  • BLECM_APP_EVT_ENTERING_HIDOFF, device is preparing to enter hid-ff
  • BLECM_APP_EVT_ABORTING_HIDOFF, device had to abort entering hid-off
funcPointer to the function to be called when event occurs
void bleprofile_regButtonFunctionCb ( BLEPROFILE_SINGLE_PARAM_CB  cb)

Register receive polling button callback.

Application can register a callback function to be notified on the polling button push. Whenever the polling button is pressed for timeout values that defined in BLE_PROFILE_CFG, registered callback function will be called for additional user level action.

Parameters
callbackPointer to the application defined callback function that can handle polling.
void bleprofile_regHandleUARTCb ( BLEPROFILE_DOUBLE_PARAM_CB  cb)

Register callback to receive UART data.

Application can register a callback function to be notified when data is received over UART.

Parameters
dataPointer to the function to be called when data in the UART is available.
void bleprofile_regIntCb ( BLEPROFILE_SINGLE_PARAM_CB  callback)

Register receive GPIO Interrupt.

Application can register a callback function to be notified on the interrupt button. Whenever buttons (1-3) are pressed, registered callback function will be called.

Parameters
callbackPointer to the application defined callback function that can handle interrupt.
void bleprofile_regTimerCb ( BLEAPP_TIMER_CB  fine_cb,
BLEAPP_TIMER_CB  normal_cb 
)

Register receive timer callbacks.

This function registers fine timer and normal timer callback function. Normal timer expires every second and fine resolution timer is called every 12.5ms, configurable in BLE_PROFILE_CFG.

Parameters
fine_cbPointer to the callback function for fine resolution timer timeout.
normal_cbPointer to the callback function for normal timer timeout.
void bleprofile_SendConnParamUpdateReq ( UINT16  minInterval,
UINT16  maxInterval,
UINT16  peripheralLatency,
UINT16  timeout 
)

Send Connection Parameters Update Request.

The Connection Parameter Update Request allows the application to request a set of new connection parameters. During connection establishment and initial data exchange central typically sets parameters requiring very fast polling which is typically not needed during normal connection.

Parameters
minIntervalDefines minimum value for the connection event interval in 1.25ms shall be less or equal to maximum
maxIntervalDefines maximum value for the connection event interval in 1.25ms.
peripheralLatencyDefines the peripheral latency parameter (as number of LL connection events).
timeoutDefines connection timeout parameter. Timeout * 10ms is Connection supervision timeout
void bleprofile_sendHandleValueConf ( void  )

Send Handle Value Confirmation.

Client side application should call this function when it receives indication from the server to acknowledge the receipt.

void bleprofile_sendIndication ( UINT16  attrHandle,
UINT8 *  attr,
INT32  len,
LEATT_NO_PARAM_CB  cb 
)

Send Indication.

Server side application can call this function to send an Indication packet to the client. To receive indication the client needs to register with the server by writing to Client Characteristic Configuration descriptor. The handle is the GATT handle of the characteristic value. When client receives indication it sends back confirmation packet, and application receives it through the cb callback. Application should not send next indication until previous one has been confirmed.

Parameters
handleHandle of the attribute in the GATT database.
dataPointer to the data chunk to be sent.
lenLength of the data chunk to send.
cbCallback function to be called when peer acks the indication.
void bleprofile_sendNotification ( UINT16  attrHandle,
UINT8 *  attr,
INT32  len 
)

Send Notification.

Server side application can call this function to send a Notification packet to the client. To receive a Notification the client needs to register with the server by writing to Client Characteristic Configuration descriptor. The handle is the GATT handle of the characteristic value.

Parameters
handleHandle of the attribute in the GATT database.
dataPointer to the data chunk to be sent.
lenLength of the data chunk to send.
void bleprofile_sendReadByGroupTypeReq ( UINT16  startHandle,
UINT16  endHandle,
UINT16  uuid16 
)

Send Read by Group Type Request.

Client side application can call this function to send a Read by Group Type Request to the server. Before calling this function application will typically register to receive notification with a read results using leatt_regReadByGroupTypeRspCb function. Application must specified range of the handles and UUID of the item to search for. This function usually is called by the client during GATT discovery.

Parameters
start_handleStart handle in the GATT database.
end_handleEnd handle in the GATT database.
uuid16 bit UUID to search for
void bleprofile_sendReadByTypeReq ( UINT16  startHandle,
UINT16  endHandle,
UINT16  uuid16 
)

Send Read by Type Request.

Client side application can call this function to send a Read by Type Request to the server. Before calling this function application will typically register to receive notification with a read results using leatt_regReadByTypeRspCb function. Application must specified range of the handles and UUID of the item to search for. This function usually is called by the client during GATT discovery.

Parameters
start_handleStart handle in the GATT database.
end_handleEnd handle in the GATT database.
uuid16 bit UUID to search for
void bleprofile_sendReadReq ( UINT16  Handle)

Send Read Request.

Client side application can call this function to send a Read Request to the server. Before calling this function application will typically register to receive notification with a read results using leatt_regReadRspCb function.

Parameters
handleHandle of the attribute in the GATT database.
dataPointer to the data chunk to be sent.
lenLength of the data chunk to send.
void bleprofile_sendWriteCmd ( UINT16  attrHandle,
UINT8 *  data,
INT32  len 
)

Send Write Command.

Client side application can call this function to send a write command to the server. The handle can be GATT handle of the characteristic value, or a descriptor.

Parameters
attrHandleHandle of the attribute in the GATT database.
dataPointer to the data chunk to be sent
lenLength of the data chunk to send
void bleprofile_sendWriteReq ( UINT16  attrHandle,
UINT8 *  attr,
INT32  len 
)

Send Write Request.

Client side application can call this function to send a write request to the server. The handle can be GATT handle of the characteristic value, or a descriptor. Before calling this function application can register to receive notification with a result of write operation using leatt_regWriteRspCb function.

Parameters
attrHandleHandle of the attribute in the GATT database.
dataPointer to the data chunk to be sent
lenLength of the data chunk to send
void bleprofile_setidletimer_withNotification ( void  )

Configure Idle timer depending on the notification state.

This function turns idle timer off if there is a characteristic with the client configuration descriptor set for notifications or indications. If there are no characteristics currently set to send indication or notification, idle timer is stopped.

void bleprofile_setupTargetAdrInScanRsp ( void  )

Setup Scan Response.

This function sets up the target address in the scan response payload if there are bonded keys.

UINT16 bleprofile_SFLOATtoUINT16 ( SFLOAT  sfl)

Convert SFLOAT to UINT16.

A helper function to convert SFLOAT (2 byte float type used in some medical profiles into UINT16.

Parameters
sflSFLOAT value
Returns
uin 16 bit unsigned integer value converted from sfl.
void bleprofile_StartConnIdleTimer ( UINT8  timeout,
BLEAPP_TIMER_CB  cb 
)

Start Connection Idle Timer.

Starts connection idle timer.

Parameters
Timeoutvalue in seconds.
Callbackfunction to be called when timer expires.
void bleprofile_StartPowersave ( void  )

Start Powersave.

This function starts powersafe mode

void bleprofile_StartTimer ( void  )

Start timers.

This function starts fine and normal timers. Timers are configurable in BLE_PROFILE_CFG.

void bleprofile_StopConnIdleTimer ( void  )

Stop Connection Idle Timer.

Stops connection idle timer

void bleprofile_StopPowersave ( void  )

Stop Powersave.

This function is called during wake up from Sleep powersave mode. Wake from HID off mode does not call this function.

void bleprofile_UARTOff ( void  )

Turn UART off.

This function turns off UART pins.

void bleprofile_UARTOn ( void  )

Turn UART on.

This function turns on UART pins.

FLOAT32 bleprofile_UINT16_UINT16toFLOAT32 ( UINT8  minus,
UINT16  uin,
UINT16  bdp 
)

Creates FLOAT32 value.

A helper function to create a FLOAT32 value a 4 byte float type used in some medical profiles from sign, integer, and below decimal point. For example -1.5 can be inputted as minus = 1, uin = 1, bdp 5.

Parameters
minusWhen 0, result should be a positive number, if 1 the negative number.
uin16 bit unsigned interger above the decimal point.
bdp16 bit unsigned interger below the decimal point.
Returns
sfl FLOAT32 value converted from minus, uin and bdp.
SFLOAT bleprofile_UINT16toSFLOAT ( UINT16  uin)

Convert UINT16 to SFLOAT.

A helper function to convert UINT16 into SFLOAT (2 byte float type used in some medical profiles).

Parameters
uin16 bit unsigned interger
Returns
sfl SFLOAT value converted from uin.
FLOAT32 bleprofile_UINT32toFLOAT32 ( UINT32  uin)

Convert UINT32 to FLOAT32.

A helper function to convert 32 bit unsigned integer value into FLOAT32 a 4 byte float type used in some medical profiles.

Parameters
uin32 bit unsigned interger
Returns
sfl FLOAT32 value converted from uin.
SFLOAT bleprofile_UINT8_UINT8toSFLOAT ( UINT8  minus,
UINT8  uin,
UINT8  bdp 
)

Creates SFLOAT value.

A helper function to create an SFLOAT value (2 byte float type used in some medical profiles) from sign, integer, and below decimal point. For example -1.5 can be inputted as minus = 1, uin = 1, bdp 5.

Parameters
minusWhen 0, result should be a positive number, if 1 the negative number.
uin8 bit unsigned interger above the decimal point.
bdp8 bit unsigned interger below the decimal point.
Returns
sfl SFLOAT value converted from minus, uin and bdp.
void bleprofile_WPEnable ( UINT8  wp_enable)

Sets NVRAM Write Protection.

This function enables or disables NVRAM (EEPROM) write protection.

Parameters
wp_enableIf 0, write protect is off (EEPROM is writable). If 1, write protect is on (EEPROM is not writable).
INT32 bleprofile_WriteHandle ( UINT16  hdl,
BLEPROFILE_DB_PDU *  p_pdu 
)

Write data to GATT database by handle.

This function provides a way for the application to write data to GATT database using specific handle.

Parameters
handleHandle in the GATT database.
p_pduPointer to the BLEPROFILE_DB_PDU to write
Returns
  • 0 if the function succeeds.
  • error_code returned from the write operation.
UINT8 bleprofile_WriteNVRAM ( UINT8  vsID,
UINT8  itemLength,
UINT8 *  payload 
)

Write NVRAM.

This function writes bytes to the NVRAM(EEPROM). Application can specify any vsID between 0x10 and 0x6F. Stack allocates memory and copies contents of the payload provided. The same payload can be retrieved later on using the same @ vsID by calling bleprofile_ReadNVRAM.

Parameters
vsIDID number of NVRAM. Valid values are 0x10 to 0x6F.
itemLengthNumber of bytes to write. Valid values are 1 to 255.
payloadAddress of the itemLength bytes to be stored in the NVRAM.
Returns
  • Number of bytes written to the NVRAM.
  • 0 if attempt to write failed.