GAP_ERR_COMMAND_DISALLED发生,FW将停止广告。

21个帖子/ 0新
最后一篇
CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
GAP_ERR_COMMAND_DISALLED发生,FW将停止广告。

敬启者,

我正在SDK5.0.3中为灯架创建一个农场。
我设计了FW,每隔几秒钟改变广告数据的一部分。

FW将在运营时展示,但FW将停止广告。
我不希望广告停止。

当FW停止广告时,在User_PeripherAl.cn的User_App_Adv_Undirect_Complete()中,它已接收了一个GAP_ERR_NO_ERROR或GAP_ERR_COMMAND_DISALLED作为状态。
(通常,它已收到Gap_Err_Canceled。)

另外,当广告停止传输时,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_ERR_COMMAND_DISALLED发生,但广告不会停止。

此致。

设备:
mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

我假设您在完全托管模式下运行。您可以在SDK5中检查鞍骨,并在内核定时器经过时广告并更改广告字符串。为了改变广告字符串,没有其他方式,您必须停止广告,更改广告字符串并再次发出广告命令。当您终止广告程序时,您应该得到一个GAP_ERR_CANCELED,如果例如,您在ALLREADY广告时发出广告命令,那么您将获得一个GAP_ERR_COMMAND_DISALLED。

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
嗨对话人员,

嗨对话人员,

感谢你的回复。

我将检查SDK5中的鞍骨筒。
我想查看我的项目代码。

谢谢你。

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
敬启者,

敬启者,

>当您终止广告程序时,您应该获得一个GAP_ERR_CANCELED,如果您开始广告>您是ALLREADY广告,那么您将获得一个GAP_ERR_COMMAND_DISALLED。

我有个问题。

我想知道调用user_app_addured_complete()的条件。
我认为在FW停止广告之后调用user_app_adv_undirect_complete()。
但是,我对自己的思想没有信心。

请告诉我user_app_adv_undirect_complete()调用的条件。
谢谢你。

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入: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_cmp_evt_handler()并就完成的操作它将转到适当的情况下,然后将适当的案例调用适当的回调,在广告取消的情况下,App_Ond_Adv_Undirect_Complete回调被称为映射到您的自定义回调。

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

感谢你的回复。

>>如果您是广告和调用app_easy_gap_advertise_stop()它会发出gapm_cancel_cmd以取消换流运输,这将取消广告程序。

我明白“app_on_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
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

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

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

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

我的项目和“blue_app_barebone”示例是不同的,但停止方式非常相似。
我认为我的项目没有到“完全托管模式”。

很抱歉听到很多次。
谢谢你。

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

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

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
感谢你的回复。

感谢你的回复。

1。
>>完全托管的模式意味着应用程序在580内部处理器中运行,在完全嵌入模式中,应用程序在外部处理上运行。

打扰一下。不太了解......
如何判断内部处理器或外部处理器是否?

希望有所帮助。
我正在使用一个Typezy的开发套件(Murata Corporation)。
TypeZy从MDK-ARM下载FW到Via UART。

2。
>>您在鞍骨筒示例中看到的Gap_err_no_error无错误状态,当设备已成功重置时,您应该得到一个Gap_Err_No_Error,并且当设备已成功完成配置时,该设备已成功重置和其他类似的消息。

谢谢你。

我能够了解GAP_ERR_NO_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_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

1.如果您有外部PC代码并在接口上与580通信,例如(作为Proximity_reporter_ext)以便发送命令(通告,连接等),那么如果您的程序运行,则在完全嵌入的配置下运行专门在580上,然后您拥有完全托管的配置(大多数对话框项目都是这样)。

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

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

感谢你的回复。

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

谢谢。
我将重新检查我的项目和App-Ble-Ble-Barebone。

我想先解析Gap_err_no_error。

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

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

很抱歉听到很多次。
谢谢你。

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

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

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

感谢你的回复。

我再次检查FW的操作。
在调用“app_on_connection回调”之后显示Gap_err_no_error状态。

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

有什么好事吗?
(我正在考虑将广告类型从“未确定”到“non_connection”。)

谢谢你。

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

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

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
亲爱的对话人员,

亲爱的对话人员,

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

1.Sorry,我正在使用SDK5.0.3。
是否有一个在SDK5中有用的样本?

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

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

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

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

很抱歉听到很多次。
谢谢你。

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

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

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

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
感谢你的回复。

感谢你的回复。

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

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

谢谢你。

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入: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();为了开始在不可连接的模式下进行广告。

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
感谢你的回复。

感谢你的回复。

我一直在使用“BLE_APP_BAREBONE”示例。
我更改了user_barebone.c的代码。

//前
void user_app_adv_start(void)
{
......
struct gapm_start_advertise_cmd * cmd;
cmd = app_easy_gap_undirected_advertise_get_active();
......
app_easy_gap_undircated_advertise_start();
}

//后
void user_app_adv_start(void)
{
......
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()
没有定义。

我已经定义了app_easy_gap_non_connectable_advertise_get_active()
到“app_easy_gap.h”文件。
(我指的是app_easy_gap_undirected_advertise_get_active()。)

建立来了。但是,FW无法宣传更新,广告停止。
也许,我错了如何定义app_easy_gap_non_connectable_advertise_get_active()。

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

谢谢你。

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨Coral0310,

嗨Coral0310,

最可能您做广告,但您的广告停止,因为停止广告的定时器被触发,没有默认回调用于捕获非可连接的广告结束,但您可以使用CATT REST功能实现一个,请按照下面的链接进行操作应该实现的代码:

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

谢谢mt_dialog.

CORAL0310
离线
最后一次露面:5年2周前
加入:2016-03-10 06:12
嗨对话人员,

嗨对话人员,
感谢你的回复。

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

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

主题锁定