硬件配置:GD32F450+EC200S
问题现象:偶现设备连不上网
日志分析:发现设备是卡在联网解析的一个步骤中,后续加入部分日志,定位为at_resp_parse_line_args_by_kw函数解析存在异常
问题是偶现的,正常也能解析出来,这个是偶发的就不行了的
具体问题是正常按照这个函数应该解析出来的结果link_stat应该是等于1,
at_resp_parse_line_args_by_kw(commu_4g_at_resp, “+CGREG:”, “+CGREG: %d,%d”, &link_stat_n, &link_stat)
但是日志却显示出来解析的结果是0
if (at_obj_exec_cmd(ec200s_data.client, commu_4g_at_resp, "AT+CGREG?rn") == RT_EOK)
{
rt_kprintf("AT+CGREG? send OKrn");
for (i = 0; i < (int) commu_4g_at_resp->line_counts; i++)
{
rt_kprintf("AT+CGREG? rec line(%d):%s", (i + 1), at_resp_get_line(commu_4g_at_resp, i + 1));
}
link_stat = 0;
if (at_resp_parse_line_args_by_kw(commu_4g_at_resp, "+CGREG:", "+CGREG: %d,%d", &link_stat_n, &link_stat)>0)
{
rt_kprintf("AT+CGREG? link_stat:(%d)rn",link_stat);
if ((link_stat == 1) || (link_stat == 5))
{
// LOG_D("device GPRS is registered");
break;
}
}
else {
rt_kprintf("AT+CGREG? process errrn");
}
}
else {
rt_kprintf("AT+CGREG? send errrn");
}
日志现象如下
AT+CGREG? send OK
AT+CGREG? rec line(1):
AT+CGREG? rec line(2):+CGREG: 0,1
AT+CGREG? rec line(3):
2022-6-17 09:32:55
看结果 +CGREG: 0,1 结果中的等于 1 或者 5,表示模块已在 UMTS/LTE 网络注册上PS业务,应该是已经注册网络了。
另外直接开启下面两个选项,可以看到具体的手法过程中的AT指令,就不用自己写代码来打印相关的日志了。
看结果 +CGREG: 0,1 结果中的等于 1 或者 5,表示模块已在 UMTS/LTE 网络注册上PS业务,应该是已经注册网络了。
另外直接开启下面两个选项,可以看到具体的手法过程中的AT指令,就不用自己写代码来打印相关的日志了。
举报