嵌入式技术论坛
直播中

mintsy

8年用户 1483经验值
擅长:MEMS/传感技术
私信 关注
[问答]

AT组件中的at_resp_parse_line_args_by_kw解析异常怎么处理?

硬件配置: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):

回帖(1)

fanB

2022-6-17 09:32:55
看结果 +CGREG: 0,1 结果中的等于 1 或者 5,表示模块已在 UMTS/LTE 网络注册上PS业务,应该是已经注册网络了。
另外直接开启下面两个选项,可以看到具体的手法过程中的AT指令,就不用自己写代码来打印相关的日志了。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分