1 #ifndef __BLUETOOTH_BLE_H__ 2 #define __BLUETOOTH_BLE_H__ 3 4 #include <RkBtBase.h> 5 6 #ifdef __cplusplus 7 extern "C" { 8 #endif 9 10 typedef enum { 11 RK_BLE_STATE_IDLE = 0, 12 RK_BLE_STATE_CONNECT, 13 RK_BLE_STATE_DISCONNECT 14 } RK_BLE_STATE; 15 16 typedef struct { 17 char uuid[38]; 18 char data[BT_ATT_MAX_VALUE_LEN]; 19 int len; 20 } RkBleConfig; 21 22 typedef void (*RK_BLE_STATE_CALLBACK)(const char *bd_addr, const char *name, RK_BLE_STATE state); 23 typedef void (*RK_BLE_RECV_CALLBACK)(const char *uuid, char *data, int len); 24 typedef void (*RK_BLE_REQUEST_DATA)(const char *uuid); 25 26 int rk_ble_register_status_callback(RK_BLE_STATE_CALLBACK cb); 27 int rk_ble_register_recv_callback(RK_BLE_RECV_CALLBACK cb); 28 void rk_ble_register_mtu_callback(RK_BT_MTU_CALLBACK cb); 29 void rk_ble_register_request_data_callback(RK_BLE_REQUEST_DATA cb); 30 int rk_ble_start(RkBleContent *ble_content); 31 int rk_ble_stop(void); 32 int rk_ble_get_state(RK_BLE_STATE *p_state); 33 int rk_ble_write(const char *uuid, char *data, int len); 34 int rk_ble_disconnect(void); 35 int rk_bt_ble_set_visibility(const int visiable, const int connect); 36 void rk_ble_set_local_privacy(bool local_privacy); 37 int rk_ble_set_address(char *address); 38 39 /*smallest value: 32(32 * 0.625ms = 20ms)*/ 40 int rk_ble_set_adv_interval(unsigned short adv_int_min, unsigned short adv_int_max); 41 42 #ifdef __cplusplus 43 } 44 #endif 45 46 #endif /* __BLUETOOTH_BLE_H__ */ 47