你好mt_dialog,
当广告操作启动时,可以使用函数app_easy_gap_advertise_stop()停止它。当广告操作真的停止时,将调用函数user_app_adv_undirect_complete()。
问题:1.当设备进入停止广告操作的连接模式时?2.为什么在这种情况下,函数user_app_adv_undirect_complete()未调用?
谢谢你的快速答案。
嗨舞厅,
1.当存在连接时,堆栈停止广告程序。
2.有一个回调执行,但在SDK中,检查消息的状态,如果状态是GAP_ERR_CANCELED,则重新广告开始,当由于连接而停止广告时,状态参数具有GAP_ERR_NO_ERROR的值(0x00),如果在if(status == gap_err_canceled)下放置断点,则应该能够看到此问题。
谢谢mt_dialog.
嗨mt_dialog,
谢谢你的答案。我测试了它。它正常工作。如果我将条件更改为((status == gap_err_canceled)||(status == gap_err_no_error)),我可以确定在这种情况下,只有停止广告操作并进入设备时,才会返回状态GAP_ERR_NO_ERROR在连接模式?
嗨天使T,
如果您想要一个指示您的设备已连接,您可以知道该设备是否通过.app_on_connection回调或通过检查app_task(ke_state_get())的状态。虽然我不认为广告将停止并返回除了有效连接之外的应用程序GAP_ERR_NO_ERROR之外的任何其他情况。我的意思是任何其他函数都会停止广告操作将返回不同的错误代码,隐式调用停止广告的局面会返回GAP_ERROR_CANCELED,错误的参数到adv字符串将返回gap_err_adv_data_invalid等。
谢谢你的答案。如果可能的话,一个额外的问题。
为什么在所有示例项目中都有一个代码来定期更新连接参数(例如,每10秒)如果它们不是优选的当主机构接受或不接受这些连接参数时?如果在连接的开头,则可以接受这些参数,但在下一个连接参数更新请求上被接受?如果我不接受连接参数,为什么我应该更改我的决定接受下一个请求的相同参数?
提前谢谢答案。
请不要在无关帖子上发布其他问题,您可以随时为新问题创建一个新的线程。
关于您的问题,在连接参数更新期间设置的计时器在任何地方都没有重新加载,请求发送到主设备一次,它不会定期发送请求。如果他将接受或拒绝从设备指示的参数,则只能发送一次并发送到主服务器。当连接开始连接参数由主站设置,如果从站想要更改它们,他必须发送此类请求,如果参数被接受或者不是或者当主机将接受此类请求取决于大师FW。
感谢您的回答。对不起这个错误。我将遵循所有新帖子的这些建议。
关于你的回复。你是绝对正确的。只有一件事是方便的。使用计时器进行/写入连接参数的更新。可以使用预定义的符号app_param_update_request_to(值1000或10s)来定义/更改时间间隔。我可以直接在函数user_app_connection()中发送连接参数更新请求,无需使用/启动计时器并推迟此请求的传输?
再次感谢。
请检查下面的职位:
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
嗨舞厅,
1.当存在连接时,堆栈停止广告程序。
2.有一个回调执行,但在SDK中,检查消息的状态,如果状态是GAP_ERR_CANCELED,则重新广告开始,当由于连接而停止广告时,状态参数具有GAP_ERR_NO_ERROR的值(0x00),如果在if(status == gap_err_canceled)下放置断点,则应该能够看到此问题。
谢谢mt_dialog.
嗨mt_dialog,
谢谢你的答案。我测试了它。它正常工作。
如果我将条件更改为((status == gap_err_canceled)||(status == gap_err_no_error)),我可以确定在这种情况下,只有停止广告操作并进入设备时,才会返回状态GAP_ERR_NO_ERROR在连接模式?
嗨天使T,
如果您想要一个指示您的设备已连接,您可以知道该设备是否通过.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,
谢谢你的答案。如果可能的话,一个额外的问题。
为什么在所有示例项目中都有一个代码来定期更新连接参数(例如,每10秒)如果它们不是优选的当主机构接受或不接受这些连接参数时?如果在连接的开头,则可以接受这些参数,但在下一个连接参数更新请求上被接受?如果我不接受连接参数,为什么我应该更改我的决定接受下一个请求的相同参数?
提前谢谢答案。
嗨舞厅,
请不要在无关帖子上发布其他问题,您可以随时为新问题创建一个新的线程。
关于您的问题,在连接参数更新期间设置的计时器在任何地方都没有重新加载,请求发送到主设备一次,它不会定期发送请求。如果他将接受或拒绝从设备指示的参数,则只能发送一次并发送到主服务器。当连接开始连接参数由主站设置,如果从站想要更改它们,他必须发送此类请求,如果参数被接受或者不是或者当主机将接受此类请求取决于大师FW。
谢谢mt_dialog.
嗨mt_dialog,
感谢您的回答。对不起这个错误。我将遵循所有新帖子的这些建议。
关于你的回复。你是绝对正确的。只有一件事是方便的。使用计时器进行/写入连接参数的更新。可以使用预定义的符号app_param_update_request_to(值1000或10s)来定义/更改时间间隔。我可以直接在函数user_app_connection()中发送连接参数更新请求,无需使用/启动计时器并推迟此请求的传输?
再次感谢。
嗨舞厅,
请检查下面的职位:
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
谢谢mt_dialog.