+ All Categories
Home > Documents > RS9116W SAPI Programming Reference Manual › documents › login › reference...RS9116W SAPI...

RS9116W SAPI Programming Reference Manual › documents › login › reference...RS9116W SAPI...

Date post: 26-Jan-2021
Category:
Upload: others
View: 19 times
Download: 0 times
Share this document with a friend
472
silabs.com | Building a more connected world. 1 | Page RS9116W SAPI Programming Reference Manual Version 2.1 February 10, 2021
Transcript
  • silabs.com | Building a more connected world. 1 | Page

    RS9116W SAPI Programming Reference Manual Version 2.1

    February 10, 2021

  • RS9116W SAPI Programming Reference Manual Version 2.1

    silabs.com | Building a more connected world. 2 | Page

    Table of Contents

    1 Overview of Wireless SAPI and Features ........................................................................................................... 12

    2 RS9116W Features ............................................................................................................................................... 14

    3 Wireless SAPI Related Resources ...................................................................................................................... 16

    4 SAPI Architecture ................................................................................................................................................. 17

    5 SAPI Host Interfaces ............................................................................................................................................ 19 5.1 SPI Interface ................................................................................................................................................. 19 5.2 UART Interface ............................................................................................................................................. 33

    6 SAPI Command Frame Format ............................................................................................................................ 35

    7 SAPI Library Directory Structure ........................................................................................................................ 44

    8 Common APIs ....................................................................................................................................................... 45 8.1 rsi_driver_init ................................................................................................................................................ 45 8.2 rsi_set_intr_type ........................................................................................................................................... 45 8.3 rsi_device_init ............................................................................................................................................... 46 8.4 rsi_bl_upgrade_firmware .............................................................................................................................. 46 8.5 rsi_cmd_uart_flow_ctrl .................................................................................................................................. 47 8.6 rsi_wireless_init ............................................................................................................................................ 48 8.7 rsi_wireless_deinit ........................................................................................................................................ 49 8.8 rsi_wireless_driver_task................................................................................................................................ 50 8.9 rsi_wireless_antenna .................................................................................................................................... 50 8.10 rsi_send_feature_frame ................................................................................................................................ 51 8.11 rsi_set_rtc_timer ........................................................................................................................................... 52 8.12 rsi_get_rtc_timer ........................................................................................................................................... 53 8.13 rsi_get_ram_log ............................................................................................................................................ 54 8.14 rsi_get_ram_dump ........................................................................................................................................ 55 8.15 rsi_get_fw_version ........................................................................................................................................ 55 8.16 rsi_common_debug_log ............................................................................................................................... 56 8.17 rsi_driver_deinit ............................................................................................................................................ 57 8.18 rsi_device_deinit ........................................................................................................................................... 58 8.19 rsi_gpio_pininit .............................................................................................................................................. 58 8.20 rsi_gpio_writepin ........................................................................................................................................... 59 8.21 rsi_gpio_readpin ........................................................................................................................................... 59

    9 WLAN APIs ............................................................................................................................................................ 61 9.1 WLAN Core API ............................................................................................................................................ 61

    9.1.1 rsi_wlan_scan ............................................................................................................................................... 61 9.1.2 rsi_wlan_scan_async .................................................................................................................................... 64 9.1.3 rsi_wlan_scan_with_bitmap_options ............................................................................................................. 68 9.1.4 rsi_wlan_scan_async_with_bitmap_options .................................................................................................. 68 9.1.5 rsi_wlan_connect .......................................................................................................................................... 69 9.1.6 rsi_wlan_connect_async ............................................................................................................................... 71 9.1.7 rsi_wlan_bgscan_profile ............................................................................................................................... 74 9.1.8 rsi_wlan_execute_post_connect_cmds ......................................................................................................... 74 9.1.9 rsi_wlan_disconnect ..................................................................................................................................... 75 9.1.10 rsi_wlan_enable_auto_config ........................................................................................................................ 75 9.1.11 rsi_wlan_pmk_generate ................................................................................................................................ 76 9.1.12 rsi_wlan_set_certificate_index ...................................................................................................................... 77 9.1.13 rsi_wlan_set_certificate................................................................................................................................. 78 9.1.14 rsi_wlan_get_status ...................................................................................................................................... 79 9.1.15 rsi_wlan_update_gain_table ......................................................................................................................... 79 9.1.16 rsi_wlan_ap_start ......................................................................................................................................... 85 9.1.17 rsi_wlan_wps_push_button_event ................................................................................................................ 87 9.1.18 rsi_wlan_wps_generate_pin .......................................................................................................................... 87 9.1.19 rsi_wlan_wps_enter_pin ............................................................................................................................... 88 9.1.20 rsi_get_random_bytes .................................................................................................................................. 89 9.1.21 rsi_wlan_disconnect_stations........................................................................................................................ 89 9.1.22 rsi_wlan_get ................................................................................................................................................. 90 9.1.23 rsi_wlan_set ................................................................................................................................................. 96 9.1.24 rsi_wlan_ ping_async ................................................................................................................................... 97 9.1.25 rsi_register_auto_config_rsp_handler ........................................................................................................... 98 9.1.26 rsi_wlan_add_profile ..................................................................................................................................... 99 9.1.27 rsi_wlan_get_state ........................................................................................................................................ 99 9.1.28 rsi_wlan_get_profile .....................................................................................................................................100 9.1.29 rsi_fill_config_profile ....................................................................................................................................101

  • RS9116W SAPI Programming Reference Manual Version 2.1

    silabs.com | Building a more connected world. 3 | Page

    9.1.30 rsi_wlan_delete_profile ................................................................................................................................101 9.1.31 rsi_wlan_ power_save_profile ......................................................................................................................102 9.1.32 rsi_wlan_power_save_with_listen_interval ...................................................................................................105 9.1.33 rsi_wlan_set_sleep_timer ............................................................................................................................107 9.1.34 rsi_wlan_filter_broadcast .............................................................................................................................107 9.1.35 rsi_wlan_register_callbacks .........................................................................................................................108 9.1.36 rsi_nwk_register_callbacks ..........................................................................................................................112 9.1.37 rsi_wlan_buffer_config .................................................................................................................................113 9.1.38 rsi_wlan_receive_stats_start ........................................................................................................................114 9.1.39 rsi_wlan_receive_stats_stop ........................................................................................................................115 9.1.40 rsi_wlan_send_data .....................................................................................................................................115 9.1.41 rsi_transmit_test_start .................................................................................................................................116 9.1.42 rsi_transmit_test_stop ..................................................................................................................................119 9.1.43 rsi_req_wireless_fwup .................................................................................................................................119 9.1.44 rsi_load_bootup_params .............................................................................................................................120 9.1.45 rsi_efuse_write ............................................................................................................................................120 9.1.46 rsi_efuse_read .............................................................................................................................................121 9.1.47 rsi_flash_mem_wr .......................................................................................................................................121 9.1.48 rsi_reset_mac ..............................................................................................................................................122 9.1.49 translate_channel ........................................................................................................................................122 9.1.50 rsi_radio_caps .............................................................................................................................................123 9.1.51 rsi_wlan_radio_init ........................................................................................................................................123 9.1.52 rsi_wlan_radio_deinit ....................................................................................................................................124 9.1.53 rsi_certificate_valid ......................................................................................................................................125

    9.2 Configuration parameters ........................................................................................................................... 125 9.2.1 Configure opermode parameters..................................................................................................................125 9.2.2 Configure scan parameters ..........................................................................................................................128 9.2.3 Configure AP Mode parameters ...................................................................................................................128 9.2.4 Configure Set Region parameters ................................................................................................................129 9.2.5 Configure Set Region AP parameters ..........................................................................................................129 9.2.6 Configure Rejoin parameters .......................................................................................................................129 9.2.7 Configure BG scan parameters ....................................................................................................................129 9.2.8 Configure Roaming parameters ...................................................................................................................130 9.2.9 Configure HT capabilities .............................................................................................................................130 9.2.10 Configure Enterprise mode parameters ........................................................................................................131 9.2.11 Configure Join parameters ...........................................................................................................................131 9.2.12 Configure SSL parameters...........................................................................................................................131 9.2.13 Curve IDs Supported ...................................................................................................................................132 9.2.14 Configure Power Save parameters ..............................................................................................................132 9.2.15 Configure 10 TCP Sockets when Device is in AP mode ...............................................................................133

    10 NWK APIs ............................................................................................................................................................ 134 10.1 DHCP User class (Option-77) API .............................................................................................................. 134

    10.1.1 rsi_dhcp_user_class ....................................................................................................................................134 10.2 EMB_MQTT_client API ............................................................................................................................... 135

    10.2.1 rsi_emb_mqtt_client_init ..............................................................................................................................135 10.2.2 rsi_emb_mqtt_connect.................................................................................................................................136 10.2.3 rsi_emb_mqtt_subscribe ..............................................................................................................................137 10.2.4 rsi_emb_mqtt_publish ..................................................................................................................................138 10.2.5 rsi_emb_mqtt_unsubscribe ..........................................................................................................................138 10.2.6 rsi_emb_mqtt_disconnect ............................................................................................................................139 10.2.7 rsi_emb_mqtt_destroy .................................................................................................................................140

    10.3 Multicast...................................................................................................................................................... 140 10.3.1 rsi_multicast ................................................................................................................................................140 10.3.2 rsi_send_raw_data ......................................................................................................................................141 10.3.3 rsi_multicast_join .........................................................................................................................................141 10.3.4 rsi_multicast_leave ......................................................................................................................................142

    10.4 MDNS 143 10.4.1 rsi_mdns_txt_rec_create ..............................................................................................................................143 10.4.2 rsi_mdns_txt_rec_setvalue ..........................................................................................................................143 10.4.3 rsi_mdns_txt_rec_search .............................................................................................................................144 10.4.4 rsi_mdns_txt_rec_removevalue ...................................................................................................................144 10.4.5 rsi_mdns_get_txt_rec_buffer ........................................................................................................................145

    10.5 BSD Socket API .......................................................................................................................................... 145 10.5.1 rsi_config_ipaddress ....................................................................................................................................145 10.5.2 rsi_socket ....................................................................................................................................................147 10.5.3 rsi_bind .......................................................................................................................................................147 10.5.4 rsi_connect ..................................................................................................................................................148 10.5.5 rsi_listen ......................................................................................................................................................149 10.5.6 rsi_accept ....................................................................................................................................................149 10.5.7 rsi_accept_async .........................................................................................................................................150

  • RS9116W SAPI Programming Reference Manual Version 2.1

    silabs.com | Building a more connected world. 4 | Page

    10.5.8 rsi_select .....................................................................................................................................................150 10.5.9 rsi_recvfrom ................................................................................................................................................151 10.5.10 rsi_recv .......................................................................................................................................................152 10.5.11 rsi_sendto....................................................................................................................................................152 10.5.12 rsi_sendto_async .........................................................................................................................................153 10.5.13 rsi_send ......................................................................................................................................................154 10.5.14 rsi_send_async ...........................................................................................................................................154 10.5.15 rsi_shutdown ...............................................................................................................................................155 10.5.16 rsi_getsockopt .............................................................................................................................................156 10.5.17 rsi_setsockopt .............................................................................................................................................157 10.5.18 rsi_socket_async .........................................................................................................................................158 10.5.19 rsi_fd_isset ..................................................................................................................................................159 10.5.20 rsi_set_fd.....................................................................................................................................................159 10.5.21 rsi_fd_clr .....................................................................................................................................................159 10.5.22 rsi_select_set_status ...................................................................................................................................160 10.5.23 rsi_select_get_status ...................................................................................................................................160

    10.6 DNS 161 10.6.1 rsi_dns_req .................................................................................................................................................161 10.6.2 rsi_dns_update ............................................................................................................................................162

    10.7 FWUP 163 10.7.1 rsi_fwup .......................................................................................................................................................163 10.7.2 rsi_fwup_start ..............................................................................................................................................163 10.7.3 rsi_fwup_load ..............................................................................................................................................164

    10.8 FTP Client API ............................................................................................................................................ 165 10.8.1 rsi_ftp_connect ............................................................................................................................................165 10.8.2 rsi_ftp_disconnect ........................................................................................................................................166 10.8.3 rsi_ftp_file_write...........................................................................................................................................166 10.8.4 rsi_ftp_file_write_content .............................................................................................................................167 10.8.5 rsi_ftp_file_read_async ................................................................................................................................168 10.8.6 rsi_ftp_file_delete ........................................................................................................................................169 10.8.7 rsi_ftp_file_rename ......................................................................................................................................169 10.8.8 rsi_ftp_directory_create ...............................................................................................................................170 10.8.9 rsi_ftp_directory_delete................................................................................................................................170 10.8.10 rsi_ftp_directory_set ....................................................................................................................................171 10.8.11 rsi_ftp_directory_list_async ..........................................................................................................................172 10.8.12 rsi_ftp_mode_set .........................................................................................................................................173

    10.9 HTTP Client API ......................................................................................................................................... 173 10.9.1 rsi_http_client_get_async ............................................................................................................................173 10.9.2 rsi_http_client_post_async ...........................................................................................................................175 10.9.3 rsi_http_client_async ...................................................................................................................................178 10.9.4 rsi_http_client_post_data .............................................................................................................................180 10.9.5 rsi_http_client_put_create ............................................................................................................................182 10.9.6 rsi_http_client_put_start ...............................................................................................................................182 10.9.7 rsi_http_client_put_pkt .................................................................................................................................184 10.9.8 rsi_http_client_put_delete ............................................................................................................................185 10.9.9 rsi_http_client_abort ....................................................................................................................................185 10.9.10 rsi_http_credentials......................................................................................................................................186

    10.10 Network Application Protocol ...................................................................................................................... 187 10.10.1 SMTP client API ..........................................................................................................................................187 10.10.2 SNTP Client API ..........................................................................................................................................190 10.10.3 MQTT Client API .........................................................................................................................................193 10.10.4 HTTP Server API .........................................................................................................................................198 10.10.5 MDNSD API ................................................................................................................................................201 10.10.6 Socket configuration API ..............................................................................................................................203 10.10.7 rsi_wlan_req_radio ......................................................................................................................................205 10.10.8 rsi_wlan_add_mfi_ie ....................................................................................................................................205 10.10.9 Web socket API ...........................................................................................................................................206 10.10.10 OTAF client API ...........................................................................................................................................208

    11 BT/BLE Common APIs ....................................................................................................................................... 210 11.1 rsi_bt_set_local_name ................................................................................................................................ 210 11.2 rsi_bt_get_local_name ................................................................................................................................ 210 11.3 rsi_bt_get_rssi ............................................................................................................................................ 211 11.4 rsi_bt_get_local_device_address ................................................................................................................ 212 11.5 rsi_bt_init .................................................................................................................................................... 212 11.6 rsi_bt_deinit ................................................................................................................................................ 213 11.7 rsi_bt_set_antenna ..................................................................................................................................... 213 11.8 rsi_bt_set_feature_bitmap .......................................................................................................................... 214 11.9 rsi_bt_set_antenna_tx_power_level ........................................................................................................... 214 11.10 rsi_bt_power_save_profile .......................................................................................................................... 215

  • RS9116W SAPI Programming Reference Manual Version 2.1

    silabs.com | Building a more connected world. 5 | Page

    12 Bluetooth Classic APIs ...................................................................................................................................... 217 12.1 Test Mode (RF Regulatory Mode) API ........................................................................................................ 217

    12.1.1 rsi_bt_enable_device_under_testmode ........................................................................................................217 12.1.2 rsi_bt_per_rx ...............................................................................................................................................217 12.1.3 rsi_bt_per_tx................................................................................................................................................219 12.1.4 rsi_bt_per_stats ...........................................................................................................................................222

    12.2 GAP API ..................................................................................................................................................... 223 12.2.1 rsi_bt_set_local_class_of_device .................................................................................................................223 12.2.2 rsi_bt_get_local_class_of_device .................................................................................................................224 12.2.3 rsi_bt_start_discoverable .............................................................................................................................224 12.2.4 rsi_bt_start_limited_discoverable .................................................................................................................224 12.2.5 rsi_bt_stop_discoverable .............................................................................................................................225 12.2.6 rsi_bt_get_discoverable_status ....................................................................................................................225 12.2.7 rsi_bt_set_connectable ................................................................................................................................226 12.2.8 rsi_bt_set_non_connectable ........................................................................................................................226 12.2.9 rsi_bt_get_connectable_status .....................................................................................................................227 12.2.10 rsi_bt_set_afh_host_channel_classification ..................................................................................................227 12.2.11 rsi_bt_get_afh_host_channel_classification..................................................................................................228 12.2.12 rsi_bt_remote_name_request_async ...........................................................................................................228 12.2.13 rsi_bt_remote_name_request_cancel ..........................................................................................................229 12.2.14 rsi_bt_inquiry ...............................................................................................................................................230 12.2.15 rsi_bt_cancel_inquiry ...................................................................................................................................230 12.2.16 rsi_bt_set_eir_data ......................................................................................................................................231 12.2.17 rsi_bt_connect .............................................................................................................................................231 12.2.18 rsi_bt_cancel_connect .................................................................................................................................232 12.2.19 rsi_bt_disconnect .........................................................................................................................................232 12.2.20 rsi_bt_set_ssp_mode ...................................................................................................................................233 12.2.21 rsi_bt_accept_ssp_confirm ..........................................................................................................................234 12.2.22 rsi_bt_reject_ssp_confirm ............................................................................................................................234 12.2.23 rsi_bt_passkey ............................................................................................................................................234 12.2.24 rsi_bt_pincode_request_reply ......................................................................................................................235 12.2.25 rsi_bt_linkkey_request_reply ........................................................................................................................236 12.2.26 rsi_bt_get_local_device_role ........................................................................................................................236 12.2.27 rsi_bt_set_local_device_role ........................................................................................................................237 12.2.28 rsi_bt_sniff_mode ........................................................................................................................................237 12.2.29 rsi_bt_sniff_exit_mode .................................................................................................................................238 12.2.30 rsi_bt_sniff_subrating_mode ........................................................................................................................238 12.2.31 rsi_bt_add_device_id ...................................................................................................................................239 12.2.32 rsi_bt_enable_authentication .......................................................................................................................239 12.2.33 rsi_bt_disable_authentication .......................................................................................................................240 12.2.34 rsi_bt_get_authentication .............................................................................................................................240 12.2.35 rsi_bt_ptt_req ..............................................................................................................................................241 12.2.36 rsi_bt_write_current_iac_lap ........................................................................................................................241 12.2.37 rsi_bt_get_services_async ...........................................................................................................................242 12.2.38 rsi_bt_search_service_async .......................................................................................................................242

    12.3 SPP API ...................................................................................................................................................... 243 12.3.1 rsi_bt_spp_init .............................................................................................................................................243 12.3.2 rsi_bt_spp_connect......................................................................................................................................243 12.3.3 rsi_bt_spp_disconnect .................................................................................................................................244 12.3.4 rsi_bt_spp_transfer ......................................................................................................................................244

    12.4 SDP API...................................................................................................................................................... 245 12.4.1 rsi_bt_set_sdp_attr_id .................................................................................................................................245 12.4.2 rsi_bt_add_sdp_attribute .............................................................................................................................246 12.4.3 rsi_bt_add_sdp_hid_language_attribute .......................................................................................................247 12.4.4 rsi_bt_add_sdp_hid_descriptor_list ..............................................................................................................248 12.4.5 rsi_bt_add_sdp_service_attribute.................................................................................................................249 12.4.6 rsi_bt_add_sdp_service_classid ..................................................................................................................250 12.4.7 rsi_bt_add_sdp_service_handle ...................................................................................................................251 12.4.8 rsi_bt_add_sdp_protocol_list .......................................................................................................................252 12.4.9 rsi_bt_add_sdp_language_base_attributeid_list ...........................................................................................253 12.4.10 rsi_bt_add_sdp_profile_descriptor_list .........................................................................................................254 12.4.11 rsi_bt_add_sdp_service_record_handle .......................................................................................................255

    12.5 HID API ....................................................................................................................................................... 256 12.5.1 rsi_bt_hid_service_initialize .........................................................................................................................256 12.5.2 rsi_bt_hid_init ..............................................................................................................................................257 12.5.3 rsi_bt_hid_connect ......................................................................................................................................257 12.5.4 rsi_bt_hid_disconnect ..................................................................................................................................258 12.5.5 rsi_bt_hid_register_callbacks .......................................................................................................................258 12.5.6 rsi_bt_hid_send_interrupt_data ....................................................................................................................259 12.5.7 rsi_bt_hid_profile_data.................................................................................................................................260 12.5.8 rsi_bt_hid_send_handshake ........................................................................................................................260

  • RS9116W SAPI Programming Reference Manual Version 2.1

    silabs.com | Building a more connected world. 6 | Page

    12.5.9 rsi_bt_hid_send_control ...............................................................................................................................261 12.5.10 rsi_bt_hid_get_report ...................................................................................................................................261 12.5.11 rsi_bt_hid_set_report ...................................................................................................................................262 12.5.12 rsi_bt_hid_get_protocol................................................................................................................................262 12.5.13 rsi_bt_hid_set_protocol ................................................................................................................................263 12.5.14 rsi_bt_hid_set_protocol ................................................................................................................................263

    12.6 GAP Register Callbacks ............................................................................................................................. 264 12.6.1 rsi_bt_gap_register_callbacks ......................................................................................................................264 12.6.2 rsi_bt_on_role_change_t .............................................................................................................................265 12.6.3 rsi_bt_on_connect_t ....................................................................................................................................265 12.6.4 rsi_bt_on_unbond_t .....................................................................................................................................266 12.6.5 rsi_bt_on_disconnect_t ................................................................................................................................267 12.6.6 rsi_bt_on_scan_resp_t.................................................................................................................................267 12.6.7 rsi_bt_on_remote_name_resp_t ..................................................................................................................268 12.6.8 rsi_bt_on_passkey_display_t .......................................................................................................................269 12.6.9 rsi_bt_on_remote_name_request_cancel_t ..................................................................................................269 12.6.10 rsi_bt_on_confirm_request_t ........................................................................................................................270 12.6.11 rsi_bt_on_pincode_request_t .......................................................................................................................270 12.6.12 rsi_bt_on_passkey_request_t ......................................................................................................................271 12.6.13 rsi_bt_on_inquiry_complete_t ......................................................................................................................272 12.6.14 rsi_bt_on_auth_complete_t ..........................................................................................................................272 12.6.15 rsi_bt_on_linkkey_request_t ........................................................................................................................273 12.6.16 rsi_bt_on_ssp_complete_t ...........................................................................................................................273 12.6.17 rsi_bt_on_linkkey_save_t .............................................................................................................................274 12.6.18 rsi_bt_on_get_services_t .............................................................................................................................274 12.6.19 rsi_bt_on_search_service_t .........................................................................................................................275 12.6.20 rsi_bt_on_mode_change_t...........................................................................................................................275 12.6.21 rsi_bt_on_sniff_subrating_t ..........................................................................................................................276

    12.7 SPP event callbacks ................................................................................................................................... 277 12.7.1 rsi_bt_spp_register_callbacks ......................................................................................................................277 12.7.2 rsi_bt_on_spp_connect_t .............................................................................................................................277 12.7.3 rsi_bt_on_spp_disconnect_t ........................................................................................................................278 12.7.4 rsi_bt_on_spp_rx_data_t .............................................................................................................................279 12.7.5 rsi_bt_change_pkt_type ...............................................................................................................................279

    12.8 HCI packet change callbacks...................................................................................................................... 280 12.8.1 rsi_bt_pkt_change_events_register_callbacks .............................................................................................280 12.8.2 rsi_bt_pkt_change_stats_t ...........................................................................................................................280

    12.9 Configuration Parameters ........................................................................................................................... 281

    13 Bluetooth Low Energy APIs .............................................................................................................................. 283 13.1 Test Mode (RF Regulatory Mode) API ........................................................................................................ 283

    13.1.1 rsi_ble_rx_test_mode ..................................................................................................................................283 13.1.2 rsi_ble_tx_test_mode ...................................................................................................................................283 13.1.3 rsi_ble_end_test_mode................................................................................................................................284 13.1.4 rsi_ble_per_transmit ....................................................................................................................................285 13.1.5 rsi_ble_per_receive .....................................................................................................................................287

    13.2 GAP API ..................................................................................................................................................... 290 13.2.1 rsi_ble_set_random_address .......................................................................................................................290 13.2.2 rsi_ble_set_random_address_with_value .....................................................................................................290 13.2.3 rsi_ble_update_directed_address ................................................................................................................291 13.2.4 rsi_ble_start_advertising ..............................................................................................................................291 13.2.5 rsi_ble_start_advertising_with_values ..........................................................................................................292 13.2.6 rsi_ble_encrypt ............................................................................................................................................293 13.2.7 rsi_ble_stop_advertising ..............................................................................................................................294 13.2.8 rsi_ble_start_scanning .................................................................................................................................295 13.2.9 rsi_ble_start_scanning_with_values .............................................................................................................295 13.2.10 rsi_ble_stop_scanning .................................................................................................................................296 13.2.11 rsi_ble_connect ...........................................................................................................................................297 13.2.12 rsi_ble_connect_with_params ......................................................................................................................297 13.2.13 rsi_ble_connect_cancel ...............................................................................................................................299 13.2.14 rsi_ble_disconnect .......................................................................................................................................299 13.2.15 rsi_ble_get_device_state .............................................................................................................................300 13.2.16 rsi_ble_set_smp_pairing_cap_data ..............................................................................................................300 13.2.17 rsi_ble_set_local_irk_value ..........................................................................................................................301 13.2.18 rsi_ble_set_advertise_data ..........................................................................................................................302 13.2.19 rsi_ble_smp_pair_request ............................................................................................................................303 13.2.20 rsi_ble_smp_pair_response .........................................................................................................................304 13.2.21 rsi_ble_smp_passkey ..................................................................................................................................305 13.2.22 rsi_ble_get_le_ping_timeout ........................................................................................................................305 13.2.23 rsi_ble_set_le_ping_timeout ........................................................................................................................306 13.2.24 rsi_ble_set_scan_response_data .................................................................................................................306 13.2.25 rsi_ble_clear_whitelist ..................................................................................................................................307

  • RS9116W SAPI Programming Reference Manual Version 2.1

    silabs.com | Building a more connected world. 7 | Page

    13.2.26 rsi_ble_addto_whitelist.................................................................................................................................307 13.2.27 rsi_ble_deletefrom_whitelist .........................................................................................................................308 13.2.28 rsi_ble_vendor_rf_type ................................................................................................................................308 13.2.29 rsi_ble_white_list_using_adv_data ...............................................................................................................309 13.2.30 rsi_ble_start_encryption ...............................................................................................................................310

    13.3 Basic Structure defines ............................................................................................................................... 310 13.3.1 uuid_t structure ............................................................................................................................................310 13.3.2 inc_service_data_t .......................................................................................................................................311 13.3.3 inc_service_t ...............................................................................................................................................311 13.3.4 char_serv_data_t .........................................................................................................................................311 13.3.5 char_serv_t .................................................................................................................................................312 13.3.6 att_desc_t....................................................................................................................................................312 13.3.7 rsi_ble_resp_profiles_list_t...........................................................................................................................313 13.3.8 rsi_ble_resp_char_services_t.......................................................................................................................313 13.3.9 rsi_ble_resp_inc_services_t .........................................................................................................................313 13.3.10 rsi_ble_resp_att_value_t ..............................................................................................................................314 13.3.11 rsi_ble_resp_att_descs_t .............................................................................................................................314 13.3.12 rsi_ble_req_add_att_t ..................................................................................................................................314 13.3.13 rsi_ble_resp_local_att_value_t .....................................................................................................................315 13.3.14 rsi_bt_event_le_ltk_request_s......................................................................................................................315 13.3.15 rsi_ble_set_le_ltkreqreply ............................................................................................................................316

    13.4 Credit based flow APIs ............................................................................................................................... 316 13.4.1 rsi_ble_cbfc_connreq ...................................................................................................................................316 13.4.2 rsi_ble_cbfc_connresp .................................................................................................................................317 13.4.3 rsi_ble_cbfc_data_tx ....................................................................................................................................317 13.4.4 rsi_ble_cbfc_disconnect ...............................................................................................................................317

    13.5 GATT Client APIs ....................................................................................................................................... 318 13.5.1 rsi_ble_get_profiles......................................................................................................................................318 13.5.2 rsi_ble_get_profile .......................................................................................................................................319 13.5.3 rsi_ble_get_char_services ...........................................................................................................................319 13.5.4 rsi_ble_get_inc_services ..............................................................................................................................320 13.5.5 rsi_ble_get_char_value_by_uuid ..................................................................................................................321 13.5.6 rsi_ble_get_att_descriptors ..........................................................................................................................321 13.5.7 rsi_ble_get_att_value ...................................................................................................................................322 13.5.8 rsi_ble_get_multiple_att_values ...................................................................................................................323 13.5.9 rsi_ble_get_long_att_value ..........................................................................................................................323 13.5.10 rsi_ble_set_att_value ...................................................................................................................................324 13.5.11 rsi_ble_set_att_cmd.....................................................................................................................................325 13.5.12 rsi_ble_set_long_att_value ..........................................................................................................................325 13.5.13 rsi_ble_prepare_write ..................................................................................................................................326 13.5.14 rsi_ble_execute_write ..................................................................................................................................327 13.5.15 rsi_ble_notify_value .....................................................................................................................................327 13.5.16 rsi_ble_indicate_value .................................................................................................................................328 13.5.17 rsi_ble_remove_gatt_service .......................................................................................................................328 13.5.18 rsi_ble_remove_gatt_attibute .......................................................................................................................329 13.5.19 rsi_ble_att_error_response ..........................................................................................................................329 13.5.20 rsi_ble_mtu_exchange_event ......................................................................................................................330 13.5.21 rsi_ble_gatt_write_response ........................................................................................................................330 13.5.22 rsi_ble_gatt_prepare_write_response ..........................................................................................................331

    13.6 GATT Client APIs Asynchronous ................................................................................................................ 332 13.6.1 rsi_ble_get_profiles_async...........................................................................................................................332 13.6.2 rsi_ble_get_profile_async ............................................................................................................................332 13.6.3 rsi_ble_get_char_services_async ................................................................................................................333 13.6.4 rsi_ble_get_inc_services_async ...................................................................................................................333 13.6.5 rsi_ble_get_char_value_by_uuid_async .......................................................................................................334 13.6.6 rsi_ble_get_att_descriptors_async ...............................................................................................................335 13.6.7 rsi_ble_get_att_value_async ........................................................................................................................335 13.6.8 rsi_ble_get_multiple_att_values_async ........................................................................................................336 13.6.9 rsi_ble_get_long_att_value_async ...............................................................................................................336 13.6.10 rsi_ble_set_att_value_async ........................................................................................................................337 13.6.11 rsi_ble_prepare_write_async .......................................................................................................................338 13.6.12 rsi_ble_execute_write_async .......................................................................................................................338

    13.7 GATT Server APIs ...................................................................................................................................... 339 13.7.1 rsi_ble_add_service .....................................................................................................................................339 13.7.2 rsi_ble_add_attribute ...................................................................................................................................341 13.7.3 rsi_ble_set_local_att_value ..........................................................................................................................341 13.7.4 rsi_ble_get_local_att_value ..........................................................................................................................342 13.7.5 rsi_ble_set_wo_resp_notify_buf_info ...........................................................................................................343 13.7.6 rsi_ble_gatt_read_response .........................................................................................................................343 13.7.7 rsi_ble_setphy .............................................................................................................................................344 13.7.8 rsi_ble_conn_params_update ......................................................................................................................345 13.7.9 rsi_ble_conn_param_resp............................................................................................................................345

  • RS9116W SAPI Programming Reference Manual Version 2.1

    silabs.com | Building a more connected world. 8 | Page

    13.7.10 rsi_ble_set_data_len ....................................................................................................................................346 13.7.11 rsi_ble_read_max_data_len .........................................................................................................................346 13.7.12 rsi_ble_readphy ...........................................................................................................................................347 13.7.13 rsi_ble_resolvlist ..........................................................................................................................................348 13.7.14 rsi_ble_get_resolving_list_size .....................................................................................................................348 13.7.15 BT_LE_ADPacketExtract .............................................................................................................................349 13.7.16 rsi_ble_set_addr_resolution_enable .............................................................................................................349 13.7.17 rsi_ble_set_privacy_mode ...........................................................................................................................350 13.7.18 rsi_ble_ltk_req_reply ....................................................................................................................................351

    13.8 Callback functions ....................................................................................................................................... 351 13.8.1 rsi_ble_gap_register_callbacks ....................................................................................................................351 13.8.2 rsi_ble_event_adv_report_t ..........................................................................................................................352 13.8.3 rsi_ble_event_conn_status_t .......................................................................................................................353 13.8.4 rsi_ble_event_disconnect_t ..........................................................................................................................353 13.8.5 rsi_ble_on_le_ping_payload_timeout_t ........................................................................................................353 13.8.6 rsi_ble_on_phy_update_complete_t .............................................................................................................354 13.8.7 rsi_ble_on_data_length_update_t ................................................................................................................354 13.8.8 rsi_ble_on_enhance_connect_t ...................................................................................................................355 13.8.9 rsi_ble_on_directed_adv_report_event_t......................................................................................................355 13.8.10 rsi_ble_on_conn_update_complete_t ...........................................................................................................356 13.8.11 rsi_ble_gap_extended_register_callbacks ....................................................................................................357 13.8.12 ble_on_remote_features_event ....................................................................................................................357 13.8.13 rsi_ble_gatt_register_callbacks ....................................................................................................................358 13.8.14 rsi_ble_on_profiles_list_resp_t .....................................................................................................................359 13.8.15 rsi_ble_on_profile_resp_t .............................................................................................................................360 13.8.16 rsi_ble_on_char_services_resp_t .................................................................................................................360 13.8.17 rsi_ble_on_inc_services_resp_t ...................................................................................................................360 13.8.18 rsi_ble_on_att_desc_resp_t .........................................................................................................................361 13.8.19 rsi_ble_on_read_resp_t ...............................................................................................................................361 13.8.20 ble_on_write_resp .......................................................................................................................................362 13.8.21 GATT Write event ........................................................................................................................................362 13.8.22 GATT Prepare Write event...........................................................................................................................363 13.8.23 GATT Execute Write event ..........................................................................................................................363 13.8.24 GATT Read request event ...........................................................................................................................364 13.8.25 MTU event ...................................................................................................................................................364

    13.9 l2cap cbsc register callbacks ...................................................................................................................... 369 13.9.1 rsi_ble_l2cap_cbsc_register_callbacks ........................................................................................................369 13.9.2 rsi_ble_on_cbfc_conn_req_event_t ..............................................................................................................369 13.9.3 rsi_ble_on_cbfc_conn_complete_event_t .....................................................................................................370 13.9.4 rsi_ble_on_cbfc_rx_data_event_t.................................................................................................................370 13.9.5 rsi_ble_on_cbfc_disconn_event_t ................................................................................................................370 13.9.6 rsi_ble_smp_register_callbacks ...................................................................................................................371 13.9.7 rsi_ble_on_smp_request_t ...........................................................................................................................371 13.9.8 rsi_ble_on_smp_response_t ........................................................................................................................372 13.9.9 rsi_ble_on_smp_passkey_t ..........................................................................................................................372 13.9.10 rsi_ble_on_smp_failed_t ..............................................................................................................................372 13.9.11 rsi_ble_on_encrypt_started_t .......................................................................................................................373 13.9.12 rsi_ble_on_smp_passkey_display_t .............................................................................................................373 13.9.13 rsi_ble_on_sc_passkey_t .............................................................................................................................374 13.9.14 rsi_ble_on_le_ltk_req_event_t .....................................................................................................................374 13.9.15 rsi_ble_on_le_security_keys_t .....................................................................................................................374 13.9.16 rsi_ble_on_phy_update_complete_t .............................................................................................................375 13.9.17 rsi_ble_on_data_length_update_t ................................................................................................................375 13.9.18 rsi_ble_on_directed_adv_report_event_t......................................................................................................376 13.9.19 rsi_ble_on_enhance_connect_t: ..................................................................................................................377 13.9.20 rsi_ble_event_cbfc_conn_req_t ...................................................................................................................377 13.9.21 rsi_ble_event_cbfc_conn_complete_t ..........................................................................................................378 13.9.22 rsi_ble_event_cbfc_rx_data_t ......................................................................................................................378 13.9.23 rsi_ble_event_cbfc_disconn_t ......................................................................................................................379 13.9.24 rsi_bt_event_le_ltk_request .........................................................................................................................379

    13.10 Configuration parameters ........................................................................................................................... 380 13.10.1 Configure advertise parameters ...................................................................................................................380 13.10.2 Configure scan parameters ..........................................................................................................................380 13.10.3 Configure connection parameters ................................................................................................................380 13.10.4 Configuration for White list based on Advertising payload data .....................................................................381

    14 Crypto APIs ......................................................................................................................................................... 383 14.1 rsi_aes 383 14.2 rsi_exponentiation ....................................................................................................................................... 383 14.3 rsi_ecdh_point_multiplication ...................................................................................................................... 384 14.4 rsi_ecdh_point_addition .............................................................................................................................. 385 14.5 rsi_ecdh_point_subtraction ......................................................................................................................... 385

  • RS9116W SAPI Programming Reference Manual Version 2.1

    silabs.com | Building a more connected world. 9 | Page

    14.6 rsi_ecdh_point_double ................................................................................................................................ 386 14.7 rsi_ecdh_point_affine .................................................................................................................................. 387 14.8 rsi_hmac_sha ............................................................................................................................................. 387 14.9 rsi_sha 388

    15 Driver APIs .......................................................................................................................................................... 390 15.1 Device Init ................................................................................................................................................... 390

    15.1.1 rsi_bl_module_power_cycle .........................................................................................................................390 15.2 Driver 390

    15.2.1 rsi_interrupt_handler ....................................................................................................................................390 15.2.2 rsi_mask_ta_interrupt ..................................................................................................................................390 15.2.3 rsi_unmask_ta_interrupt ..............................................................................................................................391

    15.3 Events 391 15.3.1 rsi_set_event ...............................................................................................................................................391 15.3.2 rsi_clear_event ............................................................................................................................................392 15.3.3 rsi_mask_event ...........................................................................................................................................392 15.3.4 rsi_unmask_event .......................................................................................................................................392 15.3.5 rsi_unmask_event_from_isr .........................................................................................................................393 15.3.6 rsi_find_event ..............................................................................................................................................393 15.3.7 rsi_register_event ........................................................................................................................................393 15.3.8 rsi_set_event_from_isr.................................................................................................................................394 15.3.9 rsi_events_init .............................................................................................................................................394

    15.4 Nwk 395 15.4.1 rsi_wlan_get_nwk_status .............................................................................................................................395

    15.5 Set Region AP ............................................................................................................................................ 395 15.5.1 extract_setregionap_country_info ................................................................................................................395

    15.6 Timer 396 15.6.1 rsi_timer_expiry_interrupt_handler ...............................................................................................................396 15.6.2 rsi_timer_read_counter ................................................................................................................................396 15.6.3 rsi_init_timer ................................................................................................................................................396 15.6.4 rsi_timer_expired .........................................................................................................................................397 15.6.5 rsi_timer_left ................................................................................................................................................397

    15.7 Utils 398 15.7.1 rsi_uint16_to_2bytes ....................................................................................................................................398 15.7.2 rsi_uint32_to_4bytes ....................................................................................................................................398 15.7.3 rsi_bytes2R_to_uint16 .................................................................................................................................399 15.7.4 rsi_bytes4R_to_uint32 .................................................................................................................................399 15.7.5 rsi_ascii_hex2num .......................................................................................................................................399 15.7.6 rsi_char_hex2dec ........................................................................................................................................400 15.7.7 rsi_ascii_dev_address_to_6bytes_rev ..........................................................................................................400 15.7.8 rsi_6byte_dev_address_to_ascii ..................................................................................................................401 15.7.9 lmac_crc8_c ................................................................................................................................................401 15.7.10 multicast_mac_hash ....................................................................................................................................401 15.7.11 convert_lower_case_to_upper_case ............................................................................................................402 15.7.12 string2array .................................................................................................................................................402 15.7.13 rsi_itoa ........................................................................................................................................................403 15.7.14 rsi_atoi ........................................................................................................................................................403 15.7.15 asciihex_2_num...........................................................................................................................................403 15.7.16 rsi_charhex_2_dec ......................................................................................................................................404 15.7.17 rsi_ascii_mac_address_to_6bytes ...............................................................................................................404 15.7.18 rsi_ascii_dot_address_to_4bytes .................................................................................................................405 15.7.19 ip_to_reverse_hex .......................................................................................................................................405

    15.8 Wlan 406 15.8.1 rsi_wlan_cb_init ...........................................................................................................................................406 15.8.2 rsi_driver_wlan_send_cmd ..........................................................................................................................407 15.8.3 rsi_extract_filename.....................................................................................................................................409 15.8.4 rsi_driver_process_wlan_recv_cmd .............................................................................................................409 15.8.5 rsi_wlan_check_waiting_socket_cmd ...........................................................................................................410 15.8.6 rsi_wlan_check_waiting_wlan_cmd ..............................................................................................................411 15.8.7 rsi_wlan_check_wlan_state .........................................................................................................................411 15.8.8 rsi_wlan_set_status .....................................................................................................................................412 15.8.9 rsi_post_waiting_semaphore .......................................................................................................................412 15.8.10 rsi_wlan_process_raw_data .........................................................................................................................413 15.8.11 rsi_wlan_packet_transfer_done ...................................................................................................................413 15.8.12 rsi_check_wlan_buffer_full ...........................................................................................................................414 15.8.13 rsi_check_common_buffer_full .....................................................................................................................415 15.8.14 rsi_wait_on_wlan_semaphore ......................................................................................................................415 15.8.15 rsi_update_wlan_cmd_state_to_free_state ..................................................................................................416 15.8.16 sort_index_based_on_rssi ...........................................................................................................................416 15.8.17 process_scan_results ..................................................................................................................................417

    15.9 SPI 418


Recommended