这个EC801E 肯定是不支持QMI的。
这种属于AT拨号,移远就提供一个AT拨号的AT指令和一个流程。
这个失败的原因是,数据拨号AT返回成功之后,需要等一会才能发送dhcp请求,否则会出现dhcp获取不到ip的情况,也就说需要模组内部ready。
那么怎么知道模组内部ready了嘛,不同的模组有不同的方法。
方法1, 有的模组说,等我上报了一个拨号状态变化的urc之后,就可以了
方法2, 有的模组说等0.5秒,有的模组说等1.5秒,没有标准的
如果你是手工发送AT拨号的话,你肯定是“等很久”才发送dhcp请求,所以不会有问题。
但是写代码呢?最保险的做法是代码里 sleep(3),但显得很傻。
最终:如果模组支持方法1 ,代码就按照方法1来,如果模组支持方法2,就不等了(看运气吧)。
其实还有个好方法。就是等待模组上报usb net carrier on 消息,也就是轮询到网卡的carrier, on了之后才发起dhcp请求,也就是如下log:
[11-13_13:51:30:347] netcard carrier = 0