GAP_ERR_COMMAND_DISALLED发生,FW将停止广告。

21个职位/0个新职位
最后一篇文章
珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
GAP_ERR_COMMAND_DISALLED发生,FW将停止广告。

尊敬的先生们:,

我正在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发生,但播发未停止。

此致。

设备:
MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

我假设您在完全托管模式下运行。您可以检查SDK5中的barebone示例,它完全执行您想要的操作,每当内核计时器结束时,它就会播发并更改播发字符串。为了改变广告串没有其他办法,你必须停止广告,改变广告串,并再次发出广告命令。当您终止播发过程时,您应该得到GAP\u ERR\u cancelled,例如,如果您在allready播发时发出播发命令,那么您将得到GAP\u ERR\u command DISALLOWED。

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
嗨,Dialog员工,

嗨,Dialog员工,

谢谢你的回复。

我将检查SDK5中的鞍骨筒。
我想回顾一下我的项目代码。

非常感谢。

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
尊敬的先生们:,

尊敬的先生们:,

>当你终止广告程序时,你应该得到一个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()调用的条件。
非常感谢。

MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨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回调,该回调映射到您的自定义回调。

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

谢谢你的回复。

>>如果您是广告和调用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()。
我不明白为什么会这样。

如果你知道的话,请告诉我。
非常感谢。

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

对不起,我是错误的问题。

>>我假设您在完全托管模式下运行。
请让我了解更多关于“完全托管模式”。

今天,我被允许在SDK5中运行“Blue_App_BareBone”示例,然后发生了Gap_Err_No_Error错误,FW已停止宣传。
(我没有做出更改以外的是发出登录。)

我的项目和“blue\u app\u barebone”的例子不同,但是停站的方式非常相似。
我认为我的项目没有到“完全托管模式”。

很抱歉听到很多次。
非常感谢。

MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

完全托管的模式意味着应用程序在580内部处理器中运行,在完全嵌入模式中,应用程序在外部处理上运行。你在鞍骨的eAcke上看到的gap_err_no_error没有错误状态,你应该得到一个GAP_ERR_NO_ERROR当设备已成功重置并且当设备已成功完成配置时,设备已成功重置和其他类似的消息。

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
谢谢你的回复。

谢谢你的回复。

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()。
我不明白为什么会这样。

如果你知道的话,请告诉我。

非常感谢。

MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

1.如果您有一个外部pc代码,并通过一个接口(例如UART)与580通信,以便发送命令(播发、连接等),那么您是在完全嵌入式配置下运行的,如果你的程序只在580上运行,那么你有一个完全托管的配置(大多数对话框项目都是这样)。

2.是的,如果您不调用app_easy_gap_advertise_stop()则不应调用app_on_add_undirect_complete()回调。关于在正常操作中不应调用我已提到的命令,在正常操作中不应调用,并且在停止正在进行的广告过程之前发出启动时返回。在app_ble_barebone中我没有看到此消息发生。请检查该示例。

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

谢谢你的回复。

1.谢谢。
我以完全嵌入的模式运行。

2.谢谢。
我会重新检查我的项目和应用程序。

我想先解析Gap_err_no_error。

即使在发生了Gap_Err_No_Error之后,
我想继续广播广告。

请给我一个好方法。
当有一个有助于的示例项目时,我很高兴。

很抱歉听到很多次。
非常感谢。

MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

没有问题,只需遵循鞍骨子示例并检查顺序使用的过程,然后设置设备,然后更改广告字符串,使合适的比较与您的程序进行比较。

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

谢谢你的回复。

我再次检查了FW的运行情况。
在调用“app_on_connection回调”之后显示Gap_err_no_error状态。

我想制作“app_on_connection回调”,没有发生,
因为我的FW不需要连接。

有什么好办法吗?
(我正在考虑将广告类型从“无向”更改为“无连接”。)

非常感谢。

MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

如果你不想连接你的外设,把你的设备非连接是一种方式,你可以看看信标参考设计的SDK3上的广告在非连接模式。您可以在支持站点的参考设计部分找到信标。

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

谢谢你的回复。
我有两个问题。

1.Sorry,我正在使用SDK5.0.3。
SDK5中是否有有用的示例?

我想我只是更改设置(例如user_config.h)或广告启动方法。

例如,请让我如何将“BLE_APP_BAREBONE样本”的广告模式更改为“不可连接模式”。

我选择了SDK5。
但是,我无法决定SDK5或SDK3的选择。

目前,你认为哪一个是更好的选择?
如果SDK3的支持继续,我可能会考虑使用SDK3。

很抱歉听到很多次。
非常感谢。

MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

1)在门户网站上没有任何官方信标示例,您可以在不可连接的部分中更改user_config.h文件,并使用app_easy_gap_non_connectable_advertise_start()函数使您的设备不可连接。为了开始广告。

2)仍然支持SDK3,但对话框建议新设计使用SDK5,因为它更容易使用,并且大多数错误都是固定的。

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
谢谢你的回复。

谢谢你的回复。

1.
>您可以在非可连接部分中更改user_config.h文件,并通过使用app_easy_gap_non_connectable_advertise_start()函数以启动广告,使您的设备不可连接。

请告诉我关于“user_config.h”文件的更多信息。
我想知道要在“user_config.h”文件中要修改的值。

非常感谢。

MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

没有值您应该在user_config.h文件中更改,处理不可连接的广告的结构是user_non_connectable_advertise_conf,您可以配置间隔等,然后在您需要调用app_easy_gap_non_connectable_advertise_get_active();和app_easy_gap_non_connectable_advertise_start();为了开始在不可连接的模式下进行广告。

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
谢谢你的回复。

谢谢你的回复。

我一直在使用“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()。

有什么好办法吗?
(我想要一些代码。)

非常感谢。

MT\u对话框
离线
最后一次见到:2个月3周前
工作人员
已加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

很可能您确实进行了播发,但您的播发停止了因为停止播发的计时器已触发,因此没有用于捕获不可连接的播发结尾的默认回调,但您可以使用catch rest函数实现一个回调,请按照下面的链接获取应实现的代码:

http://support.dialog-semicondiondiondum/aadvertisement-complete-callback -...

谢谢你的对话

珊瑚0310
离线
最后一次见到:5年3周前
已加入:2016-03-10 06:12
嗨,Dialog员工,

嗨,Dialog员工,
谢谢你的回复。

它能够继续向FW做广告。
今天,我做了一个测试,但是没有问题。

也许,我想这件事已经解决了。
非常感谢。

主题已锁定