你好
我尝试使用Combine AT命令进入主机项目。
所以我使用DA14585_DSPS_V_6.150.2主机部分。
和我练习connect form user_scan_start() - >调用回(user_on_adv_report_ind())
还要修改如下功能
void app_easy_gap_start_connection_to_set(uint8_t peer_addr_type,
const uint8_t * peer_addr,uint16_t intv)
{
struct gapm_start_connection_cmd * msg;
msg = app_easy_gap_start_connection_to_msg_create();
msg-> nb_peers = 1;
memcpy(&msg->对等体[0] .addr,peer_addr,bd_addr_len);
msg->对等体[0] .addr_type = peer_addr_type;
msg-> con_intv_max = intv;
msg-> con_intv_min = intv;
返回;
}
//丹尼斯添加
void app_easy_gap_start_connection_to_set_send(uint8_t peer_addr_type,
const uint8_t * peer_addr,uint16_t intv)
{
struct gapm_start_connection_cmd * msg;
msg = app_easy_gap_start_connection_to_msg_create();
msg-> nb_peers = 1;
memcpy(&msg->对等体[0] .addr,peer_addr,bd_addr_len);
msg->对等体[0] .addr_type = peer_addr_type;
msg-> con_intv_max = intv;
msg-> con_intv_min = intv;
app_connect_start_msg_send((void *)msg);
返回;
}
到目前为止,代码可以正常工作,
但是当我呼叫使用app_easy_gap_disconnect并尝试再次连接。
它不能再次调用回user_on_connection。
我不知道为什么 ?
有什么我想念的吗?
丹尼斯
嗨Dennis3430,
由于您的项目基于DSP的主机(Central)项目,您是否可以检查在断开设备外设后重新启动扫描吗?请尝试调试代码。调用app_easy_gap_disconnect()后代码在哪里?
谢谢,PM_DIALOG.
你好
所有退出在一个简单的时间,我添加表单调用函数user_on_set_dev_config_complete()
吮吸如下
void user_on_set_dev_config_complete(void)
{
app_db_init_start();
host_cmd_timer = app_easy_timer(hots_cmd_timer_cnt,at_cmd_exec);
}
静态void at_cmd_exec(void)
{
if(at_cmd == _ at_none)
parser_atcmd();
别的 {
切换(AT_CMD)
{
案例_at_scan:
:
休息;
案例_at_sacn_wait:
:
休息;
案例_at_connect:
if(connect_idx == - 1)
{
app_easy_gap_start_connection_to_set_send(0,(uint8_t *)cmd_para,ms_to_doubleslots(user_con_intv));
AT_CMD = _AT_CONNECT_WAIT;
}
案例_at_connect_wait:
if(at_cmd_state == _ ats_end){
AT_CMD = _AT_NONE;
}
休息;
案例_at_disconnect:
if(connect_idx> = 0)
{
app_easy_gap_disconnect(connect_idx);
connect_idx = -1;
AT_CMD = _AT_NONE;
}
休息;
案例_at_disconnect_wait:
AT_CMD = _AT_NONE;
休息;
默认:
AT_CMD = _AT_NONE;
休息;
}
}
host_cmd_timer = app_easy_timer(hots_cmd_timer_cnt,at_cmd_exec);
}
即使我使用重置,它仍然无法再次重新连接到设备
这是我添加了Reeset函数
//丹尼斯添加
void app_easy_gap_reset(void)
{
struct gapm_reset_cmd * cmd = app_gapm_reset_msg_create();
cmd->操作= gapm_reset;
app_gapm_reset_msg_send(cmd);
}
我看到这个过程重新启动,但是当需要连接客户端设备时,它会在我调用app_easy_gap_start_connection_to_set_send()后没有更多的工作,所谓的它会调用user_on_connection或user_on_connect_failed
但它看起来像没有回调,仍然工作其他线程。
丹尼斯
嗨Dennis3430,
你为什么不看看无附加参考应用程序的例子?在这个项目中,您可以通过UART发送命令。
https://www.dialog-seminile.com/produ亚博电竞菠菜cts/smartbondtm-codeless-commands.
谢谢,PM_DIALOG.
你好
对不起很多问题。
但是我贝布雷对AT命令一无所有。
我的问题是为什么我用函数“app_easy_gap_disconnect”来断开连接,
不能连接再次。
我想也许我用错误的方式来连接设备,或使用错误的方式来断开连接。
或者我需要的一些规则。
我会尝试再次阅读,也可以找不到无附加的项目。
谢谢
丹尼斯
嗨Dennis3430,
您是否可以指明设备是否已连接?之后,请在调试模式下运行它,并在断开回调中添加断点。
谢谢,PM_DIALOG.