6个帖子/ 0新
最后一篇
Firefox2005.
离线
最后一次露面:2周1天前
加入:2016-04-13 09:36
创建任务

你好,

我实现了一个自定义配置文件,如ble_app_perihperal所示。
我想在写到一个特征后做一些事情。
因此,我想创建任务并在写入发生时发送消息。

void user_custs1_ctrl_wr_ind_handler(ke_msg_id_t const msgid,
struct musts1_val_write_ind const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
//创建并发送消息到自己的任务

}

我如何实施任务?

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨Firefox,

嗨Firefox,

我不太明白你想做的事情,你的意思是创建一个像App_task这样的额外任务,也意味着像曲线Task_bass,task_diss等的任何其他任务?整个SDK基于任务和在不同的任务中传递消息,您可以通过作为一个示例来开始,以便执行此操作。您可以检查大多数配置文件的_INIT函数,以便在初始化时创建。您还必须在ke_task_type定义中声明您的任务。

谢谢mt_dialog.

梁云浩
离线
最后一次露面:3年2个月前
加入:2016-03-05 13:38
嗨,对话

嗨,对话
我想实现一项任务,他们定期运作(可能是1秒或更长)以测量ADC值并将其添加到广告数据中。如何创建新任务并更改广告数据?整个系统开始的地方?谢谢。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨梁云浩,

嗨梁云浩,

您可以使用将触发某些ADC测量的内核定时器,因此该流程应该如下所述:

  • 该设备刚刚启动,因此您可以通过使用ADC进行测量来开始(您可以在您完成创建数据库之后,或者如果没有数据库,或者您可以立即开始进行测量,则相应的回调是.app_on_db_init_complete和。app_on_set_dev_config_complete)。
  • 获得测量后,您可以在广告字符串中放置测量,启动内核计时器并启动广告过程。
  • 一旦内核定时器过去,内核定时器将依靠ADC测量的间隔,从而发出停止广告命令(在计时器的回调函数中)以停止广告(app_easy_gap_advertise_stop()函数)。
  • 这将停止广告,并将触发.app_on_adv_undirect_complete回调或.app_on_adv_nonconn_complete,具体取决于您使用的广告的类型。在该回调中,您可以从ADC中拍摄下一个测量,更新您的广告字符串并再次启动广告。
  • 在更新的广告字符串上的一些示例是,BLE_APP_BAREBONE,也可以查看教程1 - 修改广告参数。

谢谢mt_dialog.

梁云浩
离线
最后一次露面:3年2个月前
加入:2016-03-05 13:38
嗨,对话

嗨,对话

什么是数据库?这是否意味着“任务”吗?引导后的广告在哪里开始?(我使用Prox_reporter项目)谢谢。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨梁云浩,

嗨梁云浩,

否,数据库是如何在外围设备中组织的BLE数据,并且与任务无关。一旦创建了设备的数据库(如果有数据库),广告一旦创建了(如果有数据库),例如在Proximity Reporter中,则在创建数据库时,就会开始通告操作,这是在.app_on_db_init_complete回调函数时开始在default_app_on_db_init_complete()函数。

谢谢mt_dialog.