嗨对话框,
我的自定义应用程序应同时宣传并启动连接,但只有广告工作。代码片段:BLE_GAP_ROLE_SET(GAP_PERITALAL_ROLE | GAP_CENTRAL_ROLE);......ble_gap_adv_start(gap_conn_mode_undirected);ble_gap_connect(&bd_addr,&cp);
可能是什么问题呢?
谢谢arm
嗨Arminl,
我担心这样的东西是不可能的,并发中央/外围都有有效的仅在连接时(检查MultiLink Demo),您不会在同时通告和扫描/连接。
谢谢mt_dialog.
嗨mt_dialog,
好的,这是一个问题,因为应用程序应该始终能够连接到中央或外围设备。所以我必须交替地调用广告和扫描过程,也许是一个计时器。你能给我一个线索,如何解决这个问题?
是的,您应该能够这样做,可以通过免费的RTOS定时器更改稳定间隔的扫描和广告,只需设置您的计时器和回调或计时器停止广告。广告已完成后(您获得广告完成回调,您可以开始扫描或启动连接)。请记住,扫描是自动终止终止的过程,因此如果您愿意,您可以使用计时器测量扫描过程,扫描将在8秒内自动超时。
该过程如下:
我已经实现了类似于您的解释的过程。
在应用程序中连接到中央(连接间隔30ms)和连接过程仍然有效(用扫描窗口30ms),应用有时似乎崩溃。已停止与中央的连接,并停止连接过程。可能是什么问题呢?如果在扫描窗口期间发生连接事件,是否存在问题?
因此,您在双模式Gap_peripheral_role中有设备GAP_Central_Role和扫描和广告之间的切换,以及当您从手机启动连接时,您会看到有时设备崩溃?
该设备为了连接它需要两个广告消息,因此如果您的手机在68x开始扫描之前接收到最后一个adv消息,则手机将接收广告消息并开始连接过程。连接采购将继续,直到68x交换机回到广告模式,然后连接将完成。然后,如果您继续扫描或宣传并且您仍然连接68倍设备将尝试安排所有事件。为了调试您所看到的内容,您将不得不附加调试器并检查设备摊位的位置。至少在我身边,复制您的设置(如果我错了设置,请纠正我)我没有看到默认连接左右48ms的默认连接(中央定义连接的连接间隔,除非连接参数更新是发出的,再次中央将决定它是否会接受参数)。
这是一个ios手机。虽然我的应用程序连接到电话(每〜30ms的连接事件),但我的应用程序继续扫描过程连接到外围设备(扫描窗口30ms)。在这种情况下,我的申请有时会崩溃。我将使用我的应用程序摊位的调试器检查它。
嗨Arminl,
我担心这样的东西是不可能的,并发中央/外围都有有效的仅在连接时(检查MultiLink Demo),您不会在同时通告和扫描/连接。
谢谢mt_dialog.
嗨mt_dialog,
好的,这是一个问题,因为应用程序应该始终能够连接到中央或外围设备。
所以我必须交替地调用广告和扫描过程,也许是一个计时器。
你能给我一个线索,如何解决这个问题?
谢谢
arm
嗨Arminl,
是的,您应该能够这样做,可以通过免费的RTOS定时器更改稳定间隔的扫描和广告,只需设置您的计时器和回调或计时器停止广告。广告已完成后(您获得广告完成回调,您可以开始扫描或启动连接)。请记住,扫描是自动终止终止的过程,因此如果您愿意,您可以使用计时器测量扫描过程,扫描将在8秒内自动超时。
该过程如下:
谢谢mt_dialog.
嗨mt_dialog,
我已经实现了类似于您的解释的过程。
在应用程序中连接到中央(连接间隔30ms)和连接过程仍然有效(用扫描窗口30ms),应用有时似乎崩溃。已停止与中央的连接,并停止连接过程。
可能是什么问题呢?
如果在扫描窗口期间发生连接事件,是否存在问题?
谢谢
arm
嗨Arminl,
因此,您在双模式Gap_peripheral_role中有设备GAP_Central_Role和扫描和广告之间的切换,以及当您从手机启动连接时,您会看到有时设备崩溃?
该设备为了连接它需要两个广告消息,因此如果您的手机在68x开始扫描之前接收到最后一个adv消息,则手机将接收广告消息并开始连接过程。连接采购将继续,直到68x交换机回到广告模式,然后连接将完成。然后,如果您继续扫描或宣传并且您仍然连接68倍设备将尝试安排所有事件。为了调试您所看到的内容,您将不得不附加调试器并检查设备摊位的位置。至少在我身边,复制您的设置(如果我错了设置,请纠正我)我没有看到默认连接左右48ms的默认连接(中央定义连接的连接间隔,除非连接参数更新是发出的,再次中央将决定它是否会接受参数)。
谢谢mt_dialog.
嗨mt_dialog,
这是一个ios手机。虽然我的应用程序连接到电话(每〜30ms的连接事件),但我的应用程序继续扫描过程连接到外围设备(扫描窗口30ms)。在这种情况下,我的申请有时会崩溃。
我将使用我的应用程序摊位的调试器检查它。
谢谢
arm