6.1. 内核发出的GAPM_DEVICE_READY_IND消息 从app_default_state[]中可以看到第一个消息即为”GAPM_DEVICE_READY_IND”,其回调函数为:
第69行是判断目的任务的状态是不是APP_DISABLED,显然是的。所以发送消息给TASK_GAPM这个任务,并且消息内容是GAPM_RESET,字面上表示复位GAP管理模块。当TASK_GAPM reset好管理模块后,会向task_app发出GAPM_CMP_EVT消息事件。 6.2. TASK_GAPM复位完成后内核发送的GAPM_CMP_EVT消息
这个回调函数是所有内核完成事件的回调函数,通过参数传进来的具体操作选择进行什么样的操作。内核会执行gapm_cmp_evt_handler,第120行中的函数app_configuration_func(dest_id, cmd)是对目的任务参数的设置,这里的目的任务是TASK_GAPM。该回调函数会向TASK_GAPM发出GAPM_SET_DEV_CONFIG_CMD命令,以完成BLE设备配置。那么完成了那些配置呢?看看app_configuration_func()这个函数: 6.3. 内核完成GAPM_SET_DEV_CONFIG_CMD再次发出GAPM_CMP_EVT消息对应的回调函数还是上面的那个函数,只是操作变为了如下操作
如果没有错误,那么将执行第136行的函数: 上面的函数中,首先将TASK_APP任务的状态设置为APP_DB_INIT状态,也就是数据库初始化状态。而下面的操作就是将所有用到的profile的数据库进行初始化,也就是建立GATT数据库。
================================
欢迎加入 蓝牙BLE4.0协议研究 177341833 大家庭
===============================
|