您好!
我尝试在宿主项目中使用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。
我不知道为什么?
有什么我错过的吗?
丹尼斯
嗨,丹尼斯3430,
由于您的项目基于DSP的主机(中心)项目,请检查在断开设备与对等外围设备的连接后是否重新启动扫描?请试着调试你的代码。调用app\u easy\u gap\u disconnect()后代码在哪里?
谢谢,下午好
您好!
所有的执行都很简单,我添加了表单回调函数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失败
但它看起来没有回调,仍然在其他线程中工作。
丹尼斯
嗨,丹尼斯3430,
为什么不看看无代码参考应用程序的例子呢?在这个项目中,您可以通过UART发送AT命令。
//www.xmece.com/亚博电竞菠菜products/smartbondtm-codeless-commands
谢谢,下午好
您好!
抱歉,问了很多愚蠢的问题。
但我认为这与指挥部无关。
我的问题是为什么我用“app\u easy\u gap\u disconnect”功能来断开连接,
不能连接再一次.
我想可能是我用了错误的方法连接设备,或者用了错误的方法断开连接。
或者一些我需要遵循的规则。
我将尝试再次阅读,也无代码的项目,以找出答案。
谢谢
丹尼斯
嗨,丹尼斯3430,
你能指出设备是否连接了吗?之后,请在调试模式下运行,并在断开回调中添加断点。
谢谢,下午好