使用后的应用程序\u容易\u差距\u断开,不能再次连接?

了解更多常见问题教程

6个职位/0个新职位
最后一篇文章
丹尼斯3430
离线
最后一次见到:1年3个月前
已加入:2019-08-27 07:42
使用后的应用程序\u容易\u差距\u断开,不能再次连接?

您好!

我尝试在宿主项目中使用combine AT命令。

所以我使用DA14585\u dsp\u v\u 6.150.2主机部分。

我将连接从user\u scan\u start()-->callback(user\u on \u adv\u report\u ind())分离

也可以修改为以下函数

void app \u easy \u gap \u start \u connection \u to \u set(uint8 \u t peer \u addr \u type,
const uint8\u t*对等地址,uint16\u t国际)
{
结构gapm\u启动\u连接\u命令*msg;
msg=app_easy_gap_start_connection_to_msg_create();
msg->nb\u peers=1;
memcpy(&msg->peers[0].addr,peer\u addr,BD\u addr\u LEN);
msg->peers[0]。addr\u type=peer\u addr\u type;
msg->con\u intv\u max=intv;
msg->con\u intv\u min=intv;
返回;
}
//丹尼斯补充道
void app \u easy \u gap \u start \u connection \u to \u set \u send(uint8 \u t peer \u addr \u type,
const uint8\u t*对等地址,uint16\u t国际)
{
结构gapm\u启动\u连接\u命令*msg;
msg=app_easy_gap_start_connection_to_msg_create();
msg->nb\u peers=1;
memcpy(&msg->peers[0].addr,peer\u addr,BD\u addr\u LEN);
msg->peers[0]。addr\u type=peer\u addr\u type;
msg->con\u intv\u max=intv;
msg->con\u intv\u min=intv;
应用程序\连接\启动\消息\发送((void*)消息);
返回;
}

到目前为止,代码可以正常工作,

但当我打电话时,请使用app\u easy\u gap\u断开连接并再次尝试连接。

它无法在\u连接上再次调用用户\u。

我不知道为什么?

有什么我错过的吗?

丹尼斯

设备:
PM\U对话框
在线的
最后一次见到:2分5秒前
工作人员
已加入:2018-02-08 11:03
嗨,丹尼斯3430,

嗨,丹尼斯3430,

由于您的项目基于DSP的主机(中心)项目,请检查在断开设备与对等外围设备的连接后是否重新启动扫描?请试着调试你的代码。调用app\u easy\u gap\u disconnect()后代码在哪里?

谢谢,下午好

丹尼斯3430
离线
最后一次见到:1年3个月前
已加入:2019-08-27 07:42
您好!

您好!

所有的执行都很简单,我添加了表单回调函数user\u on\u set\u dev\u config\u complete()

吮吸如下

void user \u on \u set \u dev \u config \u complete(void)无效用户\u
{
app_db_init_start();
Host\u Cmd\u timer=app\u easy\u timer(HOTS\u Cmd\u timer\u CNT,AT\u Cmd\u Exec);

}

在命令执行时静态无效(无效)
{
if(At \u Cmd==\u At \u NONE)
解析器_AtCmd();
其他{
开关(按命令)
{
病例扫描:
:

中断;
案例\u在\u SACN\u等待:
:
中断;
连接处的案例:
如果(连接\u Idx==-1)
{
app_easy_gap_start_connection_to_set_send(0,(uint8_t*)Cmd_Para,MS_to_DOUBLESLOTS(USER_CON_INTV));
At\u Cmd=\u At\u CONNECT\u WAIT;
}

案例\u在\u连接\u等待:
如果(在命令状态==\u ATS\u END){
At\u Cmd=\u At\u NONE;
}
中断;
断开时的情况:
如果(连接\u Idx>=0)
{
应用程序\u轻松\u间隙\u断开(连接\u Idx);
连接\u Idx=-1;
At\u Cmd=\u At\u NONE;
}
中断;
案例\u在\u断开\u等待:
At\u Cmd=\u At\u NONE;
中断;
违约:
At\u Cmd=\u At\u NONE;
中断;

}
}

Host\u Cmd\u timer=app\u easy\u timer(HOTS\u Cmd\u timer\u CNT,AT\u Cmd\u Exec);

}

即使我使用重置它仍然无法重新连接到设备

这里是我添加的reeset函数

//丹尼斯补充道
void app\u easy\u gap\u reset(无效)
{
struct gapm_reset_cmd*cmd=app_gapm_reset_msg_create();
cmd->operation=GAPM\u RESET;
app\u gapm\u reset\u msg\u send(命令);
}

我看到进程重新启动,但当需要连接客户端设备时,我调用app\u easy\u gap\u start\u connection\u to\u set\u send()后,它就没有工作了,假设它将调用user\u on\u connection或user\u on\u connect\u失败

但它看起来没有回调,仍然在其他线程中工作。

丹尼斯

PM\U对话框
在线的
最后一次见到:2分5秒前
工作人员
已加入:2018-02-08 11:03
嗨,丹尼斯3430,

嗨,丹尼斯3430,

为什么不看看无代码参考应用程序的例子呢?在这个项目中,您可以通过UART发送AT命令。

//www.xmece.com/亚博电竞菠菜products/smartbondtm-codeless-commands

谢谢,下午好

丹尼斯3430
离线
最后一次见到:1年3个月前
已加入:2019-08-27 07:42
您好!

您好!

抱歉,问了很多愚蠢的问题。

但我认为这与指挥部无关。

我的问题是为什么我用“app\u easy\u gap\u disconnect”功能来断开连接,

不能连接再一次.

我想可能是我用了错误的方法连接设备,或者用了错误的方法断开连接。

或者一些我需要遵循的规则。

我将尝试再次阅读,也无代码的项目,以找出答案。

谢谢

丹尼斯

PM\U对话框
在线的
最后一次见到:2分5秒前
工作人员
已加入:2018-02-08 11:03
嗨,丹尼斯3430,

嗨,丹尼斯3430,

你能指出设备是否连接了吗?之后,请在调试模式下运行,并在断开回调中添加断点。

谢谢,下午好