3.最初的项目

3.1.应用回调user_app_main_loop_callbacks结构user_callback_config.h如下:

静态常量结构体arch_main_loop_callbacksuser_app_main_loop_callbacksapp_on_inituser_on_init//默认情况下,看门狗定时器在系统唤醒时重新加载并恢复。//用户必须考虑看门狗定时器的处理(保持它运行,//冻结它,重新加载它,恢复它,等等),当app_on_ble_powered()正在//调用,并可能潜在地影响主循环。app_on_ble_powered//默认情况下,看门狗定时器在系统唤醒时重新加载并恢复。//用户必须考虑看门狗定时器的处理(保持它运行,//冻结它,重新加载它,恢复它,等等),当app_on_system_powered()正在//调用,并可能潜在地影响主循环。app_on_system_poweredapp_before_sleepapp_validate_sleepapp_going_to_sleepapp_resume_from_sleep};

我们还需要添加一些蓝牙堆栈回调,来做这个修改user_app_callbacks结构user_callback_config.h如下:

静态常量结构体app_callbacksuser_app_callbacksapp_on_connectionuser_on_connectionapp_on_disconnectuser_on_disconnectapp_on_update_params_rejectedapp_on_update_params_completeapp_on_set_dev_config_completeuser_on_set_dev_config_completeapp_on_adv_nonconn_completeapp_on_adv_undirect_completeapp_on_adv_direct_completeapp_on_db_init_completedefault_app_on_db_init_completeapp_on_scanning_completedapp_on_adv_report_indapp_on_get_dev_namedefault_app_on_get_dev_nameapp_on_get_dev_appearancedefault_app_on_get_dev_appearanceapp_on_get_dev_slv_pref_paramsdefault_app_on_get_dev_slv_pref_paramsapp_on_set_dev_infodefault_app_on_set_dev_infoapp_on_data_length_changeapp_on_update_params_requestdefault_app_update_params_requestapp_on_generate_static_random_addrdefault_app_generate_static_random_addrapp_on_svc_changed_cfg_indapp_on_get_peer_features#如果(BLE_APP_SEC)app_on_pairing_requestdefault_app_on_pairing_requestapp_on_tk_exchdefault_app_on_tk_exchapp_on_irk_exchapp_on_csrk_exchapp_on_ltk_exchdefault_app_on_ltk_exchapp_on_pairing_succeededapp_on_encrypt_indapp_on_encrypt_req_indapp_on_security_req_indapp_on_addr_solved_indapp_on_addr_resolve_failedapp_on_ral_cmp_evtapp_on_ral_size_indapp_on_ral_addr_ind# endif/ / (BLE_APP_SEC)};

然后我们需要为新的回调函数添加函数原型user_empty_peripheral_template.h如下:

无效user_on_init无效);无效user_on_set_dev_config_complete无效);

最后,我们需要添加实际的用户空间回调函数user_empty_peripheral_template.c如下:

无效user_on_init无效arch_printfr \ n \% s”__FUNCTION__);default_app_on_init();无效user_on_set_dev_config_complete无效arch_printfr \ n \% s”__FUNCTION__);default_app_on_set_dev_config_complete();