你好MT_dialog,
当广告操作启动时,可以使用app_easy_gap_advertise_stop()函数停止它。当广告操作真正停止时,将调用函数user_app_adv_undirect_complete()。
问题:1.当设备进入连接模式时,谁会停止广告操作?2.为什么在本例中没有调用函数user_app_adv_undirect_complete() ?
谢谢你快速的回答。
嗨AngelT,
1.当有连接时,堆栈停止发布过程。
2.有一个回调执行,但是在SDK中,消息的状态被检查,如果状态是GAP_ERR_CANCELED,则重新发布开始,当由于连接而停止发布时,状态参数的值为GAP_ERR_NO_ERROR (0x00),如果在if(status == GAP_ERR_CANCELED)处放置一个断点,就应该能够看到这一点。
由于MT_dialog
嗨MT_dialog,
谢谢你的回答。我测试它。它能正常工作。如果我将条件改为If ((status == GAP_ERR_CANCELED) || (status == GAP_ERR_NO_ERROR)),我是否可以确定只有当广告操作停止,设备进入连接模式时,才会返回状态GAP_ERR_NO_ERROR ?
你好,天使,
如果您想要一个设备已连接的指示,您可以确定设备是否通过.app_on_connection回调或检查APP_TASK的状态(ke_state_get())。尽管我不认为会有任何其他情况下,广告将停止并返回到应用程序GAP_ERR_NO_ERROR,而不是一个有效的连接。我的意思是,任何其他函数将停止广告操作将返回一个不同的错误代码,停止广告的隐式调用将返回一个GAP_ERROR_CANCELED,错误参数的adv字符串将返回GAP_ERR_ADV_DATA_INVALID,等等。
谢谢你的回答。如果可能的话,还有一个问题。
为什么在所有示例项目中都有一个代码定期更新连接参数(例如,每10s),如果它们不是首选的,当主人决定接受或不接受这些连接参数?是否可能在连接开始时不接受这些参数,但在下一个连接参数更新请求时接受?如果我不接受连接参数,为什么我应该改变我的决定,在下一次请求中接受相同的参数?
提前感谢你的回答。
请不要在一个不相干的帖子上发布额外的问题,你总是可以为一个新的问题创建一个新的线程。
关于你的问题,在连接期间为参数更新设置的定时器不会在任何地方重新加载,请求只发送一次到主服务器,它不会周期性地发送请求。请求只发送一次,由主服务器决定是否接受从服务器指定的参数。当连接开始时,连接参数由主服务器设置,如果从服务器想要改变它们,他必须发送这种请求,如果参数被接受或不被接受,或者当主服务器将接受这种请求取决于主服务器fw。
谢谢你的回答。很抱歉弄错了。我将遵循这些建议为所有新帖子和新线程。
对你的反应。你完全正确。只有一件事是方便的。连接参数的更新是使用计时器完成/写入的。可以使用预定义的符号APP_PARAM_UPDATE_REQUEST_TO(值为1000或10s)来定义/更改时间间隔。我可以在函数user_app_connection()中直接发送连接参数更新请求,而不使用/启动计时器并推迟这个请求的传输吗?
再次感谢。
请查看下面的帖子:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
嗨AngelT,
1.当有连接时,堆栈停止发布过程。
2.有一个回调执行,但是在SDK中,消息的状态被检查,如果状态是GAP_ERR_CANCELED,则重新发布开始,当由于连接而停止发布时,状态参数的值为GAP_ERR_NO_ERROR (0x00),如果在if(status == GAP_ERR_CANCELED)处放置一个断点,就应该能够看到这一点。
由于MT_dialog
嗨MT_dialog,
谢谢你的回答。我测试它。它能正常工作。
如果我将条件改为If ((status == GAP_ERR_CANCELED) || (status == GAP_ERR_NO_ERROR)),我是否可以确定只有当广告操作停止,设备进入连接模式时,才会返回状态GAP_ERR_NO_ERROR ?
你好,天使,
如果您想要一个设备已连接的指示,您可以确定设备是否通过.app_on_connection回调或检查APP_TASK的状态(ke_state_get())。尽管我不认为会有任何其他情况下,广告将停止并返回到应用程序GAP_ERR_NO_ERROR,而不是一个有效的连接。我的意思是,任何其他函数将停止广告操作将返回一个不同的错误代码,停止广告的隐式调用将返回一个GAP_ERROR_CANCELED,错误参数的adv字符串将返回GAP_ERR_ADV_DATA_INVALID,等等。
由于MT_dialog
嗨MT_dialog,
谢谢你的回答。如果可能的话,还有一个问题。
为什么在所有示例项目中都有一个代码定期更新连接参数(例如,每10s),如果它们不是首选的,当主人决定接受或不接受这些连接参数?是否可能在连接开始时不接受这些参数,但在下一个连接参数更新请求时接受?如果我不接受连接参数,为什么我应该改变我的决定,在下一次请求中接受相同的参数?
提前感谢你的回答。
嗨AngelT,
请不要在一个不相干的帖子上发布额外的问题,你总是可以为一个新的问题创建一个新的线程。
关于你的问题,在连接期间为参数更新设置的定时器不会在任何地方重新加载,请求只发送一次到主服务器,它不会周期性地发送请求。请求只发送一次,由主服务器决定是否接受从服务器指定的参数。当连接开始时,连接参数由主服务器设置,如果从服务器想要改变它们,他必须发送这种请求,如果参数被接受或不被接受,或者当主服务器将接受这种请求取决于主服务器fw。
由于MT_dialog
嗨MT_dialog,
谢谢你的回答。很抱歉弄错了。我将遵循这些建议为所有新帖子和新线程。
对你的反应。你完全正确。只有一件事是方便的。连接参数的更新是使用计时器完成/写入的。可以使用预定义的符号APP_PARAM_UPDATE_REQUEST_TO(值为1000或10s)来定义/更改时间间隔。我可以在函数user_app_connection()中直接发送连接参数更新请求,而不使用/启动计时器并推迟这个请求的传输吗?
再次感谢。
嗨AngelT,
请查看下面的帖子:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
由于MT_dialog