1.如果我修改设备和central to paired,does the time will be decreased for connecting and send data.If it is ,can you give me a example for pairing. 2.你说的时间间隔?我不太明白,我可以改变它吗?如果我想要将它更改为每10秒钟,请发送10个广告汇率。需要我改变它来改变它。 3.我抱歉,我的英语不是很好。我的意思是INTV的参数,它可以设置的最大值。我希望它睡眠约10分钟 谢谢你!
1.为了使建立的连接(成对与否),设备必须唤醒并侦听请求(在您的情况下的连接请求),因此如果扫描仪侦听一个广告事件并启动连接康复请求将发送联系请求由主人在下一个广告事件的外围设备,您可以尝试的是指示广告如果它适合您,在这种情况下,您的设备将EMMIT指向扫描仪的广告事件以便连接(程序是耗电和耗电量您可以直接向特定中央进行广告,具有已知的蓝牙地址。因此,一个想法可以是为了向大量的时间广告广告,而在您没有可用的中央BD地址,当中央找到您的设备时,您可以建立连接(由于我解释的原因,初始连接将耗时。以上)。之后,每次未连接时,您将直接向该中心进行广告,并且您将比无向广告过程更快地连接。但是我重复那个定向的普遍是耗电,1.28秒后自动停止,没有任何广告数据(没有广告数据意味着您无法连接到DSPS android&iOS应用程序也必须重新配置580主机接受指示的广告请求,您将不得不知道中心的地址)。您可以在有或没有安全性的情况下实现上面的。根据您的设备的用例,上述可能是解决方案。 Also since from what i can tell you care about low power consumption, what you can do is keep the undirected advertising and gradually increase the advertising interval while there is no activity (being with no connection for quite sometime) or, 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.
嗨RandyYu,
1.您已经将intv_min和intv_max更改为10000ms ?如果你已经改变了它在大约10秒那发生了什么,在你的设备将广告信息的外围设备,中央不得不等待听第二广告信息发送连接请求,如果有内部(未见下一个广告信息)可能会等待更长时间。
2.广告命令在唤醒并发送广告命令后不会超时,只要您不会取消命令,它会宣传。只有在指示的广告上只有一个超时。广告数据包仅通过间隔集定义,如果您将其设置为10秒,则每10秒钟将3个广告消息(每个广告频道一个)发送3个。
3.大约10.24秒,你可以检查BLE规格。
4.在这个帖子上检查一下答案http://support.dialog-semiconductor.com/help-help-help-cant-go-deep-slee..。在第10篇文章。
由于MT_dialog
1.如果我修改设备和central to paired,does the time will be decreased for connecting and send data.If it is ,can you give me a example for pairing.
2.你说的时间间隔?我不太明白,我可以改变它吗?如果我想要将它更改为每10秒钟,请发送10个广告汇率。需要我改变它来改变它。
3.我抱歉,我的英语不是很好。我的意思是INTV的参数,它可以设置的最大值。我希望它睡眠约10分钟
谢谢你!
嗨RandyYu,
1.为了使建立的连接(成对与否),设备必须唤醒并侦听请求(在您的情况下的连接请求),因此如果扫描仪侦听一个广告事件并启动连接康复请求将发送联系请求由主人在下一个广告事件的外围设备,您可以尝试的是指示广告如果它适合您,在这种情况下,您的设备将EMMIT指向扫描仪的广告事件以便连接(程序是耗电和耗电量您可以直接向特定中央进行广告,具有已知的蓝牙地址。因此,一个想法可以是为了向大量的时间广告广告,而在您没有可用的中央BD地址,当中央找到您的设备时,您可以建立连接(由于我解释的原因,初始连接将耗时。以上)。之后,每次未连接时,您将直接向该中心进行广告,并且您将比无向广告过程更快地连接。但是我重复那个定向的普遍是耗电,1.28秒后自动停止,没有任何广告数据(没有广告数据意味着您无法连接到DSPS android&iOS应用程序也必须重新配置580主机接受指示的广告请求,您将不得不知道中心的地址)。您可以在有或没有安全性的情况下实现上面的。根据您的设备的用例,上述可能是解决方案。 Also since from what i can tell you care about low power consumption, what you can do is keep the undirected advertising and gradually increase the advertising interval while there is no activity (being with no connection for quite sometime) or, 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秒,然后退出休眠模式并自动再次休眠。你不能通过advertising命令控制广告包的数量,你必须实现一个计数器,以计数从你的设备发出的广告消息。
3.按照规范,广告的最大值是10.24秒,如果你想要更多,你必须通过使用ke_timer实现一个自定义的广告方案。定时器可以以300秒(5分钟)为最大值,但你可以唤醒和重置定时器,并回到睡眠。
由于MT_dialog
2.因为我希望我的设备可以用电池工作3年,所以直接做广告不适合我
你说我可以“执行一个计数器来计算发出的广告信息”。
我认为解决我的问题是一个好主意,但我不知道在什么位置可以改变它。
**************************************
我试过改变它
a.close睡眠
b.open printf控制台
在app_easy_gap_undirected_advertsie_start()中添加一个adv_counter++
并编写一个arch_printf
但是我发现这个函数只执行一次。
很想,我的Android应用程序也可以扫描它。有没有ober位置和功能
发送广告?
3.如何实现自定义广告方案?
你能给我一个详细的描述或例子吗?
非常感谢
亲爱的对话框
我想用另一个定时器来解决上面的问题,代码粘贴在这里
void adv_timer_fsm(void)
{
static uint8_t adv_state = ADV_INIT_STATE;
arch_printf(“adv_timer_fsm \ r \ n \ r \ n”);
开关(adv_state)
{
case adv_init_state:
ARCH_PRINTF(“adv_init_state \ r \ n \ r \ n”);
spss_env。Adv_tmr_hndl = app_easy_timer(10, spss_env. env);adv_timer_cb);
adv_state = ADV_MODIFY_STATE;
打破;
case av_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.adv_timer_cb);// Q1.
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,spsss_env.adv_timer_cb); Q2
adv_state = ADV_MODIFY_STATE;
打破;
默认值:
打破;
}
}
我的问题是:
Q1: Q1位置的代码(上面的代码)是否可以停止广告并休眠60秒?60秒后,设备被唤醒
spss_env.adv_tmr_hndl的计时器
Q2:Q2帖子的代码(上文代码)此帖子中的此代码可以启动广告和持续3S?(我已将广告间隔修改为100,
这个值的最小值是多少?
我有一个测试,但结果不是很理想。当连接时,我的奴隶发送数据包给主人,主人有ack。我收到后
ack,我调用app_easy_gap_disconnect(spss_env.con_info.conidx),它有一点断开(实际上,我只确定user_on_disconnect已经执行)。但不久之后
它再次连接(我想让它休眠1分钟,并由计时器spss_env唤醒。Adv_tmr_hndl = app_easy_timer(6000, spss_env. env)adv_timer_cb);.
你能给我一个建议如何修改它。
非常感谢
嗨RandyYu,
我不明白你试图用上面的代码做什么。
我没有看到广告消息的测量如何帮助您更快地连接,App_easy_gap_undircated_advertise_start()只执行一次,然后设备通过所设置的间隔进行广告。为了计算您emmited的广告消息,您可以遵循信标项目中的示例。请在App_Asynch_trm()函数中检查实现,执行将检查BLE的最后一个状态是否是BLE_END_EVT并将递增APP_ADVERTESE_COUNTER,您可以使用此实现以计算您的消息。
由于MT_dialog
当你说的时候,我有变化,但计数器不精确,我已经设置了最大计数器= 20,但我有嗅探器49。
嗨RandyYu,
我不确定比较与嗅探器是一个可靠的比较,据我所知,如果实现正确,方法是相当准确的,因为你是跟踪每个BLE事件的结束。只要记住,为了跟踪广告信息,你应该处于广告状态,如果不是,计数器也将测量相关事件。关于嗅探器与方法我已经提到,柜台将测量一次广告在每个频道(37、38、39)这将被视为3广告信息嗅探器,也嗅探器就我所知,不会显示广告信息如果有任何广告数据包碰撞。
由于MT_dialog