遇到的问题1
发送:AT+CREG? 回复:+CREG: 1,0 连不上网络。
调试手段
1.查询运营商 AT+COPS=? 查看是否注册运营商,没有运营商一般都是信号不好,卡放手机能查到运营商,模块里一般也能注册。
2.查询网络注册状态+CEREG=?
3.查询信号 AT+CSQ ,第三个数字会显示当前制式,具体制式看手册。
4.使用ping命令:AT+CMPING=”www.baidu.com” ping一下服务器,ping通就有网咯
解决办法
这里有两种情况,一种是信号不好,另外一种,因为模块是全网通,在使用电信卡的时候,我也出现了这样的回复。第一种情况直接更换天线(我那天线看着好好的,结果坑死我,我之所以认为是好的,是因为手里有一张没流量的联通卡,用这天线也能搜寻到网络,就以为没问题,后面细品了一下,搜索的是2G网络)。第二种情况是使用查询网络注册状态命令作为判断,CREG说检测的是什么CS域,不太懂,用CEREG就对了。
遇到的问题2
模块连接服务器订阅主题后,Broker下发消息会有丢失。
调试手段
1.服务器上使用抓包工具,确保消息已经下发。
2.使用mqtt.fx工具连接服务器订阅相同主题,能收到说明数据已经下发。
解决办法
也是两种情况,一种是数据量太大,可能2k吧,服务器抓包工具看到的是服务器TCP连接断开了。还有一种就是订阅引起的。
使用订阅主题之前,先取消订阅。是在手册看到配置连接参数的时候,有个是否清除回话的配置说明,提到非正常关机会保存订阅主题什么什么的,然后得到的灵感。
调试经过:最开始我订阅主题时的质量等级是1,经常直接断电重启调试程序,之后出现了这样的问题,不知道是不是这个原因。出问题后,我把订阅主题时的质量等级改为0,然后Broker发送的消息就都能收到,只是看不到包号了,再之后,我就先取消订阅后再订阅,目前还没出现过这个问题,正常情况下都能接受到。