尊敬的先生们:,
I am creating a Farmware for the beacon in SDK5.0.3.
我设计了FW,每隔几秒钟改变广告数据的一部分。
一汽大众将暂时停止运营,但一汽大众将停止广告。
我不想那样。
When FW is stop the advertising, in user_app_adv_undirect_complete() of user_peripheral.c, it had received a GAP_ERR_NO_ERROR or GAP_ERR_COMMAND_DISALLOWED as status.
(通常,它会收到一个GAP\u ERR\u cancelled。)
此外,当广告的传播stops, user_catch_rest_hndl() is handling.
1.你知道GAP_ERR_NO_ERROR和GAP_ERR_COMMAND_DISALLED发生的原因吗?
我没有看到除了GAP_ERR_NO_ERROR和GAP_ERR_COMMAND_DISALLED之外。
The two errors always has occurred at the same time.
2我不想停止这个广告。有更好的办法吗?
I did the following measures to FW.
1.如果FW收到非GAP_ERR_CANCELED,FW将停止广告。
(FW will use the processing of adv_data_update_timer_cb ().)
2.然后,在user_app_adv_start()中恢复FW正在恢复。
I do this renovation in FW, it was allowed to operate 10 hours.
GAP\u ERR\u COMMAND\u DISALLOWED发生,但播发未停止。
Best regards.
嗨Coral0310,
我假设您在完全托管模式下运行。您可以检查SDK5中的barebone示例,它完全执行您想要的操作,每当内核计时器结束时,它就会播发并更改播发字符串。为了改变广告串没有其他办法,你必须停止广告,改变广告串,并再次发出广告命令。当您终止播发过程时,您应该得到GAP\u ERR\u cancelled,例如,如果您在allready播发时发出播发命令,那么您将得到GAP\u ERR\u command DISALLOWED。
谢谢你的对话
嗨,Dialog员工,
谢谢你的回复。
I'll check the barebone example in the SDK5.
我想回顾一下我的项目代码。
非常感谢。
尊敬的先生们:,
>当你终止广告程序时,你应该得到一个GAP\u ERR\u cancelled,如果你在>你准备好广告时开始广告,那么你将得到一个GAP\u ERR\u COMMAND\u DISALLOWED。
I have a question.
我想知道调用user\u app\u adv\u undirect\u complete()的条件。
我认为在FW停止广告之后调用user_app_adv_undirect_complete()。
However, I do not have confidence in their own thinking.
请告诉我user_app_adv_undirect_complete()调用的条件。
非常感谢。
嗨Coral0310,
如果你在做广告invoke theapp_easy_gap_advertise_stop() it issues a GAPM_CANCEL_CMD in order to cancel the on going air operation,这将取消广告程序。完成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的情况下,
This case does not have app_easy_gap_advertise_stop() is executed before the "app_on_adv_undirect_complete callback” is called.
我不明白为什么会这样。
Please let me if you know something.
非常感谢。
亲爱的对话人员,
Sorry, I was the wrong question.
>>我假设您在完全托管模式下运行。
请让我了解更多关于“完全托管模式”。
今天,我被允许在SDK5中运行“Blue_App_BareBone”示例,然后发生了Gap_Err_No_Error错误,FW已停止宣传。
(I have not made changes other than to issue a log on it.)
我的项目和“blue\u app\u barebone”的例子不同,但是停站的方式非常相似。
我认为我的项目没有到“完全托管模式”。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
完全托管的模式意味着应用程序在580内部处理器中运行,在完全嵌入模式中,应用程序在外部处理上运行。你在鞍骨的eAcke上看到的gap_err_no_error没有错误状态,你应该得到一个GAP_ERR_NO_ERROR当设备已成功重置并且当设备已成功完成配置时,设备已成功重置和其他类似的消息。
谢谢你的对话
谢谢你的回复。
1
>>完全托管模式意味着应用程序在580内部处理器中运行,在完全嵌入式模式下,应用程序在外部处理器上运行。
请原谅我。不太明白…
如何判断是内部处理器还是外部处理器?
希望有所帮助。
我使用的是TypeZY(村田公司)的开发工具包。
TypeZY正在通过UART从MDK-ARM下载固件到。
2
>>The GAP_ERR_NO_ERROR that you see on the barebone example its no error state, you should get a GAP_ERR_NO_ERROR when the device has reseted successfully and another similar message when the device has completed the configuration succesfully.
非常感谢。
我能理解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的情况下,
This case does not have app_easy_gap_advertise_stop() is executed before the "app_on_adv_undirect_complete callback” is called.
我不明白为什么会这样。
Please let me if you know something.
非常感谢。
嗨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。
Even after the GAP_ERR_NO_ERROR has occurred,
我想继续广播广告。
请给我一个好方法。
当有一个有助于的示例项目时,我很高兴。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
No problem, just follow the barebone example and check the procedure that is used in order start and set up the device and then to alter the advertising strings, make the appropriate compares with your program.
谢谢你的对话
亲爱的对话人员,
谢谢你的回复。
我再次检查了FW的运行情况。
GAP_ERR_NO_ERROR status is displayed after it has been referred to the “app_on_connection callback" is called.
我想制作“app_on_connection回调”,没有发生,
因为我的FW不需要连接。
有什么好办法吗?
(我正在考虑将广告类型从“无向”更改为“无连接”。)
非常感谢。
嗨Coral0310,
如果你不想连接你的外设,把你的设备非连接是一种方式,你可以看看信标参考设计的SDK3上的广告在非连接模式。您可以在支持站点的参考设计部分找到信标。
谢谢你的对话
亲爱的对话人员,
谢谢你的回复。
我有两个问题。
1Sorry, I’m using the SDK5.0.3.
SDK5中是否有有用的示例?
我想我只是更改设置(例如user_config.h)或广告启动方法。
例如,请让我如何将“BLE_APP_BAREBONE样本”的广告模式更改为“不可连接模式”。
2I am selecting the SDK5.
但是,我无法决定SDK5或SDK3的选择。
目前,你认为哪一个是更好的选择?
如果SDK3的支持继续,我可能会考虑使用SDK3。
很抱歉听到很多次。
非常感谢。
嗨Coral0310,
1)在门户网站上没有任何官方信标示例,您可以在不可连接的部分中更改user_config.h文件,并使用app_easy_gap_non_connectable_advertise_start()函数使您的设备不可连接。为了开始广告。
2) The SDK3 is still supported but dialog recommends for new designs to use the SDK5 since its more easy to use and most of the bugs are fixed.
谢谢你的对话
谢谢你的回复。
1
>您可以在非可连接部分中更改user_config.h文件,并通过使用app_easy_gap_non_connectable_advertise_start()函数以启动广告,使您的设备不可连接。
Please let me more about “user_config.h” file.
I want to know the value to be modified in the "user_config.h" file.
非常感谢。
嗨Coral0310,
没有值您应该在user_config.h文件中更改,处理不可连接的广告的结构是user_non_connectable_advertise_conf,您可以配置间隔等,然后在您需要调用app_easy_gap_non_connectable_advertise_get_active();和app_easy_gap_non_connectable_advertise_start();为了开始在不可连接的模式下进行广告。
谢谢你的对话
谢谢你的回复。
I have been using the “ble_app_barebone” example.
我更改了用户\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_undirected_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();
}
It could not be build, because app_easy_gap_non_connectable_advertise_get_active()
没有定义。
我已经定义了应用程序\u easy\u gap\u non\u connectable\u advertise\u get\u active()
to “app_easy_gap.h" file.
(我指的是应用程序\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做广告。
今天,我做了一个测试,但是没有问题。
也许,我想这件事已经解决了。
Thank you so much.