尊敬的先生们:,
我正在SDK5.0.3中为灯架创建一个农场。
我设计了FW,每隔几秒钟改变广告数据的一部分。
一汽大众将暂时停止运营,但一汽大众将停止广告。
我不想那样。
当FW停止广告时,在User_PeripherAl.cn的User_App_Adv_Undirect_Complete()中,它已接收了一个GAP_ERR_NO_ERROR或GAP_ERR_COMMAND_DISALLED作为状态。
(通常,它会收到一个GAP\u ERR\u cancelled。)
另外,当广告停止传输时,user_catch_rest_hndl()正在处理。
1.你知道GAP_ERR_NO_ERROR和GAP_ERR_COMMAND_DISALLED发生的原因吗?
我没有看到除了GAP_ERR_NO_ERROR和GAP_ERR_COMMAND_DISALLED之外。
这两个错误总是发生在同一时间。
我不想停止广告。有更好的办法吗?
我对FW做了以下措施。
1.如果FW收到非GAP_ERR_CANCELED,FW将停止广告。
(FW将使用ADV_DATA_UPDATE_TIMER_CB()的处理。)
2.然后,在user_app_adv_start()中恢复FW正在恢复。
我在FW中进行这种翻新,它被允许运行10小时。
GAP\u ERR\u COMMAND\u DISALLOWED发生,但播发未停止。
此致。
设备:
嗨Coral0310,
我假设您在完全托管模式下运行。您可以检查SDK5中的barebone示例,它完全执行您想要的操作,每当内核计时器结束时,它就会播发并更改播发字符串。为了改变广告串没有其他办法,你必须停止广告,改变广告串,并再次发出广告命令。当您终止播发过程时,您应该得到GAP\u ERR\u cancelled,例如,如果您在allready播发时发出播发命令,那么您将得到GAP\u ERR\u command DISALLOWED。
谢谢你的对话
嗨,Dialog员工,
谢谢你的回复。
我将检查SDK5中的鞍骨筒。
我想回顾一下我的项目代码。
非常感谢。
尊敬的先生们:,
>当你终止广告程序时,你应该得到一个GAP\u ERR\u cancelled,如果你在>你准备好广告时开始广告,那么你将得到一个GAP\u ERR\u COMMAND\u DISALLOWED。
我有个问题。
我想知道调用user\u app\u adv\u undirect\u complete()的条件。
我认为在FW停止广告之后调用user_app_adv_undirect_complete()。
但是,我对自己的思想没有信心。
请告诉我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\u cmp\u evt\u handler(),对于已完成的操作,它将转到相应的case,然后相应的case将调用相应的回调,在广告取消的情况下,将调用app\u on\u adv\u undirect\u complete回调,该回调映射到您的自定义回调。
谢谢你的对话
亲爱的对话人员,
谢谢你的回复。
>>如果您是广告和调用app_easy_gap_advertise_stop()它会发出gapm_cancel_cmd以取消换流运输,这将取消广告程序。
我知道“app\u on\u adv\u indirect\u complete callback”
如果FW不运行app\u easy\u gap\u advertized\u stop(),则不调用。
(如果我的思想是错的,请告诉我。)
再一次,我检查了我的项目的操作。
答。在正常情况下,
在执行APP_EASY_GAP_ADVERTES_STOP()之后,已调用“app_on_adv_undirect_complete回调”。
湾在GAP_ERR_COMMAND_DISALLED的情况下,
在调用“app_od_undirect_complete回调”之前,在调用“app_on_adv_undirect_complacke之前,执行此案例并不具有app_easy_gap_advertise_stop()。
我不明白为什么会这样。
如果你知道的话,请告诉我。
非常感谢。
亲爱的对话人员,
对不起,我是错误的问题。
>>我假设您在完全托管模式下运行。
请让我了解更多关于“完全托管模式”。
今天,我被允许在SDK5中运行“Blue_App_BareBone”示例,然后发生了Gap_Err_No_Error错误,FW已停止宣传。
(我没有做出更改以外的是发出登录。)
我的项目和“blue\u app\u barebone”的例子不同,但是停站的方式非常相似。
我认为我的项目没有到“完全托管模式”。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
完全托管的模式意味着应用程序在580内部处理器中运行,在完全嵌入模式中,应用程序在外部处理上运行。你在鞍骨的eAcke上看到的gap_err_no_error没有错误状态,你应该得到一个GAP_ERR_NO_ERROR当设备已成功重置并且当设备已成功完成配置时,设备已成功重置和其他类似的消息。
谢谢你的对话
谢谢你的回复。
1.
>>完全托管模式意味着应用程序在580内部处理器中运行,在完全嵌入式模式下,应用程序在外部处理器上运行。
请原谅我。不太明白…
如何判断是内部处理器还是外部处理器?
希望有所帮助。
我使用的是TypeZY(村田公司)的开发工具包。
TypeZY正在通过UART从MDK-ARM下载固件到。
2.
>>您在鞍骨筒示例中看到的Gap_err_no_error无错误状态,当设备已成功重置时,您应该得到一个Gap_Err_No_Error,并且当设备已成功完成配置时,该设备已成功重置和其他类似的消息。
非常感谢。
我能理解GAP\u ERR\u NO\u ERROR。
但是,我不了解GAP_ERR_COMMAND_DISALDED。
我了解“app_od_adv_undirect_complete回调”如果fw不运行app_easy_gap_advertise_stop(),则不会调用。
(如果我的思想是错的,请告诉我。)
再一次,我检查了我的项目的操作。
答。在正常情况下,
在执行APP_EASY_GAP_ADVERTES_STOP()之后,已调用“app_on_adv_undirect_complete回调”。
湾在GAP_ERR_COMMAND_DISALLED的情况下,
在调用“app_od_undirect_complete回调”之前,在调用“app_on_adv_undirect_complacke之前,执行此案例并不具有app_easy_gap_advertise_stop()。
我不明白为什么会这样。
如果你知道的话,请告诉我。
非常感谢。
嗨Coral0310,
1.如果您有一个外部pc代码,并通过一个接口(例如UART)与580通信,以便发送命令(播发、连接等),那么您是在完全嵌入式配置下运行的,如果你的程序只在580上运行,那么你有一个完全托管的配置(大多数对话框项目都是这样)。
2.是的,如果您不调用app_easy_gap_advertise_stop()则不应调用app_on_add_undirect_complete()回调。关于在正常操作中不应调用我已提到的命令,在正常操作中不应调用,并且在停止正在进行的广告过程之前发出启动时返回。在app_ble_barebone中我没有看到此消息发生。请检查该示例。
谢谢你的对话
亲爱的对话人员,
谢谢你的回复。
1.谢谢。
我以完全嵌入的模式运行。
2.谢谢。
我会重新检查我的项目和应用程序。
我想先解析Gap_err_no_error。
即使在发生了Gap_Err_No_Error之后,
我想继续广播广告。
请给我一个好方法。
当有一个有助于的示例项目时,我很高兴。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
没有问题,只需遵循鞍骨子示例并检查顺序使用的过程,然后设置设备,然后更改广告字符串,使合适的比较与您的程序进行比较。
谢谢你的对话
亲爱的对话人员,
谢谢你的回复。
我再次检查了FW的运行情况。
在调用“app_on_connection回调”之后显示Gap_err_no_error状态。
我想制作“app_on_connection回调”,没有发生,
因为我的FW不需要连接。
有什么好办法吗?
(我正在考虑将广告类型从“无向”更改为“无连接”。)
非常感谢。
嗨Coral0310,
如果你不想连接你的外设,把你的设备非连接是一种方式,你可以看看信标参考设计的SDK3上的广告在非连接模式。您可以在支持站点的参考设计部分找到信标。
谢谢你的对话
亲爱的对话人员,
谢谢你的回复。
我有两个问题。
1.Sorry,我正在使用SDK5.0.3。
SDK5中是否有有用的示例?
我想我只是更改设置(例如user_config.h)或广告启动方法。
例如,请让我如何将“BLE_APP_BAREBONE样本”的广告模式更改为“不可连接模式”。
我选择了SDK5。
但是,我无法决定SDK5或SDK3的选择。
目前,你认为哪一个是更好的选择?
如果SDK3的支持继续,我可能会考虑使用SDK3。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
1)在门户网站上没有任何官方信标示例,您可以在不可连接的部分中更改user_config.h文件,并使用app_easy_gap_non_connectable_advertise_start()函数使您的设备不可连接。为了开始广告。
2)仍然支持SDK3,但对话框建议新设计使用SDK5,因为它更容易使用,并且大多数错误都是固定的。
谢谢你的对话
谢谢你的回复。
1.
>您可以在非可连接部分中更改user_config.h文件,并通过使用app_easy_gap_non_connectable_advertise_start()函数以启动广告,使您的设备不可连接。
请告诉我关于“user_config.h”文件的更多信息。
我想知道要在“user_config.h”文件中要修改的值。
非常感谢。
嗨Coral0310,
没有值您应该在user_config.h文件中更改,处理不可连接的广告的结构是user_non_connectable_advertise_conf,您可以配置间隔等,然后在您需要调用app_easy_gap_non_connectable_advertise_get_active();和app_easy_gap_non_connectable_advertise_start();为了开始在不可连接的模式下进行广告。
谢谢你的对话
谢谢你的回复。
我一直在使用“BLE_APP_BAREBONE”示例。
我更改了用户\u barebone.c的代码。
//前
void user\u app\u adv\u start(无效)
{
…
struct gapm_start_advertise_cmd * cmd;
cmd=app_easy_gap_undirected_advertise_get_active();
…
app_easy_gap_undircated_advertise_start();
}
//之后
void user\u app\u adv\u start(无效)
{
…
struct gapm_start_advertise_cmd * cmd;
cmd = app_easy_gap_non_connectable_advertise_get_active();
…
app_easy_gap_non_connectable_advertise_start();
}
它无法构建,因为app_easy_gap_non_connectable_advertise_get_active()
没有定义。
我已经定义了应用程序\u easy\u gap\u non\u connectable\u advertise\u get\u active()
到“app_easy_gap.h”文件。
(我指的是应用程序\u easy\u gap\u undirected\u advertise\u get\u active()。)
建立来了。但是,FW无法宣传更新,广告停止。
也许,我错了如何定义app\u easy\u gap\u non\u connectable\u advertive\u get\u active()。
有什么好办法吗?
(我想要一些代码。)
非常感谢。
嗨Coral0310,
很可能您确实进行了播发,但您的播发停止了因为停止播发的计时器已触发,因此没有用于捕获不可连接的播发结尾的默认回调,但您可以使用catch rest函数实现一个回调,请按照下面的链接获取应实现的代码:
http://support.dialog-semicondiondiondum/aadvertisement-complete-callback -...
谢谢你的对话
嗨,Dialog员工,
谢谢你的回复。
它能够继续向FW做广告。
今天,我做了一个测试,但是没有问题。
也许,我想这件事已经解决了。
非常感谢。