Timer关于Val1.

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
德穆勒
离线
最后一次见到:3年10个月前
加入:2017-04-12 10:04
Timer关于Val1.

亲爱的MT\u dialog,

我使用示例程序“ble\u app\u peripheral”。现在我想使用characteristik“val 1”,而不激活特征“Control Point”。

1.我做的,定时器的功能独立于“控制点”。但如果我通过特征“控制点”发送“0x01”,值仍然显示。我必须做什么,才能使用“val1”的通知而不激活“Control Point”?

2.我在函数“user_custs1_adc_val_1_cfg_ind_indler”中启动计时器。似乎,定时器似乎更快,因为计时器启动“user_custs1_ctrl_wr_ind_handler”时。我使用相同的“app_peripheral_ctrl_timer_delay”--delay。什么是原因?

亲切的问候。

设备:
MT\u对话框
离线
最后一次见到:3个月4天前
职员
加入:2015-06-08 11:34
嗨dmueller,

嗨dmueller,

1.我不确定我是否理解您所做的,但您必须以某种方式触发计时器以开始计数(即控制点特性在写入时所做的只是触发计时器),您将计时器的触发放置在何处?如果你没有得到任何通知值,那么显然计时器是不会被触发的。例如,如果调用timer\u used=app\u easy\u timer(app\u PERIPHERAL\u CTRL\u timer\u DELAY,app\u adcval1\u timer\u cb\u handler);在用户\u custs1 \u adc \u val \u 1 \u cfg \u ind \u handler()中,就像您在第二个问题或连接回调中所做的那样,设备应该根据计时器超时来更新值。

2.关于在提到的函数中触发时,您看到定时器运行更快,我没有看到这样的东西,可以使用电源profiler和arch_set_pxact_gpio()(触发电源分布器中的光标)以测量之间的距离不同的定时器超时。

谢谢你的对话

德穆勒
离线
最后一次见到:3年10个月前
加入:2017-04-12 10:04
嗨mt_dialog,

嗨mt_dialog,

1.我在函数“user_custs1_adc_val_1_cfg_ind_handler”中启动计时器。计时器有效。如果我在没有通知的情况下读取该值,我就可以看到。如果我开始通知,智能手机显示屏上没有任何内容。首先,如果我在“控制点”中发送“0x01”,则使用通知将更新值。我认为有一个连接携带的通知功能和“控制点” - 特征,但我不知道在哪里。

2.我有了一个新的知识:如果我使用“user\u custs1\u ctrl\u wr\u ind\u handler”中的计时器,值会均匀增加。如果我使用“user\u custs1\u adc\u val\u 1\u cfg\u ind\u handler”中的计时器,三个值会快速发送。然后是一个小小的休息。三个值正在快速发送。等等。也许你有个主意,为什么会这样?
(我拍了两个视频。不幸的是,它们超过了10MB。但如果你给我一个电子邮件地址,我可以把这些视频发给你)

亲切的问候。

MT\u对话框
离线
最后一次见到:3个月4天前
职员
加入:2015-06-08 11:34
嗨dmueller,

嗨dmueller,

1)由于您将计时器放在user_custs1_adc_val_1_cfg_ind_handler()函数中,这意味着您不必通过控制点特征触发计时器,但启用通知(从中央)user_custs1_adc_val_1_cfg_ind_handler()将触发,激活计时器开始生成通知。因此,您没有收到通知的事实,但在读取时看到递增到特征,我可以假设您正在激活控制点特性,但您不会在中央启用通知。作为通知的常规交换机实现控制点特性的示例。一旦执行写入控制点,user_custs1_ctrl_wr_ind_handler()函数会被触发,如果该值是正确的!= 0然后启用计时器。轮到轮流上的计时器发送到堆栈的通知命令,并且在排列的连接间隔到达时发送通知。此外,为了获取Central上的通知,您需要从中央启用它们,一旦启用它们,将触发user_custs1_adc_val_1_cfg_ind_handler()。

2)在您的第二个创建中,我只能假设您从控制点触发多个定时器,也可以从user_custs1_adc_val_1_cfg_ind_handler()或甚至更多(如果您重写控制点特性或继续启用禁用通知)和所有这些都在经过它们时,他们向堆栈推出通知。

谢谢你的对话

德穆勒
离线
最后一次见到:3年10个月前
加入:2017-04-12 10:04
嗨mt_dialog,

嗨mt_dialog,

1.是的,这是正确的。我不希望通过控制点特征触发计时器。我已经启用了中央的通知。但首先,如果我通过控制点特征发送0x01,我会看到智能手机上的值。我将再次进行一些测试。

我会在计时器之后展示。但我知道,我没有从控制点特征开始计时器。

谢谢你的helb。

亲切的问候。

MT\u对话框
离线
最后一次见到:3个月4天前
职员
加入:2015-06-08 11:34
嗨dmueller,

嗨dmueller,

1.如果不想从控制点特征触发计时器,那么不要在该特征处执行写入,只需将定时器启动函数放在user_custs1_adc_val_1_cfg_ind_handler()函数中,因此通过启用ADC值1特征的通知将发生处理程序并启动将触发通知发送功能的计时器。

2.关于第二种情况,当放置在不同的代码部分时,定时器计数更快,这是唯一的逻辑解释,即您启用超过1个定时器,每个计时器通过相同的通知功能(相同的计时器回调)更新并每次发送更多通知。

谢谢你的对话

德穆勒
离线
最后一次见到:3年10个月前
加入:2017-04-12 10:04
嗨mt_dialog,

嗨mt_dialog,

很抱歉重播太晚了。

1.是的,我已经从user_custs1_adc_val_1_cfg_ind_handler()开始计时器。

我现在删除了控制characteristic。现在都是功能。

非常感谢你的帮助。

亲切的问候。