SIM卡号;00010503为系统工作状态字;01为后面跟1条数据(每条长度126)。
0701221632303903.6741N12153.13 26E27990357079425-70-66-63200407003104082853140501114 418011941000687221006942 1080702200906902012为一条数据,依次为时间、经纬度、C网质量参数和G网质量参数。
注意事项
拆包现象
模块支持在TCP通道一次发送1024字节数据,但模块内部发送缓冲区为536字节,使用+ZIPSEND命令一次发送1024字节数据时,发送的1024 字节数据拆分为2条socket数据先后传送给监控中心服务器。可通过降低一次发送的数据量来避免此现象,即一次传输不多于536字节。
连包现象
如果两条+ZIPSEND指令时间间隔过小,或前一包数据还未发送成功时模块收到新的数据发送命令,则模块把两条指令中的数据合并为一条 socket数据发送。此时,可以从两方面解决此问题:一是模块发送端每发送一个数据包后,等待监控中心返回确认消息后再继续其他工作,这样只能最大限度地防止上述现象的发生;另一方面是在监控中心接收端对上述现象进行容错处理。
此外,如果监控中心发送两条数据的时间间隔太短,模块接收数据时会出现中心发送的两条数据合并,以+ZIPRECV消息从串口返回,终端处理TCP数据时要考虑此问题。
异步消息的返回
模块返回的异步消息主要为TCP通道返回的数据。该消息的返回格式在前文中已说明。由于异步消息返回时间的不确定性,该消息会以两种方式从串口输出。一是单独返回。二是向模块发送AT指令后,异步消息随该指令的返回值一同返回,例如,当发AT指令查询拨号连接状况时,模块在TCP通道收到数据,则返回如下:rn+ZPPPSTATUS:OPENEDrnrnOK rn+ZIPRECV:1,24,002401810 000070312120016rn。在接收和处理异步数据时应充分考虑异步消息的这两种返回情况,以免丢失数据。
结语
本文详细论述了如何通过CDMA模块MG815+的数据传输功能实现车载终端与监控中心的通信,并给出了软件设计流程。 |