请选择 进入手机版 | 继续访问电脑版

环信

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: mmap uikit gcc
查看: 976|回复: 0

S110 SoftDevice 中断处理

[复制链接]

42

主题

68

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2015-10-3 16:02:11 | 显示全部楼层 |阅读模式

  1. static void on_ble_evt(ble_evt_t * p_ble_evt)
  2. {
  3.     uint32_t                         err_code;
  4.     static ble_gap_evt_auth_status_t m_auth_status;
  5.     ble_gap_enc_info_t *             p_enc_info;
  6.    
  7.     switch (p_ble_evt->header.evt_id)
  8.     {
  9.         case BLE_GAP_EVT_CONNECTED:
  10.             nrf_gpio_pin_set(CONNECTED_LED_PIN_NO);
  11.             nrf_gpio_pin_clear(ADVERTISING_LED_PIN_NO);
  12.             m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;

  13.             break;
  14.             
  15.         case BLE_GAP_EVT_DISCONNECTED:
  16.             nrf_gpio_pin_clear(CONNECTED_LED_PIN_NO);
  17.             m_conn_handle = BLE_CONN_HANDLE_INVALID;

  18.             advertising_start();

  19.             break;
  20.             
  21.         case BLE_GAP_EVT_SEC_PARAMS_REQUEST:
  22.             err_code = sd_ble_gap_sec_params_reply(m_conn_handle,
  23.                                                    BLE_GAP_SEC_STATUS_SUCCESS,
  24.                                                    &m_sec_params);
  25.             APP_ERROR_CHECK(err_code);
  26.             break;
  27.             
  28.         case BLE_GATTS_EVT_SYS_ATTR_MISSING:
  29.             err_code = sd_ble_gatts_sys_attr_set(m_conn_handle, NULL, 0);
  30.             APP_ERROR_CHECK(err_code);
  31.             break;

  32.         case BLE_GAP_EVT_AUTH_STATUS:
  33.             m_auth_status = p_ble_evt->evt.gap_evt.params.auth_status;
  34.             break;
  35.             
  36.         case BLE_GAP_EVT_SEC_INFO_REQUEST:
  37.             p_enc_info = &m_auth_status.periph_keys.enc_info;
  38.             if (p_enc_info->div == p_ble_evt->evt.gap_evt.params.sec_info_request.div)
  39.             {
  40.                 err_code = sd_ble_gap_sec_info_reply(m_conn_handle, p_enc_info, NULL);
  41.                 APP_ERROR_CHECK(err_code);
  42.             }
  43.             else
  44.             {
  45.                 // No keys found for this device
  46.                 err_code = sd_ble_gap_sec_info_reply(m_conn_handle, NULL, NULL);
  47.                 APP_ERROR_CHECK(err_code);
  48.             }
  49.             break;

  50.         case BLE_GAP_EVT_TIMEOUT:
  51.             if (p_ble_evt->evt.gap_evt.params.timeout.src == BLE_GAP_TIMEOUT_SRC_ADVERTISEMENT)
  52.             {
  53.                 nrf_gpio_pin_clear(ADVERTISING_LED_PIN_NO);

  54.                 // Configure buttons with sense level low as wakeup source.
  55.                 nrf_gpio_cfg_sense_input(WAKEUP_BUTTON_PIN,
  56.                                          BUTTON_PULL,
  57.                                          NRF_GPIO_PIN_SENSE_LOW);
  58.                
  59.                 // Go to system-off mode (this function will not return; wakeup will cause a reset)
  60.                 err_code = sd_power_system_off();   
  61.                 APP_ERROR_CHECK(err_code);
  62.             }
  63.             break;

  64.         default:
  65.             // No implementation needed.
  66.             break;
  67.     }
  68. }
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|环信 Glofty.com ( 粤ICP备15084637号 )

GMT+8, 2017-1-23 16:27 , Processed in 0.213453 second(s), 22 queries .

快速回复 返回顶部 返回列表