亲爱的先生们:,
我正在为SDK5.0.3中的信标创建一个Farmware。
我设计的FW每隔几秒就会改变一部分广告数据。
FW将暂时停止运营,但FW将停止广告。
我不想那样。
当FW停止发布时,在user_peripheralc的user_app_adv_undirect_complete()中收到了GAP_ERR_NO_ERROR或GAP_ERR_COMMAND_DISALLOWED状态。
(通常,它会收到一个GAP\u ERR\u cancelled。)
此外,当广告传输停止时,user_catch_rest_hndl()将进行处理。
1.您知道GAP_ERR_NO_ERROR和GAP_ERR_COMMAND_DISALLOWED发生的原因吗?
我只看到了GAP_ERR_NO_ERROR和GAP_ERR_COMMAND_DISALLOWED。
这两个错误总是同时发生。
2.我不想停止做广告,有没有更好的办法?
我对FW做了以下措施。
1.如果FW收到了一个非gap_err_canceled报文,FW将停止发布。
(FW将使用adv_data_update_timer_cb()处理。)
2.此时,FW在user_app_adv_start()中发布恢复。
我在FW做这个翻新,它被允许运行10小时。
出现GAP_ERR_COMMAND_DISALLOWED,但不会停止播发。
致以最亲切的问候。
设备:
嗨Coral0310,
我假设您是在完全托管模式下运行的。您可以检查SDK5中的barebone示例,该示例完全满足您的要求,每当内核计时器过期时,它都会播发并更改播发字符串。为了更改播发字符串,没有其他方法,您必须停止播发,更改播发字符串,然后重试再次发出播发命令。当您终止播发过程时,您应该得到一个GAP\u ERR\u取消,例如,如果您在准备好播发时发出了一个播发命令,那么您将得到一个GAP\u ERR\u不允许的命令。
谢谢你的对话
嗨,对话组的工作人员,
谢谢你的回复。
我将检查SDK5中的基本示例。
我想回顾一下我的项目代码。
非常感谢。
亲爱的先生们:,
>当您终止播发过程时,您应该得到一个GAP\u ERR\u取消,如果您在>您准备好播发时开始播发,那么您将得到一个GAP\u ERR\u命令,该命令不被允许。
我有一个问题。
我想知道调用user_app_adv_undirect_complete()的条件。
我认为user_app_adv_undirect_complete()是在FW停止广告后调用的。
但是,我对自己的思维没有信心。
请告诉我调用user_app_adv_undirect_complete()的条件。
非常感谢。
嗨Coral0310,
如果你在做广告,你调用app_easy_gap_advertise_stop()它发出GAPM_CANCEL_CMD以取消正在进行的空中操作,这将取消广告程序。当GAPM_CANCEL_CMD完成时(意味着您将不再发布任何消息)GAPM_CANCEL_CMD将给出一个GAPM_CMP_EVT(完整事件),作为正在进行的操作的取消已经完成的指示。GAPM_CMP_EVT将由gapm_cmp_evt_handler(),关于已完成的操作,它将转到相应的案例,然后相应的案例将调用相应的回调,在广告取消的情况下,将调用映射到自定义回调的app_on_adv_undirective_complete回调。
谢谢你的对话
亲爱的员工对话框,
谢谢你的回复。
>>如果您正在发布并调用app_easy_gap_advertise_stop(),它会发出GAPM_CANCEL_CMD来取消正在进行的空中操作,这将取消发布过程。
我理解“应用程序在adv上完全回调”
如果FW不运行应用程序\u easy\u gap\u advertive\u stop(),则不会调用。
(如果我的想法是错的,请告诉我。)
我再次检查了我的项目的运行情况。
a、 在正常情况下,,
"app_on_adv_undirect_complete callback"在app_easy_gap_advertise_stop()被执行后被调用。
b.在GAP_ERR_COMMAND_DISALLOWED情况下,
在调用"app_on_adv_undirect_complete callback "之前,没有执行app_easy_gap_advertise_stop()。
我不明白发生这种情况的原因。
如果你知道什么,请告诉我。
非常感谢。
亲爱的员工对话框,
对不起,我问错问题了。
>>我假设您在完全托管模式下运行。
请让我了解更多关于“完全托管模式”的信息。
今天,我被允许在SDK5中运行“blue_app_barebone”的例子,然后出现了GAP_ERR_NO_ERROR错误,FW被停止发布。
(除了发布一个日志外,我没有做任何更改。)
我的项目和“blue_app_barebone”的例子不同,但停止的方式非常相似。
我认为我的项目还没有进入“完全托管模式”。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
完全托管模式意味着应用程序运行在580内部处理器中,而在完全嵌入式模式中,应用程序运行在外部处理器上。你在最基本的例子中看到的GAP_ERR_NO_ERROR是无错误状态,你应该得到当设备成功重置时,GAP_ERR_NO_ERROR和当设备成功完成配置时,另一个类似的消息。
谢谢你的对话
谢谢你的回复。
1.
>>完全托管模式意味着应用程序在580内部处理器中运行,在完全嵌入式模式下,应用程序在外部处理器上运行。
对不起,我不太明白…
如何判断是内部处理器还是外部处理器?
希望有帮助。
我正在使用TypeZY的开发工具包(由村田公司提供)。
TypeZY正在通过UART从MDK-ARM下载FW至。
2.
>>你在barebone例子中看到的GAP_ERR_NO_ERROR状态,当设备成功重置时,你应该得到一个GAP_ERR_NO_ERROR,当设备成功完成配置时,你应该得到另一个类似的消息。
非常感谢。
我能理解GAP\u ERR\u NO\u ERROR。
但是,我不理解GAP_ERR_COMMAND_DISALLOWED。
据我了解,如果FW不执行app_easy_gap_advertise_stop()命令,“app_on_adv_undirect_complete callback”不会被调用。
(如果我的想法是错的,请告诉我。)
我再次检查了我的项目的运行情况。
a、 在正常情况下,,
"app_on_adv_undirect_complete callback"在app_easy_gap_advertise_stop()被执行后被调用。
b.在GAP_ERR_COMMAND_DISALLOWED情况下,
在调用"app_on_adv_undirect_complete callback "之前,没有执行app_easy_gap_advertise_stop()。
我不明白发生这种情况的原因。
如果你知道什么,请告诉我。
非常感谢。
嗨Coral0310,
1.如果您有一个外部pc代码,并通过接口(例如UART)与580通信,以便发送命令(播发、连接等),那么您是在完全嵌入式配置下运行的,如果您的程序仅在580上运行,则您具有完全托管的配置(大多数对话框项目都是这样)。
2.是的,如果你不调用app_easy_gap_advertise_stop(), app_on_adv_undirect_complete()回调函数将不会被调用。关于不允许的命令,我已经提到,不应该在正常操作中调用,它是返回时,你发出开始广告,在停止正在进行的广告程序。在app_ble_barebone我没有看到这个消息发生。请检查这个例子。
谢谢你的对话
亲爱的员工对话框,
谢谢你的回复。
谢谢。
我在全嵌入式模式下运行。
2.谢谢。
我将重新检查我的项目和应用程序。
我想首先解决GAP_ERR_NO_ERROR。
即使在GAP_ERR_NO_ERROR发生之后,
我想继续广播广告。
请让我好好过。
当有一个样本项目会有帮助时,我很高兴。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
没有问题,只要遵循简单的例子和检查程序使用的顺序启动和设置设备,然后改变广告字符串,使适当的比较与您的程序。
谢谢你的对话
亲爱的员工对话框,
谢谢你的回复。
我再次检查了FW的运行情况。
GAP_ERR_NO_ERROR状态在它被引用到“app_on_connection回调”调用后显示。
我想让" app_on_connection callback"不发生,
因为我的FW不需要是连接。
有什么好办法吗?
(我正在考虑将广告类型从“非直接”更改为“非连接”。)
非常感谢。
嗨Coral0310,
如果您不想在外围设备上建立连接,可以将设备设置为不可连接,您可以查看SDK3上的信标参考设计,该设计以不可连接模式进行广告宣传。您可以在支持站点的参考设计部分找到信标。
谢谢你的对话
亲爱的员工对话框,
谢谢你的回复。
我有两个问题。
1.抱歉,我使用的是SDK5.0.3。
是否有一个样本对SDK5有帮助?
我想我只是改变一下环境。User_config.h)或advertise start方法。
例如,请告诉我如何将“ble_app_barebone sample”的广告模式更改为“non-connectable mode”。
2.我正在选择SDK5。
然而,我无法决定SDK5或SDK3的选择。
目前,你认为哪一个是更好的选择?
如果继续支持SDK3,我可能会考虑使用SDK3。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
1)没有任何官方例子灯塔SDK 5在门户,您可以更改non-connectable user_config.h文件部分,使你的设备non-connectable准系统的例子使用app_easy_gap_non_connectable_advertise_start()函数,以广告开始。
2)仍然支持SDK3,但对话建议使用SDK5进行新设计,因为它更容易使用,而且大多数漏洞已经修复。
谢谢你的对话
谢谢你的回复。
1.
>你可以通过使用app_easy_gap_non_connectable_advertise_start()函数来改变非连接部分的user_config.h文件,并在barebone示例中使你的设备不可连接。
请让我更多关于“user_config.h”文件。
我想知道在“user_config.h”文件中要修改的值。
非常感谢。
嗨Coral0310,
在user_config.h文件中没有你应该改变的值,处理非连接广告的结构是user_non_connectable_advertise_conf,你可以配置interval,等等,之后你需要调用app_easy_gap_non_connectable_advertise_get_active();和app_easy_gap_non_connectable_advertise_start ();以启动非连接模式的广告。
谢谢你的对话
谢谢你的回复。
我一直在使用“ble_app_barebone”示例。
我更改了user_barebone.c的代码。
/ /之前
无效用户\应用\高级\启动(无效)
{
…
struct gapm_start_advertise_cmd * cmd;
cmd=app_easy_gap_undirected_adverting_get_active();
…
app_easy_gap_undirected_advertise_start ();
}
//之后
无效用户\应用\高级\启动(无效)
{
…
struct gapm_start_advertise_cmd * cmd;
cmd = app_easy_gap_non_connectable_advertise_get_active ();
…
app_easy_gap_non_connectable_Advertised_start();
}
它不能被构建,因为app_easy_gap_non_connectable_advertise_get_active()
没有定义。
我已经定义了应用程序\u easy\u gap\u non\u connectable\u Advertised\u get\u active()
“app_easy_gap.h”文件。
(我指的是app_easy_gap_undirected_advision_get_active())
建造完成了。但是,FW是不能发布更新的,发布停止。
也许,我错了如何定义app\u easy\u gap\u non\u connectable\u advertive\u get\u active()。
有什么好办法吗?
(请给我一些代码。)
非常感谢。
嗨Coral0310,
最有可能的情况是,您确实做了广告,但是您的广告停止了,因为停止广告的计时器被触发,因此没有捕获不可连接广告结尾的默认回调,但是您可以使用catch rest函数实现一个回调,请按照下面的链接获取应实现的代码:
http://support.dialog-semiconductor.com/advertisement-complete-callback-..。
谢谢你的对话
嗨,对话组的工作人员,
谢谢你的回复。
它能够继续为FW做广告。
今天,我做了一个测试,但没有问题。
也许,我认为这件事已经解决了。
非常感谢。