Functions
Functions
BLE » BLE Common

## Functions
void | ble_stack_init (ble_evt_handler_t evt_handler, stack_heaps_table_t *p_heaps_table)
| Initialize BLE Stack. More...
void | ble_stack_controller_init (stack_heaps_table_t *p_heaps_table)
| Initialize BLE Stack controller. More...
sdk_err_t | ble_hci_init (ble_hci_rx_channel_t *p_rx_channel, ble_hci_host_recv_cb_t host_recv_cb)
| Initialize ble hci adapter module. More...
sdk_err_t | ble_hci_host_packet_send (uint8_t *p_data, uint16_t length)
| BLE HCI adapter host send packet. More...
uint16_t | ble_hci_rx_channel_surplus_space_get (void)
| Get surplus space of controller receive channel. More...
void | ble_idle_time_notify_cb_register (void(*callback)(uint32_t hs))
| Register BLE idle time notification callback function. More...
void | ble_activity_start_notify_cb_register (void(*callback)(ble_gap_actv_role_t e_role, uint8_t index))
| Register BLE activity start notification callback function. More...
void | ble_activity_end_notify_cb_register (void(*callback)(ble_gap_actv_role_t e_role, uint8_t index))
| Register BLE activity end notification callback function. More...
uint8_t | ble_rf_tx_mode_set (ble_rf_tx_mode_t e_rf_tx_mode)
| Change the RF TX mode of LP or ULP. More...
ble_rf_tx_mode_t | ble_rf_tx_mode_get (void)
| Get the RF TX mode of LP or ULP. More...
void | ble_rf_match_circuit_set (ble_rf_match_circuit_t e_ohm)
| Set the resistance value of the RF match circuit (unit: ohm). More...
ble_rf_match_circuit_t | ble_rf_match_circuit_get (void)
| Get the resistance value of the RF match circuit (unit: ohm). More...
uint8_t | ble_ext_llcp_send (uint16_t conn_idx, uint8_t *param, uint8_t ext_opcode)
| Start a extended llcp procedure. More...
uint8_t | ble_ext_llcp_cb_reg (struct ble_ext_llcp_cb_func_t *func)
| Registered the extended llcp procedure callback. More...
void | ble_aes_encrypt (const uint8_t *key, const uint8_t *val, aes_result_cb res_cb, uint32_t src_info)
| Perform an AES encryption - result within callback. More...
void | ble_aes_decrypt (const uint8_t *key, const uint8_t *val, aes_result_cb res_cb, uint32_t src_info)
| Perform an AES dencryption - result within callback. More...
void | ble_aes_ecb_encrypt (const uint8_t *key, const uint8_t *val, aes_result_cb res_cb, uint32_t src_info)
| Perform an AES ecb encryption - result within callback. More...
void | ble_aes_ecb_decrypt (const uint8_t *key, const uint8_t *val, aes_result_cb res_cb, uint32_t src_info)
| Perform an AES ecb dencryption - result within callback. More...
void | ble_aes_cbc_encrypt (const uint8_t *key, const uint8_t *iv, const uint8_t *val, aes_result_cb res_cb, uint32_t src_info)
| Perform an AES cbc encryption - result within callback. More...
void | ble_aes_cbc_decrypt (const uint8_t *key, const uint8_t *iv, const uint8_t *val, aes_result_cb res_cb, uint32_t src_info)
| Perform an AES cbc dencryption - result within callback. More...

## Detailed Description

## Function Documentation

## ◆ ble_activity_end_notify_cb_register()

void ble_activity_end_notify_cb_register | ( | void(*)(ble_gap_actv_role_t e_role, uint8_t index) | callback | ) |

Register BLE activity end notification callback function.

Parameters

  [in] | callback | function pointer of BLE activity end notification function.

Note
  e_role: the role of activity, refer to ble_gap_actv_role_t for possible roles. index: The index parameter is interpreted by role. If role is BLE_GAP_ACTIVITY_ROLE_ADV, it's the index of Advertising. If role is BLE_GAP_ACTIVITY_ROLE_CON, it's the index of Connection. For all other roles, it should be ignored. Callback will be called by BLE ISR when the BLE activity ends every time. It should be realized as simlpe as you can. You'd better to define it in the RAM space It's not suitable for ISO activities.

## ◆ ble_activity_start_notify_cb_register()

void ble_activity_start_notify_cb_register | ( | void(*)(ble_gap_actv_role_t e_role, uint8_t index) | callback | ) |

Register BLE activity start notification callback function.

Parameters

  [in] | callback | function pointer of BLE activity start notification function.

Note
  e_role: the role of activity, ble_gap_actv_role_t for possible roles. index: The index parameter is interpreted by role. If role is BLE_GAP_ACTIVITY_ROLE_ADV, it's the index of Advertising. If role is BLE_GAP_ACTIVITY_ROLE_CON, it's the index of Connection. For all other roles, it should be ignored. Callback will be called by BLE ISR when the BLE activity starts every time. It should be realized as simlpe as you can. You'd better to define it in the RAM space It's not suitable for ISO activities.

## ◆ ble_aes_cbc_decrypt()

void ble_aes_cbc_decrypt | ( | const uint8_t * | key,
|  | const uint8_t * | iv,
|  | const uint8_t * | val,
|  | aes_result_cb | res_cb,
|  | uint32_t | src_info
| ) |  |

Perform an AES cbc dencryption - result within callback.

Parameters

  [in] | key | Key used for the decryption
  [in] | iv | IV used for the cbc decryption.only first block need to be present, continue block shall be null.
  [in] | val | Value to decrypt using AES
  [in] | res_cb | Function that will handle the AES based result (16 bytes)
  [in] | src_info | Information used retrieve requester

Returns
  void.

## ◆ ble_aes_cbc_encrypt()

void ble_aes_cbc_encrypt | ( | const uint8_t * | key,
|  | const uint8_t * | iv,
|  | const uint8_t * | val,
|  | aes_result_cb | res_cb,
|  | uint32_t | src_info
| ) |  |

Perform an AES cbc encryption - result within callback.

Parameters

  [in] | key | Key used for the encryption
  [in] | iv | IV used for the cbc encryption.only first block need to be present, continue block shall be null.
  [in] | val | Value to encrypt using AES
  [in] | res_cb | Function that will handle the AES based result (16 bytes)
  [in] | src_info | Information used retrieve requester

Returns
  void.

## ◆ ble_aes_decrypt()

void ble_aes_decrypt | ( | const uint8_t * | key,
|  | const uint8_t * | val,
|  | aes_result_cb | res_cb,
|  | uint32_t | src_info
| ) |  |

Perform an AES dencryption - result within callback.

Parameters

  [in] | key | Key used for the dencryption
  [in] | val | Value to decrypt using AES
  [in] | res_cb | Function that will handle the AES based result (16 bytes)
  [in] | src_info | Information used retrieve requester

Returns
  void.

## ◆ ble_aes_ecb_decrypt()

void ble_aes_ecb_decrypt | ( | const uint8_t * | key,
|  | const uint8_t * | val,
|  | aes_result_cb | res_cb,
|  | uint32_t | src_info
| ) |  |

Perform an AES ecb dencryption - result within callback.

Parameters

  [in] | key | Key used for the dencryption
  [in] | val | Value to decrypt using AES
  [in] | res_cb | Function that will handle the AES based result (16 bytes)
  [in] | src_info | Information used retrieve requester

Returns
  void.

## ◆ ble_aes_ecb_encrypt()

void ble_aes_ecb_encrypt | ( | const uint8_t * | key,
|  | const uint8_t * | val,
|  | aes_result_cb | res_cb,
|  | uint32_t | src_info
| ) |  |

Perform an AES ecb encryption - result within callback.

Parameters

  [in] | key | Key used for the encryption
  [in] | val | Value to encrypt using AES
  [in] | res_cb | Function that will handle the AES based result (16 bytes)
  [in] | src_info | Information used retrieve requester

Returns
  void.

## ◆ ble_aes_encrypt()

void ble_aes_encrypt | ( | const uint8_t * | key,
|  | const uint8_t * | val,
|  | aes_result_cb | res_cb,
|  | uint32_t | src_info
| ) |  |

Perform an AES encryption - result within callback.

Parameters

  [in] | key | Key used for the encryption
  [in] | val | Value to encrypt using AES
  [in] | res_cb | Function that will handle the AES based result (16 bytes)
  [in] | src_info | Information used retrieve requester

Returns
  void.

## ◆ ble_ext_llcp_cb_reg()

uint8_t ble_ext_llcp_cb_reg | ( | struct ble_ext_llcp_cb_func_t * | func | ) |

Registered the extended llcp procedure callback.

Parameters

  [in] | func | ble_ext_llcp_cb_func_t.

Returns
  The result of this function.

## ◆ ble_ext_llcp_send()

uint8_t ble_ext_llcp_send | ( | uint16_t | conn_idx,
|  | uint8_t * | param,
|  | uint8_t | ext_opcode
| ) |  |

Start a extended llcp procedure.

Parameters

  [in] | conn_idx | function pointer of BLE activity end notification function.
  [in] | param | Pointer to a param which intializer supply.
  [in] | ext_opcode | Extended llcp opcode.

Returns
  The result of this function.

## ◆ ble_hci_host_packet_send()

sdk_err_t ble_hci_host_packet_send | ( | uint8_t * | p_data,
|  | uint16_t | length
| ) |  |

BLE HCI adapter host send packet.

Parameters

  [in] | p_data | Pointer to packet data.
  [in] | length | Length of packet data.

Returns
  Result of send.

## ◆ ble_hci_init()

sdk_err_t ble_hci_init | ( | ble_hci_rx_channel_t * | p_rx_channel,
|  | ble_hci_host_recv_cb_t | host_recv_cb
| ) |  |

Initialize ble hci adapter module.

Parameters

  [in] | p_rx_channel | Pointer to hci adapter rx channel
  [in] | host_recv_cb | Callback to receive controller packet.

Returns
  Result of initializing.

## ◆ ble_hci_rx_channel_surplus_space_get()

uint16_t ble_hci_rx_channel_surplus_space_get | ( | void |  | ) |

Get surplus space of controller receive channel.

Returns
  Result of get.

## ◆ ble_idle_time_notify_cb_register()

void ble_idle_time_notify_cb_register | ( | void(*)(uint32_t hs) | callback | ) |

Register BLE idle time notification callback function.

Parameters

  [in] | callback | function pointer of BLE idle time notification function.

Note
  hs: the idle time of BLE in half slot (312.5us). Callback will be called by BLE ISR to notify the rest idle time if there are some BLE activities. It should be realized as simlpe as you can. It's not suitable for ISO activities.

## ◆ ble_rf_match_circuit_get()

ble_rf_match_circuit_t ble_rf_match_circuit_get | ( | void |  | ) |

Get the resistance value of the RF match circuit (unit: ohm).

Returns
  The resistance value (ohm) of the RF match circuit according to the board (ohm). BLE_RF_MATCH_CIRCUIT_25OHM: 25 ohm. BLE_RF_MATCH_CIRCUIT_100OHM: 100 ohm. Others: invalid.

## ◆ ble_rf_match_circuit_set()

void ble_rf_match_circuit_set | ( | ble_rf_match_circuit_t | e_ohm | ) |

Set the resistance value of the RF match circuit (unit: ohm).

Parameters

  [in] | e_ohm | The resistance value (ohm) of the RF match circuit according to the board, Refer to ble_rf_match_circuit_t. BLE_RF_MATCH_CIRCUIT_25OHM: 25 ohm. BLE_RF_MATCH_CIRCUIT_100OHM: 100 ohm. Others: invalid.

Note
  This function should be called before BLE stack init.

## ◆ ble_rf_tx_mode_get()

ble_rf_tx_mode_t ble_rf_tx_mode_get | ( | void |  | ) |

Get the RF TX mode of LP or ULP.

Returns
  Refer to ble_rf_tx_mode_t.

## ◆ ble_rf_tx_mode_set()

uint8_t ble_rf_tx_mode_set | ( | ble_rf_tx_mode_t | e_rf_tx_mode | ) |

Change the RF TX mode of LP or ULP.

Parameters

  [in] | e_rf_tx_mode | Refer to ble_rf_tx_mode_t.

Note
  This function should be called before BLE stack init.

Returns
  SDK_SUCCESS: Successfully set tx mode. SDK_ERR_DISALLOWED: Failed to set tx mode.

## ◆ ble_stack_controller_init()

void ble_stack_controller_init | ( | stack_heaps_table_t * | p_heaps_table | ) |

Initialize BLE Stack controller.

Parameters

  [in] | p_heaps_table | Pointer to the BLE stack heaps table.

Note
  : This function should be called if only as a controller.

## ◆ ble_stack_init()

void ble_stack_init | ( | ble_evt_handler_t | evt_handler,
|  | stack_heaps_table_t * | p_heaps_table
| ) |  |

Initialize BLE Stack.

Parameters

  [in] | evt_handler | Pointer to the ble event handler.
  [in] | p_heaps_table | Pointer to the BLE stack heaps table.