DSPS_Central与DSPS_DEVICE(ComperipherWirectal)连接

12个帖子/ 0新
最后一篇
prasanth.velliy ...
离线
最后一次露面:10个月前1年
加入:2016-02-18 12:18
DSPS_Central与DSPS_DEVICE(ComperipherWirectal)连接

嗨对话框
我正在使用DSPS项目(1------6 - DSPS_DEVICE)

Q1:虽然DSPS_Central与DSPS_DEVICE-1连接,但是通过DSPS_DEVICE-2与DSPS_DEVICE-2进行连接(用设备1断开连接),但我必须再次执行扫描,否则DSPS_Central可以使用先前的扫描直接连接到设备。报告 ??这该怎么做 ??

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨prasanth.velliyangiri,

嗨prasanth.velliyangiri,

如果您拥有第二个设备的公共BD地址,希望连接到您可以在使用App_easy_gap_start_connection_to_set()函数的情况下,可以在不扫描的情况下启动连接过程,并设置地址,地址类型和连接间隔。如果您没有地址并且需要扫描您应该向堆栈发出扫描命令获取地址,然后使用从扫描过程中获得的地址发出相同的连接命令。

谢谢mt_dialog.

prasanth.velliy ...
离线
最后一次露面:10个月前1年
加入:2016-02-18 12:18
嗨对话框

嗨对话框
感谢你的回复 ,
Q1:最初我的扫描报告由一个设备组成,经过一段时间,它包括所有可用设备,为什么??
这是因为uart打印延迟?或者我需要介绍一些延迟扫描所有可用设备吗?
我使用这种格式来打印整个扫描报告lyk接近监视器
for(i = 0;一世

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨prasanth.velliyangiri,

嗨prasanth.velliyangiri,

扫描仪当时扫描一个频道并逐个报告设备,并在user_on_adv_report_ind中打印它们,如果这是您的意思,则不会在一个user_od_adv_report_ind调用上获取两个设备。

谢谢mt_dialog.

prasanth.velliy ...
离线
最后一次露面:10个月前1年
加入:2016-02-18 12:18
你好

你好
感谢你的回复。
现在我的扫描报告由多体设备地址(6)组成,但如何与所有六个设备进行连接。
在Proximity_Monitor项目中,连接基于用户在控制台App => Void App_Connect(未签名Char Indx)中选择的索引值。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨prasanth.velliyangiri,

嗨prasanth.velliyangiri,

您应该修改代码,并在第一个连接后,您应该重新启动扫描过程。在广告指示,您可以决定您愿意连接哪个设备,选中BD地址或广告字符串,如果它匹配预定义的字符串,则会发出连接命令。

谢谢mt_dialog.

prasanth.velliy ...
离线
最后一次露面:10个月前1年
加入:2016-02-18 12:18
嗨对话框

嗨对话框

Q1:在设备1连接后执行的功能是什么,(Gapc_connection_req => app_on_connection => prf_enable => ???),
Q2:在哪个函数中,我必须添加扫描_start以连接到设备2 ??(它是内部=> gapm_cmp_evt_handler ???)
Q3:我想连接到已知的BLE设备(6)列表,如何存储BLE地址,所以我可以在连接时使用它???
谢谢

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨prasanth.velliyangiri,

嗨prasanth.velliyangiri,

Q1:在获取广告留言后,在主机侧,连接请求是发送的,并且在建立连接时,将磁带_CONC_CONCED_REQ_IND_HANDLER()命中和A确认消息发送给GAPC任务。之后在调用连接回调之后,在该回调中禁用连接计时器,并且主机使用app_prf_enable()函数启动发现过程(在发现过程中调用的一些函数,当用户_sps_enable在启动时启动gattc_disc_cmd - 可以在rw_ble_gatt_is中找到有关这些消息的信息)。因此,在发现您的时候,已连接已连接,并且正在调用发现功能以重新调用对等设备的服务。此外,MTU Exchange函数也被调用。此外,由于对等设备发出更新请求,您还应该看到eAvc_param_update_req_ind_handler()也在执行。

Q2:您可以在连接完成回调函数中重新启动扫描。

Q3:当您有一个接收到广告字符串时,您可以通过该阵列具有所有可用预定义地址和循环的数组。

谢谢mt_dialog.

prasanth.velliy ...
离线
最后一次露面:10个月前1年
加入:2016-02-18 12:18
嗨对话框

嗨对话框
谢谢你回复..

Q2:连接完整回电?在DSP中,我看到了user_on_scanning_Completed
Q3:struct odginn_devices
{
//已知对等地址
struct bd_addr peer_addr;
};

structed_devices已知_device [] = {
{“\ xa1 \ xd2 \ x00 \ xca \ xea \ x80”},
{“\ xa2 \ xd2 \ x00 \ xca \ xea \ x80”},
};
在比较这个已知的设备地址时,我收到错误,错误在哪里..
if(bdaddr_compare(&app_env_vp.devices [i] .adv_addr.addr,&hypern_device [connect_to_device] .peer_addr))

谢谢...

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨prasanth.velliyangiri,

嗨prasanth.velliyangiri,

Q2:.app_on_connection = user_on_connection,您的设备已完成与第一个设备的连接,并开始扫描第二设备。

Q3:我不认为这太多了调试,你必须检查参数中的值并检查什么可能出错,比较失败,你也可以使用memcmp()来比较两者BD地址。bdaddr_compare()没有任何特殊的东西,它只是通过两个数组运行并逐个检查元素。也许两个地址中的一个是反转的。

谢谢mt_dialog.

prasanth.velliy ...
离线
最后一次露面:10个月前1年
加入:2016-02-18 12:18
嗨对话框,

嗨对话框,

我正在研究DSPS项目。我正在尝试用单个主机连接多个从站(2)。

当我开始使用扫描扫描user_scan_start()函数时,即使我启用了扫描重复过滤策略,我也会多次获得同一设备的广告报告。如何解决这个问题?

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨prasanth,

嗨prasanth,

这样的原因是,DSP在扫描时,它使用的模式是GAP_GEN_DISCOVERY,当在该模式下执行扫描时,过程自动过期,DSP发送新的扫描命令以便重新启动扫描。因此,在使用重复过滤器启用的扫描命令期间,您不应从同一设备获取其他广告活动,但是当您重新启动扫描这些广告事件时,将再次弹出。您可以实现一个额外的缓冲区,该缓冲区将在以前的扫描期间保存设备,或者您可以将GAP_GEN_DISCOVERY模式更改为GAP_OBSERVER_MODE。使用GAP_OBSERVER_MODE扫描永远不会超时,所以您不必通过发送新命令再次开始扫描,因此您不会从已全部报告的设备中获取其他指示,但您将获得所有类型的广告字符串(无向,不可连接,有限等等)。

谢谢mt_dialog.