接入物联网传感器数据在无线上网卡广告模式

11个新帖子/ 0
最后发表
jeremynwong
离线
最后看到:4年3周前
加入:2017-01-16 14:09
接入物联网传感器数据在无线上网卡广告模式

你好,

我与物联网开发工具包所示的对话框。我想检测到软件狗是否已经超过一定时间间隔和旗帜广告数据。这样做的最佳方式是什么?有一个中断,我可以写一个处理程序每次移动无线上网卡?如果是这样,我怎么设置呢?或者有一个函数,我可以叫告诉我设备的移动或不(我可以重置后,每次我读)

我试着调用bmo160_get_any_motion_stat()和bmi160_get_step_counter()函数来检测运动,但这似乎并不工作。有另一个函数,我可以使用或还有其他设置要求我使用这些功能在广告模式?

我从wrbl_sfl项目工作。

谢谢,
杰里米

设备:
MT_dialog
离线
最后看到:2个月4周前
工作人员
加入:2015-06-08 34
嗨jeremynwong,

嗨jeremynwong,

物联网项目获得中断任何类型的运动广告完成之后,在广告完成回调user_bmi160_config_anymotion_intr()函数设置加速度计在这种模式下,当运动的加速度计的感觉任何触发一个中断583和wkup_intr_non_connected_cb()会引发为了设备再次开始广告,所以你可以放置一个标记在中断处理程序,或由于设备在每次移动广告你甚至可以开始设置一个标志的移动设备user_adv_start()函数,并相应地修改您的广告的字符串。如果你想计算广告时可以使用这个配置为了可以在所有时间和触发一个中断在任何运动。

也请注意,同声传译项目中编写额外的代码的空间非常有限,如果不是不存在的,问题是凯尔的局限性,因为它不会编译额外的代码在32 k所以我建议与格兰原始项目,除非你想传感器融合functionallity。

由于MT_dialog

michaelmeng998
离线
最后看到:4年1月前
加入:2017-01-11 07:46
嗨MT_dialog !你提到的

嗨MT_dialog !你提到的物联网项目的中断任何类型的运动广告完成之后,如果有运动检测到中断处理程序会引发为了让设备重新开始广告。如果我们想要中断启用,不仅在14583年已经去睡觉?我们目前残疾人14583的睡眠模式。

同样,你提到我们可以编写一个国旗user_adv_start函数。我们如何使用任何动机或stepcounter功能可以帮助我们实现我们的目标。我们已经尝试编写一个标志在使用read_step_counter user_app_adv_undirect_complete函数声明中但不是工作。

谢谢,

迈克尔

MT_dialog
离线
最后看到:2个月4周前
工作人员
加入:2015-06-08 34
嗨michaelmeng998,

嗨michaelmeng998,

如果你想启用了中断然后你必须配置传感器提供一个中断的时间中断的设备运行和后你可以认为这是一场运动,还你要考虑作为一个运动,取决于你如何配置了IMU的中断,永久BMI中断操作下,暂时锁定模式(请检查BMI160数据表的更多信息)。

关于如何做到这一点请告知传感器的数据表,该模块它自我提供了一系列的配置和在一定条件下触发的中断,所以你应该检查什么适合你和BMI启用相应的功能模块。关于写作user_adv_start_function国旗,我已经提到过,如果你想做广告,设备被移动了,自设备使中断时落在永恒的睡眠和醒来时广告你可以设置一个计数器或国旗表明设备移动和广告。

由于MT_dialog

michaelmeng998
离线
最后看到:4年1月前
加入:2017-01-11 07:46
嗨MT_dialog:

嗨MT_dialog:

我还是有点困惑。我检查了数据表。h源文件和它有一些特定IRQn就像从低功率中断唤醒,收据在每个中断收到包,和广告打断,但没有中断相应当我们第一次启动设备。

还在bmi160在线数据表,它说有任何动机中断寄存器(INT_MOTION 0 x5f-0x62)。我试图找出如何启用中断。同时,我们需要编写一个中断处理程序,或者我们可以叫一个预先写好的中断处理程序wkup_intr_non_connected_cb吗?

MT_dialog
离线
最后看到:2个月4周前
工作人员
加入:2015-06-08 34
嗨michaelmeng998,

嗨michaelmeng998,

没有中断代码开始在设备上运行时,如果你想知道你可以设置中断被触发,你可以把它在.app_on_init回调或你甚至可以把它当广告开始。

物联网的源代码允许中断当设备停止广告,user_app_on_adv_undirect_complete,如果你检查user_init_bmi_nc()函数你可以找到一个例子如何设置的BMI中断任何运动,更具体地说,user_bmi160_config_anymotion_intr()函数,设置中断被触发。你可以检查功能和应用配置,您希望您的项目。关于中断的处理,在物联网这个中断连接到唤醒定时器(中断在睡眠时可用的设备),以分配一个ISR,中断wkupct_register_callback () api,例如在任何动机中断后的物联网和IMU已经配置函数config_da1458x_pin_intr_non_connected()被调用时,该函数注册wkup_intr_non_connected_cb唤醒定时器并设置销,预计通过wkupct_enable_irq中断()函数。

由于MT_dialog

michaelmeng998
离线
最后看到:4年1月前
加入:2017-01-11 07:46
嘿MT_dialog。谢谢你的

嘿MT_dialog。谢谢你的回应。我还有几个问题。你提到的user_init_bmi_nc()函数的函数集的BMI运动中断吗?当我检查了user_wrbl。c文件,user_init_bmi_nc()函数被称为user_app_on_adv_undirect_complete函数广告后就完成了。如果我们想在广告开始时设置中断,我们只是把user_init_bmi_nc user_adv_start()函数()函数?

也,因为我想访问软件狗的运动状态(是否移动),然后配置我们的广告包携带是否移动,(我们已经有能力修改广告数据包大小,我们只需要访问正确的运动状态信息)后的运动状态得到存储在哪里bmi160检测运动吗?有一个特定的队列保存这些信息,我们可以访问?

MT_dialog
离线
最后看到:2个月4周前
工作人员
加入:2015-06-08 34
嗨michaelmeng998,

嗨michaelmeng998,

不仅user_init_bmi_nc(),这只设置配置传感器一端,你也将会配置中断583年user_app_on_adv_undirect_complete,这边也有一些额外的配置,配置的代码乌兹别克斯坦伊斯兰运动设备,请阅读并试图理解代码。如果你只是把user_init_bmi_nc()它只是不会工作。

关于你提到的第二个问题你能够找到答案和信息数据表的IMU,然而当中断被触发了你可以看到在wkup_intr_non_connected_cb(),设备读取一些寄存器(0 x1d, INT_STATUS_寄存器- 0 x1c 0 x1e)为了确定什么是中断触发。

由于MT_dialog

jeremynwong
离线
最后看到:4年3周前
加入:2017-01-16 14:09
嗨MT_Dialog,

嗨MT_Dialog,

我们设置中断被触发时,电子狗的动作。这部分工作。user_adv_start代替执行默认操作,我们想要运行另一个相似但不同的函数。

原因是我们设置user_adv_start函数开始的旗帜广告0 x00,呼吁程序初始化,因为“不动”应该是我们的初始状态。

不过,中断意味着运动已经发生了,我们要开始广告但是0 x01旗。我们创建了一个单独的函数称为restart_adv和调用这在我们的中断处理程序,如下所示。然而,尽管这个函数被调用(我们验证这个调试器),重启软件狗的广告与0 x00即使我们在0 x01作为参数传递给我们开始广告功能。

下面是相关的代码。

谢谢,
杰里米

/ /在user_platform.c
空白wkup_intr_non_connected_cb(空白)/ /的时候调用这个函数成功电子狗动作
{
restart_adv ();
}

/ /在user_wrbl.c
空白user_adv_start (void){/ /这就是呼吁程序初始化,与0 x00广告
user_easy_gap_undirected_advertise_start (FAST_ADV_INTERVAL 0 x00);
}

空白restart_adv (void){/ /这是我们想要从中断处理程序,应该和0 x01广告
user_easy_gap_undirected_advertise_start (FAST_ADV_INTERVAL 0 x01);
}

/ /开始广告的功能,我们添加了一个额外的参数为用户数据我们想做广告
静态孔隙user_easy_gap_undirected_advertise_start (uint16_t adv_intv, uint8_t user_data)
{
struct gapm_start_advertise_cmd * cmd;
adv_data_update_timer_cb timer_hnd app_adv_data_update_timer_used = app_easy_timer (1000);

cmd = app_easy_gap_undirected_advertise_get_active ();
cmd - > intv_max = adv_intv;
cmd - > intv_min = adv_intv;
user_add_adv_info (cmd - > info.host。scan_rsp_data 10);
user_add_accel_info (cmd - > info.host。scan_rsp_data user_data);/ /修改广告我们正在使用的字节数据

app_easy_gap_undirected_advertise_start ();

/ /我们现在接入
ke_state_set (TASK_APP APP_CONNECTABLE);
}

uint8_t user_add_accel_info (uint8_t * padv uint8_t user_data) {
padv [7] = user_data;
返回0;
}

jeremynwong
离线
最后看到:4年3周前
加入:2017-01-16 14:09
嗨MT_Dialog,

嗨MT_Dialog,

我们发现我们的问题是什么。谢谢!

杰里米

MT_dialog
离线
最后看到:2个月4周前
工作人员
加入:2015-06-08 34
嗨jeremynwong,

嗨jeremynwong,

谢谢指示,请接受任何上面的答案如果你发现他们有用,甚至随时分享你的解决方案为了让别人得到帮助在一个类似的问题。

由于MT_dialog