DSPS_主机和DSPS_设备睡眠

13个员额/0个新员额
最后发表
普拉桑特,维利。。。
离线
最后一次见到:2年3个月前
加入:2016-02-18 12:18
DSPS_主机和DSPS_设备睡眠

嗨对话框

DSPS_HOST连接到所有可用的DSPS_DEVICES(6),

1.DSPS_主机将向DSPS_设备(所有六个设备按顺序)发送数据请求(每10毫秒一次),然后DSPS_设备将以数据(按顺序)响应,一旦数据发送完成,DSPS_设备(所有六个设备)将进入睡眠状态),因此接下来的10分钟内没有数据发送,因此DSPS_设备将处于睡眠状态(不断开连接)。假设在3分钟或5分钟之后(10分钟间隔结束之前),我想要从DSPS_设备获取数据,DSPS_主机能否向DSPS_设备发送数据_请求??DSP_设备是否会唤醒并响应??怎么做??

2:从DSPS_设备,我使用用户_send_ble_data()将数据发送到DSPS_主机,一旦数据发送完成,那么如何使DSPS_设备进入睡眠状态??(无需断开连接)。

谢谢你!

设备:
MT_对话框
离线
最后一次见到:7个月1周前
工作人员
加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

1) 我不确定您如何感知睡眠,580进入睡眠状态并在有活动连接时自动唤醒,这意味着580将始终在与主机建立连接期间设置的预定义时间内唤醒,这称为连接间隔。连接间隔有限制(7.5ms到4s),因此当我们说设备进入睡眠状态时,设备在两个连续的连接间隔之间进入睡眠状态。因此,你无法与他人建立联系,也无法因为你在描述中提到的数量而长期处于睡眠状态。如果您睡眠了这么长时间,设备将断开连接,如果您想交换数据,您必须建立新的连接。因此,如果你想在这段时间内完成这项工作,你必须先断开连接,然后再重新连接。

2)正如我提到的,设备会自动进入睡眠状态,如果没有BLE事件服务,设备将休眠,并将唤醒到下一个连接间隔,以保持连接活跃。如果你希望你的设备永远睡觉,直到一个事件发生时(gpio唤醒中断或内核计时器事件)你必须断开主机和一般不安排任何祝福事件和设置你的唤醒状态,这样的设备将继续睡,直到唤醒条件满足。

谢谢你的对话

普拉桑特,维利。。。
离线
最后一次见到:2年3个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框

谢谢你的回复,

连接到DSPS_主机的DSPS_设备,
DSPS_设备<=接收DSPS_主机所需的数据,
DSPS_设备=>用数据DSPS_主机响应,一旦数据发送完成,DSPS_设备能否进入睡眠状态,??数据发送完成后,如何启用睡眠?哪一个位置是启用睡眠的最佳位置?(无效用户发送数据(常量uint8*data,uint16长度)
),。启用睡眠后,DSPS_设备睡眠10分钟,我如何才能醒来??我必须从DSPS\U主机再次扫描才能建立连接吗??

谢谢你!

MT_对话框
离线
最后一次见到:7个月1周前
工作人员
加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

如前一篇文章所述,为了将设备设置为睡眠(我想你是指永久睡眠),你必须断开连接,这意味着你必须从设备发送一个断开连接命令。因此,在获取所有数据后,你可以发出一个app_easy_gap_disconnect()要终止连接,请不要开始播发并调用arch_ble_ext_wakeup_on(),以免每10秒唤醒一次(默认行为)。

现在保持睡10分钟是相当大的时间为580年,内核定时器支持多达5分钟时间,但是你可以设置定时器5分钟,醒来,重置计时器为另一个5分钟的,第二次计时器流逝你可以开始广告或扫描。

由于您知道所连接设备的bd地址,因此可以直接发出连接请求而无需扫描,但如果没有具有该地址的设备,请注意,连接命令将一直执行,直到取消或找到设备并确认连接为止,它不会像扫描命令那样超时。

谢谢你的对话

普拉桑特,维利。。。
离线
最后一次见到:2年3个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框

很抱歉

问题1:在不断开与DSPS_主机的连接的情况下,DSPS_设备可以处于延长睡眠状态的最长持续时间是多少,

Q2:考虑DSPSH设备是否可以在5分钟内长时间休眠,并且每5分钟唤醒一次(在外断开),在这两者之间,在第二分钟内,如果我想从DSPSX设备获得数据,可以DSPSSHOME Req DSPSX设备进行数据吗?(可以DSPSSHOST主机在第二分钟唤醒DSPSH设备并获得数据??)

MT_对话框
离线
最后一次见到:7个月1周前
工作人员
加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

问题1。你什么意思?如果设备没有接收到指定时间的包(监视超时参数),则设备认为此链接丢失。如果您指的是不必断开与其他设备的连接就可以睡眠多长时间,则意味着您在DSP中的连接间隔为12.5ms。

Q2。你不能永久的睡眠5分钟没有TX / RX事务仍然在祝福和你的设备连接,如果这是你的意思,你需要定期醒来为了保持活着,580的连接在延长睡眠醒来定期连接在每一个时间间隔,关于这类信息,请参阅BLE规范以及BLE如何工作,因为它不是特定于DSPS的,但它与BLE规范有关。

谢谢你的对话

普拉桑特,维利。。。
离线
最后一次见到:2年3个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框

正如您所建议的,我更改了DSPS\U设备项目

断开连接时无效用户(结构gapc断开连接ind const*param)
{
断开连接时的默认应用(参数);
arch_printf(“设备已断开连接\r\n”);

app_easy_gap_advertise_stop ();
//拱门设置延长睡眠();
wrbl_env2.sensor_read_time_1=app_easy_timer(1000,唤醒)//1000->10s//30000->5min
}

无效唤醒\u sm(无效)
{
//拱_禁用_睡眠();
app_easy_gap_undirected_advision_,带有超时_start(用户_默认值_hnd_conf.advision_period,NULL);

}
当在DSPS_主机中接收到数据时,在DSPS_主机中,我正在使用断开DSPS_设备的连接
/ /断开连接
应用程序_easy_gap_disconnect(con_id),
DSPS_设备可以进入睡眠状态,但唤醒不正确(powerprofiler显示设备处于永久睡眠状态),为什么?在间隔5分钟后唤醒DSPS_设备时,我还需要做其他任何更改??

谢谢你!

普拉桑特,维利。。。
离线
最后一次见到:2年3个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框

断开连接时无效用户(结构gapc断开连接ind const*param)
{
断开连接时的默认应用(参数);
arch_printf(“设备已断开连接\r\n”);

app_easy_gap_advertise_stop ();
arch_ble_ext_wakeup_on ();

//拱门设置延长睡眠();
wrbl_env2。Sensor_read_time_1 = app_easy_timer(500, wake_up_sm);// 1000 -> 10秒
应用程序\u轻松\u定时器\u取消(wrbl\u环境2.传感器\u读取\u时间\u 1);
}

无效唤醒\u sm(无效)
{
//拱_禁用_睡眠();
arch_ble_ext_wakeup_off ();
app_easy_gap_undirected_advertized_start()//app_easy_gap_undirected_advision_,带有超时_start(用户_默认值_hnd_conf.advision_period,NULL);

}
有时定时器正常工作,有时不能,DSPS_DEVICE没有断开连接??,帮助我唤醒DSPS_DEVICE通过ble_timer (app_easy_timer)..

MT_对话框
离线
最后一次见到:7个月1周前
工作人员
加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

你的问题是,设备在断开连接后不会醒来,而你设置了计时器,让你在5分钟后醒来?你说唤醒不正常,功率分析器显示设备处于永久休眠状态,这是什么意思?如果你断开连接,你不开始做广告,没有什么为BLE做(没有即将发生的事件,所以它睡觉,直到它被指示否则)。从你粘贴的代码,在断开连接后,设备应该进入永久睡眠10秒(或无论你的连接是什么),然后计时器应该发生,广告应该开始。如果你在10秒后看不到你的设备广告,检查计时器回调是否在指定的时间之后执行。

同时删除默认的\u-app\u-on\u-disconnect(),因为您想在特定时间内睡眠,此函数将再次开始播发,同时,由于您删除了,您还可以删除app\u-easy\u-adverting\u-stop(),因为将没有播发功能。

关于设备没有断开连接到底发生了什么?你断开了设备的连接,但连接仍然是活跃的?这意味着“有时计时器正常工作,有时不”设备不能准时唤醒?试着调试你的代码,并检查如果相应的处理程序发生,我检查了DSPS,并在断开连接后开始了一个计时器,我看不到任何错误。

谢谢你的对话

普拉桑特,维利。。。
离线
最后一次见到:2年3个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框

https://support.dialog-semiconductor.com/can-you-maintain-connection-whi...
正如上面提到的链接
“您可以使用连接更新功能向中央计算机请求更大的连接间隔和从机延迟。这将允许您在更长的睡眠时间内保持与中央计算机的连接。请注意,这两个参数由中央计算机决定。”

因此,DSPS_设备可以在不与DSPS_主机断开连接的情况下休眠更长的时间(确切持续时间是多少?)??

谢谢对话

MT_对话框
离线
最后一次见到:7个月1周前
工作人员
加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

这篇文章中提到的不是DSP定义的,而是BLE规范定义的,是的,您可以更新DSP设备的连接参数,但这是由主机端决定的。例如,如果您连接到android应用程序,并且您向连接的中心指示所需的连接间隔为x和y,则中心将决定是否接受这些值,如果不接受,则外围设备必须继续使用中心设置的值。

更重要的是,DSPS应用程序被设计成按指定的时间间隔工作,以实现指定的数据吞吐量,如果你让一个参数更新命令中央较长间隔和中央接受它(我不确定在需求方android应用程序将接受参数除了当前)将影响网络传输的数据量,换句话说(大间隔意味着更少的吞吐量)。BLE规范指定的较大间隔是4秒。但即使这权力consumtion权衡,因为你呆不与对方沟通的时间越长你的时钟-外围和主人之间的漂移,这意味着,当它的时间两个设备沟通,至少在外围设备方面,你需要打开听筒很长一段时间。所以理论上对于DSPS,我假设您可以使用4秒的连接间隔,并假设延迟为0,数据将仅每4秒交换一次,或者甚至更久,如果延迟!= 0。但正如我前面提到的,DSPS的适当功能是根据参考设计的当前设置定义的,除了这些值之外,没有其他测试可以确保DSPS应用程序的适当吞吐量和数据有效性。

谢谢你的对话

普拉桑特,维利。。。
离线
最后一次见到:2年3个月前
加入:2016-02-18 12:18
嗨对话框

嗨对话框
在dsps设备项目()中

断开连接时无效用户(结构gapc断开连接ind const*param)
{

//断开连接时的默认应用(参数);
arch_printf(“设备已断开连接\r\n”);

app_easy_gap_advertise_stop ();
arch_ble_ext_wakeup_on ();

//拱门设置延长睡眠();
wrbl_env2。Sensor_read_time_1 = app_easy_timer(6000, wake_up_sm);// 1000 -> 10秒
应用程序\u轻松\u定时器\u取消(wrbl\u环境2.传感器\u读取\u时间\u 1);
}

无效唤醒\u sm(无效)
{
//拱_禁用_睡眠();
arch_ble_ext_wakeup_off ();
app_easy_gap_undirected_advertized_start();

}

数据发送完成后,我正在从用户\u sps\u服务器\u数据\u发送\u cfm\u处理程序()调用应用程序\u easy\u gap\u disconnect(con\u id),
一段时间后,如20或30分钟,DSPS设备进入永久睡眠,我没有看到任何广告。
一旦我关机再开机,它就会开始播放广告。

谢谢你!

MT_对话框
离线
最后一次见到:7个月1周前
工作人员
加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

您提供的信息不足以让我了解可能发生的情况,您必须检查设备是否仍在正常运行,以及它是否因看门狗或硬故障处理程序而停止。一般来说,设备停止广告时的状态是什么,您的代码是否通过广告完成离子回叫?

谢谢你的对话