}
const btgatt_client_interface_t btgatt_client_interface = {
- btif_gattc_register_client,
- btif_gattc_unregister_client,
- scan,
- btif_gattc_client_connect,
- btif_gattc_client_disconnect,
- refresh,
- btif_gattc_client_search_service,
- get_included_service,
- btif_gattc_get_characteristic,
- btif_gattc_get_descriptor,
- btif_read_characteristic,
- btif_write_characteristic,
- btif_get_acquire_write_fd,
- btif_get_acquire_notify_fd,
- btif_read_descriptor,
- btif_write_descriptor,
- execute_write,
- btif_register_for_notification,
- btif_deregister_for_notification,
- read_remote_rssi,
- ota_fw_update,
- get_device_type,
- btif_gattc_conn_parameter_update,
- test_command,
- configure_mtu,
- scan_filter_param_setup,
- scan_filter_add_remove,
- scan_filter_clear,
- scan_filter_enable,
- set_scan_parameters,
- batchscan_cfg_storage,
- batchscan_enb_batch_scan,
- batchscan_dis_batch_scan,
- batchscan_read_reports
+ .register_client = btif_gattc_register_client,
+ .unregister_client = btif_gattc_unregister_client,
+ .scan = scan,
+ .connect = btif_gattc_client_connect,
+ .disconnect = btif_gattc_client_disconnect,
+ .refresh = refresh,
+ .search_service = btif_gattc_client_search_service,
+ .get_included_service = get_included_service,
+ .get_characteristic = btif_gattc_get_characteristic,
+ .get_descriptor = btif_gattc_get_descriptor,
+ .read_characteristic = btif_read_characteristic,
+ .write_characteristic = btif_write_characteristic,
+ .acquire_write = btif_get_acquire_write_fd,
+ .acquire_notify = btif_get_acquire_notify_fd,
+ .read_descriptor = btif_read_descriptor,
+ .write_descriptor = btif_write_descriptor,
+ .execute_write = execute_write,
+ .register_for_notification = btif_register_for_notification,
+ .deregister_for_notification = btif_deregister_for_notification,
+ .read_remote_rssi = read_remote_rssi,
+ .ota_fw_update = ota_fw_update,
+ .get_device_type = get_device_type,
+ .conn_parameter_update = btif_gattc_conn_parameter_update,
+ .test_command = test_command,
+ .configure_mtu = configure_mtu,
+ .scan_filter_param_setup = scan_filter_param_setup,
+ .scan_filter_add_remove = scan_filter_add_remove,
+ .scan_filter_clear = scan_filter_clear,
+ .scan_filter_enable = scan_filter_enable,
+ .set_scan_parameters = set_scan_parameters,
+ .batchscan_cfg_storage = batchscan_cfg_storage,
+ .batchscan_enb_batch_scan = batchscan_enb_batch_scan,
+ .batchscan_dis_batch_scan = batchscan_dis_batch_scan,
+ .batchscan_read_reports = batchscan_read_reports
};
static hal_gattc_server_info_t *__bt_find_gatt_conn_info(bt_bdaddr_t *serv_addr)
_bt_hal_convert_addr_string_to_type(bd_addr.address, device_address);
conn_info = __bt_find_gatt_conn_info(&bd_addr);
- //find service for notified char path
- for (l = conn_info->gatt_list_services; l != NULL; l = g_slist_next(l)) {
- svc_info = (hal_gattc_service_t*)l->data;
- if (svc_info == NULL)
- continue;
-
- /* find characteristic object path */
- for (k = svc_info->gatt_list_chars; k != NULL; k = g_slist_next(k)) {
- char_info = (hal_gattc_char_t *)k->data;
- if (char_info == NULL)
+ if (conn_info != NULL) {
+ //find service for notified char path
+ for (l = conn_info->gatt_list_services; l != NULL; l = g_slist_next(l)) {
+ svc_info = (hal_gattc_service_t*)l->data;
+ if (svc_info == NULL)
continue;
- if (g_strcmp0(char_info->chr_path, char_handle) == 0) {
- DBG("Found char handle[%s]", char_info->chr_path);
+ /* find characteristic object path */
+ for (k = svc_info->gatt_list_chars; k != NULL; k = g_slist_next(k)) {
+ char_info = (hal_gattc_char_t *)k->data;
+ if (char_info == NULL)
+ continue;
+
+ if (g_strcmp0(char_info->chr_path, char_handle) == 0) {
+ DBG("Found char handle[%s]", char_info->chr_path);
- //send event
- _bt_hal_send_value_changed_event(conn_info, svc_info,
- char_info, char_value, len);
- return;
+ //send event
+ _bt_hal_send_value_changed_event(conn_info, svc_info,
+ char_info, char_value, len);
+ return;
+ }
}
}
}