Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.51 KB | None | 0 0
  1. void on_ble_evt(ble_evt_t * p_ble_evt)
  2. {
  3.     uint32_t err_code;
  4.  
  5.     switch (p_ble_evt->header.evt_id) {
  6.     case BLE_GAP_EVT_CONNECTED:
  7.         NRF_LOG_INFO("Connected\r\n")
  8.         ;
  9.         err_code = bsp_indication_set(BSP_INDICATE_CONNECTED);
  10.         APP_ERROR_CHECK(err_code);
  11.         m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
  12.  
  13.         break; // BLE_GAP_EVT_CONNECTED
  14.  
  15.     case BLE_GAP_EVT_DISCONNECTED:
  16.         NRF_LOG_INFO("Disconnected, reason %d\r\n",
  17.                 p_ble_evt->evt.gap_evt.params.disconnected.reason)
  18.         ;
  19.         m_conn_handle = BLE_CONN_HANDLE_INVALID;
  20.         break; // BLE_GAP_EVT_DISCONNECTED
  21.  
  22.     case BLE_GATTC_EVT_TIMEOUT:
  23.         // Disconnect on GATT Client timeout event.
  24.         NRF_LOG_DEBUG("GATT Client Timeout.\r\n")
  25.         ;
  26.         err_code = sd_ble_gap_disconnect(p_ble_evt->evt.gattc_evt.conn_handle,
  27.         BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
  28.         APP_ERROR_CHECK(err_code);
  29.         break; // BLE_GATTC_EVT_TIMEOUT
  30.  
  31.     case BLE_GATTS_EVT_TIMEOUT:
  32.         // Disconnect on GATT Server timeout event.
  33.         NRF_LOG_DEBUG("GATT Server Timeout.\r\n")
  34.         ;
  35.         err_code = sd_ble_gap_disconnect(p_ble_evt->evt.gatts_evt.conn_handle,
  36.         BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
  37.         APP_ERROR_CHECK(err_code);
  38.         break; // BLE_GATTS_EVT_TIMEOUT
  39.  
  40.     case BLE_EVT_USER_MEM_REQUEST:
  41.         err_code = sd_ble_user_mem_reply(m_conn_handle, NULL);
  42.         APP_ERROR_CHECK(err_code);
  43.         break; // BLE_EVT_USER_MEM_REQUEST
  44.  
  45.     case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST: {
  46.         ble_gatts_evt_rw_authorize_request_t req;
  47.         ble_gatts_rw_authorize_reply_params_t auth_reply;
  48.  
  49.         req = p_ble_evt->evt.gatts_evt.params.authorize_request;
  50.  
  51.         if (req.type != BLE_GATTS_AUTHORIZE_TYPE_INVALID) {
  52.             if ((req.request.write.op == BLE_GATTS_OP_PREP_WRITE_REQ)
  53.                     || (req.request.write.op == BLE_GATTS_OP_EXEC_WRITE_REQ_NOW)
  54.                     || (req.request.write.op
  55.                             == BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL)) {
  56.                 if (req.type == BLE_GATTS_AUTHORIZE_TYPE_WRITE) {
  57.                     auth_reply.type = BLE_GATTS_AUTHORIZE_TYPE_WRITE;
  58.                 } else {
  59.                     auth_reply.type = BLE_GATTS_AUTHORIZE_TYPE_READ;
  60.                 }
  61.                 auth_reply.params.write.gatt_status = APP_FEATURE_NOT_SUPPORTED;
  62.                 err_code = sd_ble_gatts_rw_authorize_reply(
  63.                         p_ble_evt->evt.gatts_evt.conn_handle, &auth_reply);
  64.                 APP_ERROR_CHECK(err_code);
  65.             }
  66.         }
  67.     }
  68.         break; // BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST
  69.  
  70.     case BLE_EVT_TX_COMPLETE: {
  71.         if (p_ble_evt->evt.common_evt.params.tx_complete.count > 1)
  72.             NRF_LOG_INFO("TX %d packets\r\n",
  73.                     p_ble_evt->evt.common_evt.params.tx_complete.count);
  74.         break;
  75.     }
  76.  
  77.     default:
  78.         // No implementation needed.
  79.         break;
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement