wm_bt_api.h 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. #ifndef __WM_BT_API_H__
  2. #define __WM_BT_API_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #if (WM_NIMBLE_INCLUDED == CFG_ON)
  7. #include "wm_bt.h"
  8. #include "wm_ble.h"
  9. extern tls_bt_status_t enable_bt_test_mode(tls_bt_hci_if_t *p_hci_if);
  10. extern tls_bt_status_t exit_bt_test_mode();
  11. extern int tls_at_bt_enable(int uart_no, tls_bt_log_level_t log_level);
  12. extern int tls_at_bt_destroy(void);
  13. extern void tls_rf_bt_mode(uint8_t mode);
  14. extern int tls_ble_client_demo_api_init(tls_ble_uart_output_ptr output_func_ptr,tls_ble_uart_sent_ptr uart_in_and_sent_ptr);
  15. extern int tls_ble_server_demo_api_init(tls_ble_uart_output_ptr output_func_ptr,tls_ble_uart_sent_ptr uart_in_and_sent_ptr);
  16. extern int tls_ble_client_demo_api_deinit();
  17. extern int tls_ble_server_demo_api_deinit();
  18. extern int tls_ble_client_multi_conn_demo_api_init();
  19. extern int tls_ble_client_multi_conn_demo_api_deinit();
  20. extern int tls_ble_uart_init(tls_ble_uart_mode_t mode, uint8_t uart_id, tls_uart_options_t *p_hci_if);
  21. extern int tls_ble_uart_deinit(tls_ble_uart_mode_t mode,uint8_t uart_id);
  22. extern int tls_ble_demo_adv(uint8_t type);
  23. extern int tls_ble_demo_scan(uint8_t start);
  24. extern tls_bt_status_t tls_ble_set_scan_chnl_map(uint8_t map);
  25. extern int tls_ble_client_demo_api_send_msg(uint8_t *ptr, int length);
  26. extern int tls_ble_server_demo_api_send_msg(uint8_t *data, int data_len);
  27. extern int tls_ble_gap_set_name(const char *dev_name, uint8_t update_flash);
  28. extern int tls_ble_gap_get_name(char *dev_name);
  29. extern int tls_ble_gap_set_data(wm_ble_gap_data_t type, uint8_t *data, uint8_t data_len);
  30. extern int tls_ble_gap_set_adv_param(uint8_t adv_type, uint32_t min, uint32_t max, uint8_t chn_map, uint8_t filter_policy, uint8_t *dir_mac, uint8_t dir_mac_type);
  31. extern int tls_ble_gap_set_scan_param(uint32_t intv, uint32_t window, uint8_t filter_policy, bool limited, bool passive, bool filter_duplicate);
  32. extern int tls_nimble_gap_adv(wm_ble_adv_type_t type, int duration);
  33. extern void tls_ble_demo_scan_at_cmd_register(void (*scan_resp_cb_fn)(int type, int8_t rssi, uint8_t *addr, const uint8_t *name, int name_len, const uint8_t *raw_scan_resp, int raw_scan_resp_length));
  34. extern void tls_ble_demo_scan_at_cmd_unregister();
  35. extern int tls_ble_gap_scan(wm_ble_scan_type_t type, bool filter_duplicate);
  36. #if (WM_MESH_INCLUDED == CFG_ON)
  37. extern int tls_ble_mesh_init(tls_bt_mesh_at_callback_t at_cb, tls_bt_mesh_role_t role, bool running);
  38. extern int tls_ble_mesh_deinit(void);
  39. extern int tls_ble_mesh_get_cfg(tls_mesh_primary_cfg_t *cfg);
  40. extern int tls_ble_mesh_get_primary_addr(uint16_t *primary_addr);
  41. extern int tls_ble_mesh_change_ttl(uint8_t ttl);
  42. extern int tls_ble_mesh_change_primary_addr(uint16_t primary_addr);
  43. extern int tls_ble_mesh_clear_local_rpl(void);
  44. extern int tls_ble_mesh_gen_level_set(uint16_t net_idx, uint16_t dst, uint16_t app_idx, int16_t val,
  45. int16_t *state);
  46. extern int tls_ble_mesh_gen_level_get(uint16_t net_idx, uint16_t dst, uint16_t app_idx, int16_t *state);
  47. extern int tls_ble_mesh_gen_off_publish(uint8_t onoff_state);
  48. extern int tls_ble_mesh_gen_onoff_get(uint16_t net_idx, uint16_t dst, uint16_t app_idx, uint8_t *state);
  49. extern int tls_ble_mesh_gen_onoff_set(uint16_t net_idx, uint16_t dst, uint16_t app_idx, uint8_t val,
  50. uint8_t *state);
  51. extern int tls_ble_mesh_pub_set(uint16_t net_idx, uint16_t dst, uint16_t elem_addr, uint16_t mod_id,
  52. uint16_t cid,
  53. tls_bt_mesh_cfg_mod_pub *pub, uint8_t *status);
  54. extern int tls_ble_mesh_pub_get(uint16_t net_idx, uint16_t dst, uint16_t elem_addr, uint16_t mod_id,
  55. uint16_t cid, tls_bt_mesh_cfg_mod_pub *pub, uint8_t *status);
  56. extern int tls_ble_mesh_sub_add(uint16_t net_idx, uint16_t dst, uint16_t elem_addr, uint16_t sub_addr,
  57. uint16_t mod_id, uint16_t cid, uint8_t *status);
  58. extern int tls_ble_mesh_sub_del(uint16_t net_idx, uint16_t dst, uint16_t elem_addr, uint16_t sub_addr,
  59. uint16_t mod_id, uint16_t cid, uint8_t *status);
  60. extern int tls_ble_mesh_sub_add(uint16_t net_idx, uint16_t dst, uint16_t elem_addr, uint16_t sub_addr,
  61. uint16_t mod_id, uint16_t cid, uint8_t *status);
  62. extern int tls_ble_mesh_sub_get(uint16_t net_idx, uint16_t dst, uint16_t elem_addr, uint16_t mod_id,
  63. uint16_t cid,
  64. uint8_t *status, uint16_t *subs, uint32_t *sub_cnt);
  65. extern int tls_ble_mesh_friend_set(uint16_t net_idx, uint16_t dst, uint8_t val, uint8_t *status);
  66. extern int tls_ble_mesh_friend_get(uint16_t net_idx, uint16_t dst, uint8_t *val);
  67. extern int tls_ble_mesh_proxy_get(uint16_t net_idx, uint16_t dst, uint8_t *proxy);
  68. extern int tls_ble_mesh_proxy_set(uint16_t net_idx, uint16_t dst, uint8_t val, uint8_t *proxy);
  69. extern int tls_ble_mesh_relay_get(uint16_t net_idx, uint16_t dst, uint8_t *relay, uint8_t *transmit);
  70. extern int tls_ble_mesh_relay_set(uint16_t net_idx, uint16_t dst, uint8_t relay, uint8_t count,
  71. uint8_t interval, uint8_t *status, uint8_t *transmit);
  72. extern int tls_ble_mesh_unbind_app_key(uint16_t net_idx, uint16_t dst, uint16_t elem_addr,
  73. uint16_t mod_app_idx, uint16_t mod_id, uint16_t cid, uint8_t *status);
  74. extern int tls_ble_mesh_bind_app_key(uint16_t net_idx, uint16_t dst, uint16_t elem_addr,
  75. uint16_t mod_app_idx, uint16_t mod_id, uint16_t cid, uint8_t *status);
  76. extern int tls_ble_mesh_add_app_key(uint16_t net_idx, uint16_t dst, uint16_t key_net_idx,
  77. uint16_t key_app_idx, uint8_t app_key[16], uint8_t *status);
  78. extern int tls_ble_mesh_add_local_app_key(uint16_t net_idx, uint16_t app_idx, uint8_t app_key[16]);
  79. extern int tls_ble_mesh_input_oob_number(uint32_t number);
  80. extern int tls_ble_mesh_input_oob_string(const char *string);
  81. extern int tls_ble_mesh_node_reset(uint16_t net_idx, uint16_t addr, uint8_t *status);
  82. extern int tls_ble_mesh_provisioner_prov_adv(uint8_t uuid[16], uint16_t net_idx, uint16_t addr,
  83. uint8_t duration);
  84. extern int tls_ble_mesh_provisioner_scan(bool enable);
  85. extern int tls_ble_mesh_clear_local_rpl(void);
  86. extern int tls_ble_mesh_change_primary_addr(uint16_t primary_addr);
  87. extern int tls_ble_mesh_get_primary_addr(uint16_t *primary_addr);
  88. extern int tls_ble_mesh_change_ttl(uint8_t ttl);
  89. extern int tls_ble_mesh_get_cfg(tls_mesh_primary_cfg_t *cfg);
  90. extern int tls_ble_mesh_get_comp(uint16_t net_idx, uint16_t dst, uint8_t *status, char *rsp_data,
  91. uint32_t *data_len);
  92. extern int tls_ble_mesh_vnd_send_msg(uint8_t *msg, int len);
  93. extern int tls_ble_mesh_hb_sub_set(uint16_t net_idx, uint16_t dst, tls_bt_mesh_cfg_hb_sub *hb_sub, uint8_t *status);
  94. extern int tls_ble_mesh_hb_sub_get(uint16_t net_idx, uint16_t dst, tls_bt_mesh_cfg_hb_sub *hb_sub, uint8_t *status);
  95. extern int tls_ble_mesh_hb_pub_set(uint16_t net_idx, uint16_t dst, const tls_bt_mesh_cfg_hb_pub *hb_pub, uint8_t *status);
  96. extern int tls_ble_mesh_hb_pub_get(uint16_t net_idx, uint16_t dst, tls_bt_mesh_cfg_hb_pub *hb_pub, uint8_t *status);
  97. /**node demo api for at command*/
  98. extern int tls_ble_mesh_node_deinit(int reason);
  99. extern int tls_ble_mesh_node_init(void);
  100. extern int tls_ble_mesh_erase_cfg(void);
  101. #endif
  102. #else
  103. #if (WM_BT_INCLUDED == CFG_ON || WM_BLE_INCLUDED == CFG_ON)
  104. #include "wm_bt.h"
  105. #include "wm_ble.h"
  106. #include "wm_ble_gatt.h"
  107. extern tls_bt_status_t enable_bt_test_mode(tls_bt_hci_if_t *p_hci_if);
  108. extern tls_bt_status_t exit_bt_test_mode();
  109. extern int tls_at_bt_enable(int uart_no, tls_bt_log_level_t log_level, tls_bt_host_callback_t at_callback_ptr);
  110. extern int tls_at_bt_destroy(void);
  111. extern int tls_at_bt_cleanup_host(void);
  112. extern void tls_rf_bt_mode(uint8_t mode);
  113. #if (WM_BT_INCLUDED == CFG_ON)
  114. extern int demo_bt_scan_mode(int type);
  115. extern int demo_bt_inquiry(int type);
  116. extern int demo_bt_app_on();
  117. extern int demo_bt_app_off();
  118. #endif
  119. #if (WM_BTA_AV_SINK_INCLUDED == CFG_ON)
  120. extern tls_bt_status_t tls_bt_enable_a2dp_sink();
  121. extern tls_bt_status_t tls_bt_disable_a2dp_sink();
  122. #endif
  123. #if (WM_BTA_HFP_HSP_INCLUDED == CFG_ON)
  124. extern tls_bt_status_t tls_bt_enable_hfp_client();
  125. extern tls_bt_status_t tls_bt_disable_hfp_client();
  126. extern tls_bt_status_t tls_bt_dial_number(const char* number);
  127. #endif
  128. #if (WM_BTA_SPPS_INCLUDED == CFG_ON)
  129. extern tls_bt_status_t tls_bt_enable_spp_server();
  130. extern tls_bt_status_t tls_bt_disable_spp_server();
  131. #endif
  132. #if (WM_BTA_SPPC_INCLUDED == CFG_ON)
  133. extern tls_bt_status_t tls_bt_enable_spp_client();
  134. extern tls_bt_status_t tls_bt_disable_spp_client();
  135. #endif
  136. #if (WM_BLE_INCLUDED == CFG_ON)
  137. extern int tls_ble_client_demo_api_init(tls_ble_output_func_ptr output_func_ptr);
  138. extern int tls_ble_server_demo_api_init(tls_ble_output_func_ptr output_func_ptr);
  139. extern int tls_ble_client_demo_api_deinit();
  140. extern int tls_ble_server_demo_api_deinit();
  141. extern int tls_ble_client_multi_conn_demo_api_init();
  142. extern int tls_ble_client_multi_conn_demo_api_deinit();
  143. extern int tls_ble_uart_init(tls_ble_uart_mode_t mode, uint8_t uart_id, tls_uart_options_t *p_hci_if);
  144. extern int tls_ble_uart_deinit(tls_ble_uart_mode_t mode,uint8_t uart_id);
  145. extern int tls_ble_demo_adv(uint8_t type);
  146. extern int tls_ble_demo_scan(uint8_t start);
  147. extern tls_bt_status_t tls_ble_set_scan_chnl_map(uint8_t map);
  148. extern int tls_ble_client_demo_api_send_msg(uint8_t *ptr, int length);
  149. extern int tls_ble_server_demo_api_send_msg(uint8_t *data, int data_len);
  150. extern int tls_ble_register_report_evt(tls_ble_dm_evt_t rpt_evt, tls_ble_dm_callback_t rpt_callback);
  151. extern int tls_ble_deregister_report_result(tls_ble_dm_evt_t rpt_evt, tls_ble_dm_callback_t rpt_callback);
  152. extern int tls_ble_demo_prof_init(uint16_t uuid, tls_ble_callback_t at_cb_ptr);
  153. extern int tls_ble_demo_prof_deinit(int server_if);
  154. extern int tls_ble_demo_cli_init(uint16_t uuid, tls_ble_callback_t at_cb_ptr);
  155. extern int tls_ble_demo_cli_deinit(int client_if);
  156. extern tls_bt_uuid_t * app_uuid16_to_uuid128(uint16_t uuid16);
  157. #endif
  158. #endif
  159. #endif
  160. #ifdef __cplusplus
  161. }
  162. #endif
  163. #endif