sl_bt_api.h

1 /***************************************************************************/
17 #ifndef SL_BT_API_H
18 #define SL_BT_API_H
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #include <string.h>
25 #include "sl_bt_types.h"
26 #include "sl_status.h"
27 
28 
29 
30 #if defined(__IAR_SYSTEMS_ICC__)
31  #define SL_BT_DEPRECATED_API #pragma deprecated
32 #elif defined(__GNUC__)
33  #define SL_BT_DEPRECATED_API __attribute__((deprecated))
34 #else
35  #define SL_BT_DEPRECATED_API
36 #endif
37 
38 #define SL_BT_MSG_ID(HDR) ((HDR)&0xffff00f8)
39 #define SL_BT_MSG_HEADER_LEN (4)
40 #define SL_BT_MSG_LEN(HDR) ((((HDR)&0x7)<<8)|(((HDR)&0xff00)>>8))
41 #define SL_BT_BIT_ENCRYPTED (1 << 6) // Bit indicating whether the packet is encrypted
42 #define SL_BT_MSG_ENCRYPTED(HDR) ((HDR) & SL_BT_BIT_ENCRYPTED)
43 
47 typedef void (*sl_bt_handler)(const void*);
48 
54 void sli_bt_set_cmd_handler_delegate(void (*cmd_handler_delegate)(uint32_t,
55  sl_bt_handler,
56  const void*));
57 
58 
81 /***************************************************************************/
98 void sl_bt_dfu_reset(uint8_t dfu);
99 
100 /***************************************************************************/
111 sl_status_t sl_bt_dfu_flash_set_address(uint32_t address);
112 
113 /***************************************************************************/
128 sl_status_t sl_bt_dfu_flash_upload(size_t data_len, const uint8_t* data);
129 
130 /***************************************************************************/
139 sl_status_t sl_bt_dfu_flash_upload_finish();
140  // end addtogroup sl_bt_dfu
142 
153 /***************************************************************************/
162 sl_status_t sl_bt_system_hello();
163 
164 /***************************************************************************/
182 void sl_bt_system_reset(uint8_t dfu);
183 
184 /***************************************************************************/
206 sl_status_t sl_bt_system_halt(uint8_t halt);
207 
208 /***************************************************************************/
246 sl_status_t sl_bt_system_linklayer_configure(uint8_t key,
247  size_t data_len,
248  const uint8_t* data);
249 
250 /***************************************************************************/
274 sl_status_t sl_bt_system_set_max_tx_power(int16_t power, int16_t *set_power);
275 
276 /***************************************************************************/
304 sl_status_t sl_bt_system_set_identity_address(bd_addr address, uint8_t type);
305 
306 /***************************************************************************/
319 sl_status_t sl_bt_system_get_identity_address(bd_addr *address, uint8_t *type);
320 
321 /***************************************************************************/
334 sl_status_t sl_bt_system_get_random_data(uint8_t length,
335  size_t max_data_size,
336  size_t *data_len,
337  uint8_t *data);
338 
339 /***************************************************************************/
350 sl_status_t sl_bt_system_data_buffer_write(size_t data_len,
351  const uint8_t* data);
352 
353 /***************************************************************************/
361 sl_status_t sl_bt_system_data_buffer_clear();
362 
363 /***************************************************************************/
377 sl_status_t sl_bt_system_get_counters(uint8_t reset,
378  uint16_t *tx_packets,
379  uint16_t *rx_packets,
380  uint16_t *crc_errors,
381  uint16_t *failures);
382 
383 /***************************************************************************/
414 sl_status_t sl_bt_system_set_soft_timer(uint32_t time,
415  uint8_t handle,
416  uint8_t single_shot);
417 
418 /***************************************************************************/
447 sl_status_t sl_bt_system_set_lazy_soft_timer(uint32_t time,
448  uint32_t slack,
449  uint8_t handle,
450  uint8_t single_shot);
451  // end addtogroup sl_bt_system
453 
464 /***************************************************************************/
489 sl_status_t sl_bt_gap_set_privacy_mode(uint8_t privacy, uint8_t interval);
490 
491 /***************************************************************************/
513 sl_status_t sl_bt_gap_set_data_channel_classification(size_t channel_map_len,
514  const uint8_t* channel_map);
515 
516 /***************************************************************************/
527 sl_status_t sl_bt_gap_enable_whitelisting(uint8_t enable);
528  // end addtogroup sl_bt_gap
530 
541 /***************************************************************************/
551 sl_status_t sl_bt_advertiser_create_set(uint8_t *handle);
552 
553 /***************************************************************************/
595 sl_status_t sl_bt_advertiser_set_timing(uint8_t handle,
596  uint32_t interval_min,
597  uint32_t interval_max,
598  uint16_t duration,
599  uint8_t maxevents);
600 
601 /***************************************************************************/
631 sl_status_t sl_bt_advertiser_set_phy(uint8_t handle,
632  uint8_t primary_phy,
633  uint8_t secondary_phy);
634 
635 /***************************************************************************/
660 sl_status_t sl_bt_advertiser_set_channel_map(uint8_t handle,
661  uint8_t channel_map);
662 
663 /***************************************************************************/
684 sl_status_t sl_bt_advertiser_set_tx_power(uint8_t handle,
685  int16_t power,
686  int16_t *set_power);
687 
688 /***************************************************************************/
709 sl_status_t sl_bt_advertiser_set_report_scan_request(uint8_t handle,
710  uint8_t report_scan_req);
711 
712 /***************************************************************************/
747 sl_status_t sl_bt_advertiser_set_random_address(uint8_t handle,
748  uint8_t addr_type,
749  bd_addr address,
750  bd_addr *address_out);
751 
752 /***************************************************************************/
768 sl_status_t sl_bt_advertiser_clear_random_address(uint8_t handle);
769 
770 /***************************************************************************/
796 sl_status_t sl_bt_advertiser_set_configuration(uint8_t handle,
797  uint32_t configurations);
798 
799 /***************************************************************************/
815 sl_status_t sl_bt_advertiser_clear_configuration(uint8_t handle,
816  uint32_t configurations);
817 
818 /***************************************************************************/
856 sl_status_t sl_bt_advertiser_set_data(uint8_t handle,
857  uint8_t packet_type,
858  size_t adv_data_len,
859  const uint8_t* adv_data);
860 
861 /***************************************************************************/
890 sl_status_t sl_bt_advertiser_set_long_data(uint8_t handle, uint8_t packet_type);
891 
892 /***************************************************************************/
1006 sl_status_t sl_bt_advertiser_start(uint8_t handle,
1007  uint8_t discover,
1008  uint8_t connect);
1009 
1010 /***************************************************************************/
1023 sl_status_t sl_bt_advertiser_stop(uint8_t handle);
1024 
1025 /***************************************************************************/
1063 sl_status_t sl_bt_advertiser_start_periodic_advertising(uint8_t handle,
1064  uint16_t interval_min,
1065  uint16_t interval_max,
1066  uint32_t flags);
1067 
1068 /***************************************************************************/
1081 sl_status_t sl_bt_advertiser_stop_periodic_advertising(uint8_t handle);
1082 
1083 /***************************************************************************/
1092 sl_status_t sl_bt_advertiser_delete_set(uint8_t handle);
1093  // end addtogroup sl_bt_advertiser
1095 
1106 /***************************************************************************/
1154 sl_status_t sl_bt_scanner_set_timing(uint8_t phys,
1155  uint16_t scan_interval,
1156  uint16_t scan_window);
1157 
1158 /***************************************************************************/
1184 sl_status_t sl_bt_scanner_set_mode(uint8_t phys, uint8_t scan_mode);
1185 
1186 /***************************************************************************/
1214 sl_status_t sl_bt_scanner_start(uint8_t scanning_phy, uint8_t discover_mode);
1215 
1216 /***************************************************************************/
1225 sl_status_t sl_bt_scanner_stop();
1226  // end addtogroup sl_bt_scanner
1228 
1238 /***************************************************************************/
1265 sl_status_t sl_bt_sync_set_parameters(uint16_t skip,
1266  uint16_t timeout,
1267  uint32_t flags);
1268 
1269 /***************************************************************************/
1303 sl_status_t sl_bt_sync_open(bd_addr address,
1304  uint8_t address_type,
1305  uint8_t adv_sid,
1306  uint16_t *sync);
1307 
1308 /***************************************************************************/
1322 sl_status_t sl_bt_sync_close(uint16_t sync);
1323  // end addtogroup sl_bt_sync
1325 
1336 /***************************************************************************/
1405 sl_status_t sl_bt_connection_set_default_parameters(uint16_t min_interval,
1406  uint16_t max_interval,
1407  uint16_t latency,
1408  uint16_t timeout,
1409  uint16_t min_ce_length,
1410  uint16_t max_ce_length);
1411 
1412 /***************************************************************************/
1447 sl_status_t sl_bt_connection_set_default_preferred_phy(uint8_t preferred_phy,
1448  uint8_t accepted_phy);
1449 
1450 /***************************************************************************/
1513 sl_status_t sl_bt_connection_open(bd_addr address,
1514  uint8_t address_type,
1515  uint8_t initiating_phy,
1516  uint8_t *connection);
1517 
1518 /***************************************************************************/
1577 sl_status_t sl_bt_connection_set_parameters(uint8_t connection,
1578  uint16_t min_interval,
1579  uint16_t max_interval,
1580  uint16_t latency,
1581  uint16_t timeout,
1582  uint16_t min_ce_length,
1583  uint16_t max_ce_length);
1584 
1585 /***************************************************************************/
1625 sl_status_t sl_bt_connection_set_preferred_phy(uint8_t connection,
1626  uint8_t preferred_phy,
1627  uint8_t accepted_phy);
1628 
1629 /***************************************************************************/
1642 sl_status_t sl_bt_connection_disable_slave_latency(uint8_t connection,
1643  uint8_t disable);
1644 
1645 /***************************************************************************/
1659 sl_status_t sl_bt_connection_get_rssi(uint8_t connection);
1660 
1661 /***************************************************************************/
1683 sl_status_t sl_bt_connection_read_channel_map(uint8_t connection,
1684  size_t max_channel_map_size,
1685  size_t *channel_map_len,
1686  uint8_t *channel_map);
1687 
1688 /***************************************************************************/
1703 sl_status_t sl_bt_connection_close(uint8_t connection);
1704  // end addtogroup sl_bt_connection
1706 
1717 /***************************************************************************/
1739 sl_status_t sl_bt_gatt_set_max_mtu(uint16_t max_mtu, uint16_t *max_mtu_out);
1740 
1741 /***************************************************************************/
1759 sl_status_t sl_bt_gatt_discover_primary_services(uint8_t connection);
1760 
1761 /***************************************************************************/
1781 sl_status_t sl_bt_gatt_discover_primary_services_by_uuid(uint8_t connection,
1782  size_t uuid_len,
1783  const uint8_t* uuid);
1784 
1785 /***************************************************************************/
1805 sl_status_t sl_bt_gatt_find_included_services(uint8_t connection,
1806  uint32_t service);
1807 
1808 /***************************************************************************/
1829 sl_status_t sl_bt_gatt_discover_characteristics(uint8_t connection,
1830  uint32_t service);
1831 
1832 /***************************************************************************/
1856 sl_status_t sl_bt_gatt_discover_characteristics_by_uuid(uint8_t connection,
1857  uint32_t service,
1858  size_t uuid_len,
1859  const uint8_t* uuid);
1860 
1861 /***************************************************************************/
1881 sl_status_t sl_bt_gatt_discover_descriptors(uint8_t connection,
1882  uint16_t characteristic);
1883 
1884 /***************************************************************************/
1916 sl_status_t sl_bt_gatt_set_characteristic_notification(uint8_t connection,
1917  uint16_t characteristic,
1918  uint8_t flags);
1919 
1920 /***************************************************************************/
1934 sl_status_t sl_bt_gatt_send_characteristic_confirmation(uint8_t connection);
1935 
1936 /***************************************************************************/
1964 sl_status_t sl_bt_gatt_read_characteristic_value(uint8_t connection,
1965  uint16_t characteristic);
1966 
1967 /***************************************************************************/
1995 sl_status_t sl_bt_gatt_read_characteristic_value_from_offset(uint8_t connection,
1996  uint16_t characteristic,
1997  uint16_t offset,
1998  uint16_t maxlen);
1999 
2000 /***************************************************************************/
2034 sl_status_t sl_bt_gatt_read_multiple_characteristic_values(uint8_t connection,
2035  size_t characteristic_list_len,
2036  const uint8_t* characteristic_list);
2037 
2038 /***************************************************************************/
2066 sl_status_t sl_bt_gatt_read_characteristic_value_by_uuid(uint8_t connection,
2067  uint32_t service,
2068  size_t uuid_len,
2069  const uint8_t* uuid);
2070 
2071 /***************************************************************************/
2092 sl_status_t sl_bt_gatt_write_characteristic_value(uint8_t connection,
2093  uint16_t characteristic,
2094  size_t value_len,
2095  const uint8_t* value);
2096 
2097 /***************************************************************************/
2116 sl_status_t sl_bt_gatt_write_characteristic_value_without_response(uint8_t connection,
2117  uint16_t characteristic,
2118  size_t value_len,
2119  const uint8_t* value,
2120  uint16_t *sent_len);
2121 
2122 /***************************************************************************/
2153 sl_status_t sl_bt_gatt_prepare_characteristic_value_write(uint8_t connection,
2154  uint16_t characteristic,
2155  uint16_t offset,
2156  size_t value_len,
2157  const uint8_t* value,
2158  uint16_t *sent_len);
2159 
2160 /***************************************************************************/
2190 sl_status_t sl_bt_gatt_prepare_characteristic_value_reliable_write(uint8_t connection,
2191  uint16_t characteristic,
2192  uint16_t offset,
2193  size_t value_len,
2194  const uint8_t* value,
2195  uint16_t *sent_len);
2196 
2197 /***************************************************************************/
2219 sl_status_t sl_bt_gatt_execute_characteristic_value_write(uint8_t connection,
2220  uint8_t flags);
2221 
2222 /***************************************************************************/
2244 sl_status_t sl_bt_gatt_read_descriptor_value(uint8_t connection,
2245  uint16_t descriptor);
2246 
2247 /***************************************************************************/
2267 sl_status_t sl_bt_gatt_write_descriptor_value(uint8_t connection,
2268  uint16_t descriptor,
2269  size_t value_len,
2270  const uint8_t* value);
2271  // end addtogroup sl_bt_gatt
2273 
2284 /***************************************************************************/
2309 sl_status_t sl_bt_gatt_server_set_capabilities(uint32_t caps,
2310  uint32_t reserved);
2311 
2312 /***************************************************************************/
2323 sl_status_t sl_bt_gatt_server_enable_capabilities(uint32_t caps);
2324 
2325 /***************************************************************************/
2335 sl_status_t sl_bt_gatt_server_disable_capabilities(uint32_t caps);
2336 
2337 /***************************************************************************/
2346 sl_status_t sl_bt_gatt_server_get_enabled_capabilities(uint32_t *caps);
2347 
2348 /***************************************************************************/
2370 sl_status_t sl_bt_gatt_server_set_max_mtu(uint16_t max_mtu,
2371  uint16_t *max_mtu_out);
2372 
2373 /***************************************************************************/
2383 sl_status_t sl_bt_gatt_server_get_mtu(uint8_t connection, uint16_t *mtu);
2384 
2385 /***************************************************************************/
2398 sl_status_t sl_bt_gatt_server_find_attribute(uint16_t start,
2399  size_t type_len,
2400  const uint8_t* type,
2401  uint16_t *attribute);
2402 
2403 /***************************************************************************/
2420 sl_status_t sl_bt_gatt_server_read_attribute_value(uint16_t attribute,
2421  uint16_t offset,
2422  size_t max_value_size,
2423  size_t *value_len,
2424  uint8_t *value);
2425 
2426 /***************************************************************************/
2440 sl_status_t sl_bt_gatt_server_read_attribute_type(uint16_t attribute,
2441  size_t max_type_size,
2442  size_t *type_len,
2443  uint8_t *type);
2444 
2445 /***************************************************************************/
2462 sl_status_t sl_bt_gatt_server_write_attribute_value(uint16_t attribute,
2463  uint16_t offset,
2464  size_t value_len,
2465  const uint8_t* value);
2466 
2467 /***************************************************************************/
2494 sl_status_t sl_bt_gatt_server_send_user_read_response(uint8_t connection,
2495  uint16_t characteristic,
2496  uint8_t att_errorcode,
2497  size_t value_len,
2498  const uint8_t* value,
2499  uint16_t *sent_len);
2500 
2501 /***************************************************************************/
2523 sl_status_t sl_bt_gatt_server_send_user_write_response(uint8_t connection,
2524  uint16_t characteristic,
2525  uint8_t att_errorcode);
2526 
2527 /***************************************************************************/
2563 sl_status_t sl_bt_gatt_server_send_characteristic_notification(uint8_t connection,
2564  uint16_t characteristic,
2565  size_t value_len,
2566  const uint8_t* value,
2567  uint16_t *sent_len);
2568  // end addtogroup sl_bt_gatt_server
2570 
2601 /***************************************************************************/
2615 sl_status_t sl_bt_nvm_save(uint16_t key,
2616  size_t value_len,
2617  const uint8_t* value);
2618 
2619 /***************************************************************************/
2632 sl_status_t sl_bt_nvm_load(uint16_t key,
2633  size_t max_value_size,
2634  size_t *value_len,
2635  uint8_t *value);
2636 
2637 /***************************************************************************/
2646 sl_status_t sl_bt_nvm_erase(uint16_t key);
2647 
2648 /***************************************************************************/
2656 sl_status_t sl_bt_nvm_erase_all();
2657  // end addtogroup sl_bt_nvm
2659 
2669 /***************************************************************************/
2722 sl_status_t sl_bt_test_dtm_tx(uint8_t packet_type,
2723  uint8_t length,
2724  uint8_t channel,
2725  uint8_t phy);
2726 
2727 /***************************************************************************/
2762 sl_status_t sl_bt_test_dtm_rx(uint8_t channel, uint8_t phy);
2763 
2764 /***************************************************************************/
2778 sl_status_t sl_bt_test_dtm_end();
2779  // end addtogroup sl_bt_test
2781 
2820 /***************************************************************************/
2865 sl_status_t sl_bt_sm_configure(uint8_t flags, uint8_t io_capabilities);
2866 
2867 /***************************************************************************/
2878 sl_status_t sl_bt_sm_set_minimum_key_size(uint8_t minimum_key_size);
2879 
2880 /***************************************************************************/
2892 sl_status_t sl_bt_sm_set_debug_mode();
2893 
2894 /***************************************************************************/
2912 sl_status_t sl_bt_sm_add_to_whitelist(bd_addr address, uint8_t address_type);
2913 
2914 /***************************************************************************/
2941 sl_status_t sl_bt_sm_store_bonding_configuration(uint8_t max_bonding_count,
2942  uint8_t policy_flags);
2943 
2944 /***************************************************************************/
2960 sl_status_t sl_bt_sm_set_bondable_mode(uint8_t bondable);
2961 
2962 /***************************************************************************/
2973 sl_status_t sl_bt_sm_set_passkey(int32_t passkey);
2974 
2975 /***************************************************************************/
2989 sl_status_t sl_bt_sm_set_oob_data(size_t oob_data_len, const uint8_t* oob_data);
2990 
2991 /***************************************************************************/
3014 sl_status_t sl_bt_sm_use_sc_oob(uint8_t enable,
3015  size_t max_oob_data_size,
3016  size_t *oob_data_len,
3017  uint8_t *oob_data);
3018 
3019 /***************************************************************************/
3033 sl_status_t sl_bt_sm_set_sc_remote_oob_data(size_t oob_data_len,
3034  const uint8_t* oob_data);
3035 
3036 /***************************************************************************/
3057 sl_status_t sl_bt_sm_increase_security(uint8_t connection);
3058 
3059 /***************************************************************************/
3069 sl_status_t sl_bt_sm_enter_passkey(uint8_t connection, int32_t passkey);
3070 
3071 /***************************************************************************/
3083 sl_status_t sl_bt_sm_passkey_confirm(uint8_t connection, uint8_t confirm);
3084 
3085 /***************************************************************************/
3097 sl_status_t sl_bt_sm_bonding_confirm(uint8_t connection, uint8_t confirm);
3098 
3099 /***************************************************************************/
3115 sl_status_t sl_bt_sm_list_all_bondings();
3116 
3117 /***************************************************************************/
3126 sl_status_t sl_bt_sm_delete_bonding(uint8_t bonding);
3127 
3128 /***************************************************************************/
3136 sl_status_t sl_bt_sm_delete_bondings();
3137  // end addtogroup sl_bt_sm
3139 
3149 /***************************************************************************/
3162 sl_status_t sl_bt_ota_set_device_name(size_t name_len, const uint8_t* name);
3163 
3164 /***************************************************************************/
3178 sl_status_t sl_bt_ota_set_advertising_data(uint8_t packet_type,
3179  size_t adv_data_len,
3180  const uint8_t* adv_data);
3181 
3182 /***************************************************************************/
3211 sl_status_t sl_bt_ota_set_configuration(uint32_t flags);
3212 
3213 /***************************************************************************/
3227 sl_status_t sl_bt_ota_set_rf_path(uint8_t enable, uint8_t antenna);
3228  // end addtogroup sl_bt_ota
3230 
3241 /***************************************************************************/
3253 sl_status_t sl_bt_coex_set_options(uint32_t mask, uint32_t options);
3254 
3255 /***************************************************************************/
3269 sl_status_t sl_bt_coex_set_parameters(uint8_t priority,
3270  uint8_t request,
3271  uint8_t pwm_period,
3272  uint8_t pwm_dutycycle);
3273 
3274 /***************************************************************************/
3283 sl_status_t sl_bt_coex_set_directional_priority_pulse(uint8_t pulse);
3284 
3285 /***************************************************************************/
3302 sl_status_t sl_bt_coex_get_counters(uint8_t reset,
3303  size_t max_counters_size,
3304  size_t *counters_len,
3305  uint8_t *counters);
3306  // end addtogroup sl_bt_coex
3308 
3320 /***************************************************************************/
3364 sl_status_t sl_bt_l2cap_coc_send_connection_request(uint8_t connection,
3365  uint16_t le_psm,
3366  uint16_t mtu,
3367  uint16_t mps,
3368  uint16_t initial_credit);
3369 
3370 /***************************************************************************/
3410 sl_status_t sl_bt_l2cap_coc_send_connection_response(uint8_t connection,
3411  uint16_t cid,
3412  uint16_t mtu,
3413  uint16_t mps,
3414  uint16_t initial_credit,
3415  uint16_t l2cap_errorcode);
3416 
3417 /***************************************************************************/
3436 sl_status_t sl_bt_l2cap_coc_send_le_flow_control_credit(uint8_t connection,
3437  uint16_t cid,
3438  uint16_t credits);
3439 
3440 /***************************************************************************/
3460 sl_status_t sl_bt_l2cap_coc_send_disconnection_request(uint8_t connection,
3461  uint16_t cid);
3462 
3463 /***************************************************************************/
3481 sl_status_t sl_bt_l2cap_coc_send_data(uint8_t connection,
3482  uint16_t cid,
3483  size_t data_len,
3484  const uint8_t* data);
3485  // end addtogroup sl_bt_l2cap
3502 /***************************************************************************/
3530 sl_status_t sl_bt_cte_transmitter_set_dtm_parameters(uint8_t cte_length,
3531  uint8_t cte_type,
3532  size_t switching_pattern_len,
3533  const uint8_t* switching_pattern);
3534 
3535 /***************************************************************************/
3545 
3546 /***************************************************************************/
3564 sl_status_t sl_bt_cte_transmitter_enable_connection_cte(uint8_t connection,
3565  uint8_t cte_types,
3566  size_t switching_pattern_len,
3567  const uint8_t* switching_pattern);
3568 
3569 /***************************************************************************/
3578 sl_status_t sl_bt_cte_transmitter_disable_connection_cte(uint8_t connection);
3579 
3580 /***************************************************************************/
3604 sl_status_t sl_bt_cte_transmitter_enable_connectionless_cte(uint8_t handle,
3605  uint8_t cte_length,
3606  uint8_t cte_type,
3607  uint8_t cte_count,
3608  size_t switching_pattern_len,
3609  const uint8_t* switching_pattern);
3610 
3611 /***************************************************************************/
3620 sl_status_t sl_bt_cte_transmitter_disable_connectionless_cte(uint8_t handle);
3621 
3622 /***************************************************************************/
3646 sl_status_t sl_bt_cte_transmitter_enable_silabs_cte(uint8_t handle,
3647  uint8_t cte_length,
3648  uint8_t cte_type,
3649  uint8_t cte_count,
3650  size_t switching_pattern_len,
3651  const uint8_t* switching_pattern);
3652 
3653 /***************************************************************************/
3662 sl_status_t sl_bt_cte_transmitter_disable_silabs_cte(uint8_t handle);
3663  // end addtogroup sl_bt_cte_transmitter
3665 
3679 /***************************************************************************/
3718 sl_status_t sl_bt_cte_receiver_set_dtm_parameters(uint8_t cte_length,
3719  uint8_t cte_type,
3720  uint8_t slot_durations,
3721  size_t switching_pattern_len,
3722  const uint8_t* switching_pattern);
3723 
3724 /***************************************************************************/
3734 
3735 /***************************************************************************/
3759 sl_status_t sl_bt_cte_receiver_set_sync_cte_type(uint8_t sync_cte_type);
3760 
3761 /***************************************************************************/
3781 sl_status_t sl_bt_cte_receiver_configure(uint8_t flags);
3782 
3783 /***************************************************************************/
3816 sl_status_t sl_bt_cte_receiver_enable_connection_cte(uint8_t connection,
3817  uint16_t interval,
3818  uint8_t cte_length,
3819  uint8_t cte_type,
3820  uint8_t slot_durations,
3821  size_t switching_pattern_len,
3822  const uint8_t* switching_pattern);
3823 
3824 /***************************************************************************/
3834 sl_status_t sl_bt_cte_receiver_disable_connection_cte(uint8_t connection);
3835 
3836 /***************************************************************************/
3860 sl_status_t sl_bt_cte_receiver_enable_connectionless_cte(uint16_t sync,
3861  uint8_t slot_durations,
3862  uint8_t cte_count,
3863  size_t switching_pattern_len,
3864  const uint8_t* switching_pattern);
3865 
3866 /***************************************************************************/
3875 sl_status_t sl_bt_cte_receiver_disable_connectionless_cte(uint16_t sync);
3876 
3877 /***************************************************************************/
3899 sl_status_t sl_bt_cte_receiver_enable_silabs_cte(uint8_t slot_durations,
3900  uint8_t cte_count,
3901  size_t switching_pattern_len,
3902  const uint8_t* switching_pattern);
3903 
3904 /***************************************************************************/
3913  // end addtogroup sl_bt_cte_receiver
3915 
3929 /***************************************************************************/
3945 sl_status_t sl_bt_user_message_to_target(size_t data_len,
3946  const uint8_t* data,
3947  size_t max_response_size,
3948  size_t *response_len,
3949  uint8_t *response);
3950  // end addtogroup sl_bt_user
3952 
3953 
3954 
3955 
3970 sl_status_t sl_bt_wait_event(sl_bt_msg_t* event);
3971 
3980 sl_status_t sl_bt_pop_event(sl_bt_msg_t* event);
3981 
3988 bool sl_bt_event_pending(void);
3989 
3997 uint32_t sl_bt_event_pending_len();
3998 
4008 void sl_bt_handle_command(uint32_t hdr, void* data);
4009 
4013 extern void* sli_bt_get_command_response();
4014 
4022 {
4024 }
4025 
4044 void sl_bt_priority_handle(void);
4045 
4056 void sl_bt_external_signal(uint32_t signals);
4057 
4063 
4067 void sl_bt_send_system_error(uint16_t reason, uint8_t data_len, const uint8_t *data);
4068 
4075 uint8_t sl_bt_is_sensitive_message(uint32_t message_id);
4076 
4084 void sl_bt_send_rsp_user_message_to_target(uint16_t result, uint8_t data_len, uint8_t *data);
4085 
4093 void sl_bt_send_evt_user_message_to_host(uint8_t data_len, uint8_t *data);
4094  // end addtogroup sl_bt_utility_functions
4096 
4097 
4098 
4099 #ifdef __cplusplus
4100 }
4101 #endif
4102 
4103 #endif
sl_status_t sl_bt_connection_set_preferred_phy(uint8_t connection, uint8_t preferred_phy, uint8_t accepted_phy)
sl_status_t sl_bt_gatt_server_disable_capabilities(uint32_t caps)
void * sli_bt_get_command_response()
void sl_bt_priority_handle(void)
sl_status_t sl_bt_gatt_write_characteristic_value_without_response(uint8_t connection, uint16_t characteristic, size_t value_len, const uint8_t *value, uint16_t *sent_len)
sl_status_t sl_bt_coex_set_parameters(uint8_t priority, uint8_t request, uint8_t pwm_period, uint8_t pwm_dutycycle)
uint32_t sl_bt_event_pending_len()
sl_status_t sl_bt_cte_receiver_disable_silabs_cte()
sl_status_t sl_bt_gatt_write_descriptor_value(uint8_t connection, uint16_t descriptor, size_t value_len, const uint8_t *value)
sl_status_t sl_bt_cte_receiver_disable_connection_cte(uint8_t connection)
sl_status_t sl_bt_advertiser_create_set(uint8_t *handle)
sl_status_t sl_bt_system_data_buffer_clear()
sl_status_t sl_bt_sm_configure(uint8_t flags, uint8_t io_capabilities)
sl_status_t sl_bt_dfu_flash_upload(size_t data_len, const uint8_t *data)
sl_status_t sl_bt_cte_receiver_disable_connectionless_cte(uint16_t sync)
sl_status_t sl_bt_gatt_read_characteristic_value(uint8_t connection, uint16_t characteristic)
sl_status_t sl_bt_gatt_discover_primary_services_by_uuid(uint8_t connection, size_t uuid_len, const uint8_t *uuid)
sl_status_t sl_bt_gatt_server_write_attribute_value(uint16_t attribute, uint16_t offset, size_t value_len, const uint8_t *value)
sl_status_t sl_bt_sync_open(bd_addr address, uint8_t address_type, uint8_t adv_sid, uint16_t *sync)
sl_status_t sl_bt_advertiser_clear_random_address(uint8_t handle)
sl_status_t sl_bt_advertiser_set_phy(uint8_t handle, uint8_t primary_phy, uint8_t secondary_phy)
sl_status_t sl_bt_gatt_set_max_mtu(uint16_t max_mtu, uint16_t *max_mtu_out)
sl_status_t sl_bt_connection_open(bd_addr address, uint8_t address_type, uint8_t initiating_phy, uint8_t *connection)
sl_status_t sl_bt_cte_receiver_enable_connection_cte(uint8_t connection, uint16_t interval, uint8_t cte_length, uint8_t cte_type, uint8_t slot_durations, size_t switching_pattern_len, const uint8_t *switching_pattern)
sl_status_t sl_bt_sm_passkey_confirm(uint8_t connection, uint8_t confirm)
sl_status_t sl_bt_gap_set_data_channel_classification(size_t channel_map_len, const uint8_t *channel_map)
sl_status_t sl_bt_coex_set_options(uint32_t mask, uint32_t options)
sl_status_t sl_bt_advertiser_set_report_scan_request(uint8_t handle, uint8_t report_scan_req)
sl_status_t sl_bt_sync_set_parameters(uint16_t skip, uint16_t timeout, uint32_t flags)
sl_status_t sl_bt_gatt_send_characteristic_confirmation(uint8_t connection)
sl_status_t sl_bt_sm_set_minimum_key_size(uint8_t minimum_key_size)
sl_status_t sl_bt_gatt_server_find_attribute(uint16_t start, size_t type_len, const uint8_t *type, uint16_t *attribute)
sl_status_t sl_bt_ota_set_rf_path(uint8_t enable, uint8_t antenna)
sl_status_t sl_bt_advertiser_set_configuration(uint8_t handle, uint32_t configurations)
sl_status_t sl_bt_wait_event(sl_bt_msg_t *event)
sl_status_t sl_bt_nvm_erase_all()
sl_status_t sl_bt_gatt_discover_descriptors(uint8_t connection, uint16_t characteristic)
sl_status_t sl_bt_sm_set_passkey(int32_t passkey)
sl_status_t sl_bt_gatt_server_read_attribute_type(uint16_t attribute, size_t max_type_size, size_t *type_len, uint8_t *type)
sl_status_t sl_bt_sm_bonding_confirm(uint8_t connection, uint8_t confirm)
sl_status_t sl_bt_cte_transmitter_disable_connectionless_cte(uint8_t handle)
sl_status_t sl_bt_sm_add_to_whitelist(bd_addr address, uint8_t address_type)
sl_status_t sl_bt_gatt_server_send_user_read_response(uint8_t connection, uint16_t characteristic, uint8_t att_errorcode, size_t value_len, const uint8_t *value, uint16_t *sent_len)
sl_status_t sl_bt_connection_disable_slave_latency(uint8_t connection, uint8_t disable)
sl_status_t sl_bt_sm_set_bondable_mode(uint8_t bondable)
sl_status_t sl_bt_test_dtm_tx(uint8_t packet_type, uint8_t length, uint8_t channel, uint8_t phy)
sl_status_t sl_bt_cte_transmitter_set_dtm_parameters(uint8_t cte_length, uint8_t cte_type, size_t switching_pattern_len, const uint8_t *switching_pattern)
sl_status_t sl_bt_sm_enter_passkey(uint8_t connection, int32_t passkey)
static sl_bt_msg_t * sl_bt_get_command_response()
Definition: sl_bt_api.h:4021
sl_status_t sl_bt_sm_use_sc_oob(uint8_t enable, size_t max_oob_data_size, size_t *oob_data_len, uint8_t *oob_data)
sl_status_t sl_bt_coex_get_counters(uint8_t reset, size_t max_counters_size, size_t *counters_len, uint8_t *counters)
sl_status_t sl_bt_advertiser_delete_set(uint8_t handle)
void sl_bt_dfu_reset(uint8_t dfu)
sl_status_t sl_bt_advertiser_set_long_data(uint8_t handle, uint8_t packet_type)
sl_status_t sl_bt_cte_receiver_set_sync_cte_type(uint8_t sync_cte_type)
sl_status_t sl_bt_gatt_read_multiple_characteristic_values(uint8_t connection, size_t characteristic_list_len, const uint8_t *characteristic_list)
sl_status_t sl_bt_gatt_prepare_characteristic_value_reliable_write(uint8_t connection, uint16_t characteristic, uint16_t offset, size_t value_len, const uint8_t *value, uint16_t *sent_len)
sl_status_t sl_bt_gatt_discover_primary_services(uint8_t connection)
sl_status_t sl_bt_sm_increase_security(uint8_t connection)
sl_status_t sl_bt_nvm_load(uint16_t key, size_t max_value_size, size_t *value_len, uint8_t *value)
sl_status_t sl_bt_cte_receiver_clear_dtm_parameters()
void sl_bt_send_system_awake()
sl_status_t sl_bt_gatt_server_send_characteristic_notification(uint8_t connection, uint16_t characteristic, size_t value_len, const uint8_t *value, uint16_t *sent_len)
sl_status_t sl_bt_test_dtm_end()
sl_status_t sl_bt_gatt_find_included_services(uint8_t connection, uint32_t service)
sl_status_t sl_bt_gatt_set_characteristic_notification(uint8_t connection, uint16_t characteristic, uint8_t flags)
void sl_bt_send_system_error(uint16_t reason, uint8_t data_len, const uint8_t *data)
sl_status_t sl_bt_connection_read_channel_map(uint8_t connection, size_t max_channel_map_size, size_t *channel_map_len, uint8_t *channel_map)
sl_status_t sl_bt_gatt_server_get_enabled_capabilities(uint32_t *caps)
sl_status_t sl_bt_advertiser_stop_periodic_advertising(uint8_t handle)
sl_status_t sl_bt_system_set_lazy_soft_timer(uint32_t time, uint32_t slack, uint8_t handle, uint8_t single_shot)
sl_status_t sl_bt_system_hello()
sl_status_t sl_bt_advertiser_set_tx_power(uint8_t handle, int16_t power, int16_t *set_power)
Bluetooth address.
Definition: sl_bt_types.h:56
sl_status_t sl_bt_advertiser_set_data(uint8_t handle, uint8_t packet_type, size_t adv_data_len, const uint8_t *adv_data)
sl_status_t sl_bt_dfu_flash_set_address(uint32_t address)
sl_status_t sl_bt_system_halt(uint8_t halt)
sl_status_t sl_bt_cte_receiver_enable_silabs_cte(uint8_t slot_durations, uint8_t cte_count, size_t switching_pattern_len, const uint8_t *switching_pattern)
sl_status_t sl_bt_gatt_server_enable_capabilities(uint32_t caps)
sl_status_t sl_bt_nvm_erase(uint16_t key)
sl_status_t sl_bt_gatt_prepare_characteristic_value_write(uint8_t connection, uint16_t characteristic, uint16_t offset, size_t value_len, const uint8_t *value, uint16_t *sent_len)
sl_status_t sl_bt_sm_delete_bonding(uint8_t bonding)
sl_status_t sl_bt_advertiser_stop(uint8_t handle)
sl_status_t sl_bt_gatt_write_characteristic_value(uint8_t connection, uint16_t characteristic, size_t value_len, const uint8_t *value)
sl_status_t sl_bt_cte_transmitter_clear_dtm_parameters()
sl_status_t sl_bt_user_message_to_target(size_t data_len, const uint8_t *data, size_t max_response_size, size_t *response_len, uint8_t *response)
sl_status_t sl_bt_cte_transmitter_enable_connectionless_cte(uint8_t handle, uint8_t cte_length, uint8_t cte_type, uint8_t cte_count, size_t switching_pattern_len, const uint8_t *switching_pattern)
sl_status_t sl_bt_scanner_start(uint8_t scanning_phy, uint8_t discover_mode)
sl_status_t sl_bt_cte_receiver_set_dtm_parameters(uint8_t cte_length, uint8_t cte_type, uint8_t slot_durations, size_t switching_pattern_len, const uint8_t *switching_pattern)
sl_status_t sl_bt_sm_set_oob_data(size_t oob_data_len, const uint8_t *oob_data)
sl_status_t sl_bt_advertiser_clear_configuration(uint8_t handle, uint32_t configurations)
sl_status_t sl_bt_gatt_read_characteristic_value_from_offset(uint8_t connection, uint16_t characteristic, uint16_t offset, uint16_t maxlen)
sl_status_t sl_bt_dfu_flash_upload_finish()
sl_status_t sl_bt_connection_set_default_preferred_phy(uint8_t preferred_phy, uint8_t accepted_phy)
sl_status_t sl_bt_system_get_random_data(uint8_t length, size_t max_data_size, size_t *data_len, uint8_t *data)
sl_status_t sl_bt_connection_set_parameters(uint8_t connection, uint16_t min_interval, uint16_t max_interval, uint16_t latency, uint16_t timeout, uint16_t min_ce_length, uint16_t max_ce_length)
sl_status_t sl_bt_nvm_save(uint16_t key, size_t value_len, const uint8_t *value)
sl_status_t sl_bt_advertiser_set_channel_map(uint8_t handle, uint8_t channel_map)
sl_status_t sl_bt_gatt_server_set_max_mtu(uint16_t max_mtu, uint16_t *max_mtu_out)
sl_status_t sl_bt_cte_transmitter_enable_connection_cte(uint8_t connection, uint8_t cte_types, size_t switching_pattern_len, const uint8_t *switching_pattern)
sl_status_t sl_bt_pop_event(sl_bt_msg_t *event)
bool sl_bt_event_pending(void)
sl_status_t sl_bt_sync_close(uint16_t sync)
sl_status_t sl_bt_gatt_server_get_mtu(uint8_t connection, uint16_t *mtu)
sl_status_t sl_bt_gatt_discover_characteristics(uint8_t connection, uint32_t service)
sl_status_t sl_bt_cte_receiver_enable_connectionless_cte(uint16_t sync, uint8_t slot_durations, uint8_t cte_count, size_t switching_pattern_len, const uint8_t *switching_pattern)
void sl_bt_handle_command(uint32_t hdr, void *data)
sl_status_t sl_bt_sm_set_debug_mode()
sl_status_t sl_bt_connection_set_default_parameters(uint16_t min_interval, uint16_t max_interval, uint16_t latency, uint16_t timeout, uint16_t min_ce_length, uint16_t max_ce_length)
sl_status_t sl_bt_gap_set_privacy_mode(uint8_t privacy, uint8_t interval)
sl_status_t sl_bt_advertiser_set_random_address(uint8_t handle, uint8_t addr_type, bd_addr address, bd_addr *address_out)
void sl_bt_send_rsp_user_message_to_target(uint16_t result, uint8_t data_len, uint8_t *data)
sl_status_t sl_bt_cte_transmitter_disable_silabs_cte(uint8_t handle)
uint8_t sl_bt_is_sensitive_message(uint32_t message_id)
sl_status_t sl_bt_scanner_set_timing(uint8_t phys, uint16_t scan_interval, uint16_t scan_window)
sl_status_t sl_bt_scanner_set_mode(uint8_t phys, uint8_t scan_mode)
void sl_bt_send_evt_user_message_to_host(uint8_t data_len, uint8_t *data)
sl_status_t sl_bt_gatt_read_characteristic_value_by_uuid(uint8_t connection, uint32_t service, size_t uuid_len, const uint8_t *uuid)
sl_status_t sl_bt_gatt_read_descriptor_value(uint8_t connection, uint16_t descriptor)
sl_status_t sl_bt_advertiser_start_periodic_advertising(uint8_t handle, uint16_t interval_min, uint16_t interval_max, uint32_t flags)
sl_status_t sl_bt_system_set_max_tx_power(int16_t power, int16_t *set_power)
sl_status_t sl_bt_scanner_stop()
sl_status_t sl_bt_sm_delete_bondings()
void sl_bt_external_signal(uint32_t signals)
sl_status_t sl_bt_cte_transmitter_disable_connection_cte(uint8_t connection)
sl_status_t sl_bt_ota_set_device_name(size_t name_len, const uint8_t *name)
void sl_bt_system_reset(uint8_t dfu)
sl_status_t sl_bt_sm_set_sc_remote_oob_data(size_t oob_data_len, const uint8_t *oob_data)
sl_status_t sl_bt_gap_enable_whitelisting(uint8_t enable)
sl_status_t sl_bt_advertiser_start(uint8_t handle, uint8_t discover, uint8_t connect)
sl_status_t sl_bt_gatt_server_set_capabilities(uint32_t caps, uint32_t reserved)
sl_status_t sl_bt_system_data_buffer_write(size_t data_len, const uint8_t *data)
sl_status_t sl_bt_ota_set_configuration(uint32_t flags)
sl_status_t sl_bt_gatt_discover_characteristics_by_uuid(uint8_t connection, uint32_t service, size_t uuid_len, const uint8_t *uuid)
sl_status_t sl_bt_gatt_server_read_attribute_value(uint16_t attribute, uint16_t offset, size_t max_value_size, size_t *value_len, uint8_t *value)
sl_status_t sl_bt_system_set_identity_address(bd_addr address, uint8_t type)
sl_status_t sl_bt_system_linklayer_configure(uint8_t key, size_t data_len, const uint8_t *data)
sl_status_t sl_bt_cte_transmitter_enable_silabs_cte(uint8_t handle, uint8_t cte_length, uint8_t cte_type, uint8_t cte_count, size_t switching_pattern_len, const uint8_t *switching_pattern)
sl_status_t sl_bt_gatt_server_send_user_write_response(uint8_t connection, uint16_t characteristic, uint8_t att_errorcode)
sl_status_t sl_bt_coex_set_directional_priority_pulse(uint8_t pulse)
sl_status_t sl_bt_system_get_counters(uint8_t reset, uint16_t *tx_packets, uint16_t *rx_packets, uint16_t *crc_errors, uint16_t *failures)
Definition: sl_bt_types.h:2743
sl_status_t sl_bt_system_get_identity_address(bd_addr *address, uint8_t *type)
sl_status_t sl_bt_ota_set_advertising_data(uint8_t packet_type, size_t adv_data_len, const uint8_t *adv_data)
sl_status_t sl_bt_system_set_soft_timer(uint32_t time, uint8_t handle, uint8_t single_shot)
sl_status_t sl_bt_connection_get_rssi(uint8_t connection)
sl_status_t sl_bt_sm_store_bonding_configuration(uint8_t max_bonding_count, uint8_t policy_flags)
sl_status_t sl_bt_gatt_execute_characteristic_value_write(uint8_t connection, uint8_t flags)
sl_status_t sl_bt_advertiser_set_timing(uint8_t handle, uint32_t interval_min, uint32_t interval_max, uint16_t duration, uint8_t maxevents)
sl_status_t sl_bt_sm_list_all_bondings()
sl_status_t sl_bt_test_dtm_rx(uint8_t channel, uint8_t phy)
sl_status_t sl_bt_connection_close(uint8_t connection)