1.为了建立一个连接(配对)设备必须清醒和侦听请求(连接请求在你的情况中)如果你的扫描仪听一个广告事件和发起一个连接connenction请求将由主在下次发送广告事件的外围,你可以尝试定向广告如果它适合你,在这种情况下你的设备将emmit引导广告事件扫描仪为了得到连接(过程功率消耗和你可以直接宣传只有一个特定的中央已经知道蓝牙的地址)。因此,一个想法可能是间接宣传大量时间,而你没有一个可用的中央bd地址,当中央发现你的设备,你可以建立一个连接(初始连接将是耗时的原因,我在上面解释)。在那之后,每次你断开连接时,你都会直接向那个中心做广告,你会比无向广告程序更快地连接。但我要再说一遍定向广告很耗电,1。28秒后就会自动停止,没有任何广告数据(没有广告数据意味着你将不能连接到DSPS android & ios应用程序,你也将不得不重新配置580主机接受定向广告请求,你将必须知道你的中心的地址)。您可以使用或不使用安全性实现上述功能。根据您的设备的使用情况,以上可能是一种解决方案。此外,从我可以告诉你的是,你关心低功耗,你可以做的是保持无定向广告,并逐渐增加广告间隔,而没有活动(在一段时间内没有连接),或者, if there is a possibility you can place a button on the device to increase advertising interval so that the user can force a reconnection with no delays.
嗨兰迪宇,
1.您将INTV_MIN和INTV_MAX更改为10000ms?如果您在大约10秒内更改了它,那么在您的设备看到外围设备的广告消息后,中央将要等待侦听第二个广告消息,以便发送连接请求,如果有TRAFIC(未能看到下一个广告消息)它也可能等待更长。
2.广告命令在唤醒后不会超时,只要你不取消命令,它就会发送广告命令。只有定向广告才会暂停。广告报文仅通过间隔设置来定义,如果您将其设置为10秒,那么您将每10秒发送3条广告消息(每个广告通道一条)。
3.它约为10.24秒,可以检查此功能的BLE规范。
4.检查此线程的答案http://support.dialog-semicondiondiondum/help-help-help-cant-go-deep-slee ...文章# 10。
谢谢mt_dialog.
1.如果我修改设备和Central才能配对,那么连接和发送数据将减少时间。如果它是,可以让我成为配对的示例。
2.你说时间间隔?我不是很明白,我能改一下吗?如果我想把它改成每10秒发送10条广告信息。我需要修改哪个参数。
3.对不起,我的英语不是很好。我指的是intv的参数,它能设置的最大值。因为我想让它睡10分钟
谢谢你
嗨兰迪宇,
1.为了建立一个连接(配对)设备必须清醒和侦听请求(连接请求在你的情况中)如果你的扫描仪听一个广告事件和发起一个连接connenction请求将由主在下次发送广告事件的外围,你可以尝试定向广告如果它适合你,在这种情况下你的设备将emmit引导广告事件扫描仪为了得到连接(过程功率消耗和你可以直接宣传只有一个特定的中央已经知道蓝牙的地址)。因此,一个想法可能是间接宣传大量时间,而你没有一个可用的中央bd地址,当中央发现你的设备,你可以建立一个连接(初始连接将是耗时的原因,我在上面解释)。在那之后,每次你断开连接时,你都会直接向那个中心做广告,你会比无向广告程序更快地连接。但我要再说一遍定向广告很耗电,1。28秒后就会自动停止,没有任何广告数据(没有广告数据意味着你将不能连接到DSPS android & ios应用程序,你也将不得不重新配置580主机接受定向广告请求,你将必须知道你的中心的地址)。您可以使用或不使用安全性实现上述功能。根据您的设备的使用情况,以上可能是一种解决方案。此外,从我可以告诉你的是,你关心低功耗,你可以做的是保持无定向广告,并逐渐增加广告间隔,而没有活动(在一段时间内没有连接),或者, if there is a possibility you can place a button on the device to increase advertising interval so that the user can force a reconnection with no delays.
2.如果您设置在.intv_min和.intv_max中的值Ms_to_bleslots(10000)的广告间隔将设置在10秒内,这意味着设备将睡眠约10秒钟,然后退出睡眠模式自动扫描和睡眠。您无法通过广告命令控制广告数据包的数量,您必须实现一个计数器,以计算从您的设备授予的广告消息。
3.广告的最大值是通过规范10.24秒,如果您想要的更多,您必须使用ke_timer来实现自定义广告方案。定时器可以作为最大值为300秒(5分钟),但您可以唤醒并重置该计时器并重新返回睡眠状态。
谢谢mt_dialog.
因为我希望我的设备可以使用电池工作3年,因此直接宣传不适合我。虚荣心
你说我可以“实现柜台以计算揭示的广告消息”。
我认为这是一个好主意,我的问题是,但我不知道哪个职位可以改变它。
**************************************
我试图改变它,
A.睡觉
B.Open Printf控制台
c.add a avd_counter ++;在app_easy_gap_undirected_advertsie_start()中
并写一个ARCH_PRINTF
但我发现该函数只执行一次。
奇怪的是,我的安卓应用也可以扫描它。还有其他的职位和职能吗
发广告?
3.我可以实现自定义宣传方案吗?
你能给我一个详细的描述或一个例子吗?
非常感谢你
亲爱的对话框
我想用另一个定时器来解决上面提到的问题,把代码粘贴到这里
空白adv_timer_fsm(空白)
{
静态UINT8_T ADV_STATE = ADV_INIT_STATE;
ARCH_PRINTF(“adv_timer_fsm \ r \ n \ r \ n”);
切换(Adv_state)
{
案例ADV_INIT_STATE:
arch_printf(“ADV_INIT_STATE \ r \ n \ r \ n”);
spss_env.adv_tmr_hndl = app_easy_timer(10,spsss_env.adv_timer_cb);
Adv_state = Adv_Modify_State;
休息;
案例ADV_MODIFY_STATE:
ARCH_PRINTF(“停止advtise \ r \ n \ r \ n”);
app_easy_gap_advertise_stop ();
spss_env。Adv_tmr_hndl = app_easy_timer(6000, spss_env. env)adv_timer_cb);/ /第一季度
adv_state = adv_cycle_state;
休息;
案例adv_cycle_state:
ARCH_PRINTF(“adv_cycle_state \ r \ n \ r \ n”);
default_advertise_operation ();
spss_env。Adv_tmr_hndl = app_easy_timer(300, spss_env. env)Q2 adv_timer_cb);
Adv_state = Adv_Modify_State;
休息;
默认:
休息;
}
}
我的问题是:
Q1:Q1帖子的代码(上面的代码)这是否可以阻止广告和睡眠60岁?60年代之后,设备唤醒
计时器的spss_env.adv_tmr_hndl
Q2: Q2位置的代码(上面的代码)这个位置的代码可以开始广告并继续3秒吗?(我已经将通告间隔修改为100,
这个值的最小值是多少?
我有一个测试,但结果并不是很理想。当连接时,我的从站将数据包发送到掌握,而且大师都有ack.在我收到的地方
ack,我叫app_easy_gap_disconnect(spss_env.con_info.conidx),它有点断开连接(实际上,我只确定user_on_disconnect已经执行了)。但是在短时间内完成了
它再次连接(我希望它睡眠1分钟,并由Timer SPSSS_ENV.Adv.Admr_hndl = app_easy_timer唤醒(6000,spss_env.adv_timer_cb);)。
你能给我一个修改的建议吗?
非常感谢你
嗨兰迪宇,
我没有得到你想要与上述代码一起做的事情。
我不知道您的广告消息的测量将如何帮助您连接更快,app_easy_gap_undirected_advertise_start()只执行一次,然后设备发布您设置的间隔。为了计算您已发出的广告消息,您可以遵循信标项目中的示例。请检查app_asynch_trm()函数中的实现,该实现将检查BLE的最后一个状态,如果它是BLE_END_EVT,并将增加app_advertise_counter,您可以使用这个实现来计数您的消息。
谢谢mt_dialog.
我有改变如你说,但计数器不准确,我已经设置的MAX计数器= 20,但我有嗅探49。
嗨兰迪宇,
我不确定是否与嗅探器进行比较是可靠的比较,据我所知,如果您正在跟踪每个BLE事件的末尾,那么方法是正确的。只要记住,为了跟踪您应该在广告状态的广告消息中,如果不是,则计数器也将测量连接的事件。关于与我所提到的方法的嗅探器比较,计数器将在每个频道(37,38,39)上进行一次广告(37,38,39),这将计入嗅探器上的3个广告消息,也据我所知,也是嗅探物,不会显示如果空气上有任何广告包碰撞,则广告消息。
谢谢mt_dialog.