MG323模块使用内置TCPIP的3种数据传输方式
最近开始研究GPRS模块,之前没有接触过,还好这里有appcat大虾发的很多资料,再次感谢appcat的分享。现在对三种传输方式做下总结,其中也还有很多问题需要得到大家的帮助。
1、使用AT^IPENTRANS透传模式
该模式与GTM900C的透传模式类似,提供定时发送和定长发送两种模式。进入该模式后串口接收到的任何数据都会通过GPRS发送,没有任何返回确认信息。
缺点:该模式下,来电和短信不会主动上报,只能通过RING脚获知。在被叫等待过程中数据会有阻塞,使用ATH命令需要退出该模式。虽然链接断开后会有ERROR
提示,但是从数据发出到返回ERROR需要等待大约70秒时间,这段时间内仍旧会不断向模块发送用户数据。
2、使用AT^SISW命令发送数据
这种发送方式只有在接到串口数据时才使用AT^SISW命令发送,没有数据发送时处于AT命令模式,可以做相应的监控,比如监测信号强度之类。
缺点:方式1相同,当数据链路断开后,数据发出到返回ERROR也需要等待大约70秒时间。
3、使用AT%IPSEND命令(这要感谢appcat大虾对MG323的挖掘,发现了GTM900的兼容指令)
这种发送方式使用了发送窗,MG323一共9个窗口,每当发完一次会显示剩余的发送窗口,这个方式能够一定程度上反映链路的状况。同时也处于AT命令模式,
可以对GPRS进行信号等情况的监测。
缺点(可能不是,只是我没能解决):就如appcat大虾说的,当发送窗口用完后就会返回ERROR 29,之后重新建立连接后,发送窗口仍然存在。appcat大虾说需要
断开PDP后重新建立,然后进行TCP连接,发送窗会清除,但是我没能实现,只有当模块重启后发射窗消除。
上面是我对MG323模块调试过程中的一点总结,应该说属于门外汉,很多问题都没能解决好。有几个问题想请大家帮忙:
1、在使用AT^IPENTRANS或者AT^SISW命令时,如何能够尽快知道我的数据是否已经发送出去
2、使用AT%IPSEND命令时如何在链接断开后有效的清除占用的发送窗,最好能有详细的过程
3、有没哪位有linux下的上位机程序,有的话能否给我一份,我们的服务器是linux系统,目前只能使用nc -l 命令监听,
但是发现不稳定,经常有假链接,发送端显示已链接但是数据无法发送,而且只能监听不能下发数据。 华为建议MG323用户注意,不推荐使用AT%ETCPIP等AT指令。
MG323确实兼容了部分EM310模块的GPRS指令,但是不推荐使用。因为这部分兼容指令是为了部分客户替换EM310时候的临时措施。为了发挥MG323模块的优势,以及后续版本升级优化,请使用MG323 AT命令手册中的指令:
例如:
at^sics=0,passwd,gprs
OK
at^sics=0,user,cm
OK
at^sics=0,apn,cmnet
OK
/////////////////////////////
at^siss=0,srvType,socket
OK
AT^SISS=0,conId,0
OK
at^siss=0,address,"socktcp://bbs.tsinghua.edu.cn:23"
OK
AT^SISO=0
OK
^SISW: 0, 1
/////////////////////////////===============================
at^siss=1,srvType,socket
OK
AT^SISS=1,conId,0
OK
at^siss=1,address,"socktcp://218.108.114.138:21002"
OK
AT^SISO=1
OK
/////////////////////////////===============================
AT^SISW=0,15
^SISW: 0, 15, 15
OK
^SISW: 0, 1
^SISR: 0, 1
AT^SISR=0,150
^SISR: 0, 15
123456789012345
OK
AT^SISR=0,150
^SISR: 0, 0
OK
AT^sisc=0
OK 总结很不错 顶你~ QQ1013182577 发表于 2012-9-21 22:08 static/image/common/back.gif
华为建议MG323用户注意,不推荐使用AT%ETCPIP等AT指令。
MG323确实兼容了部分EM310模块的GPRS指令,但是不 ...
综合了各种利弊,最后还是选用了MG323的SISW模式发送数据。经过测试其缓冲区的大小为5840字节。但是最近测试的时候发现网络信号在16-19的时候会出现MG323无法写入的情况,也就是提示^SISW:0,0,这时MG323的缓冲数据根本没有达到5840字节。请教在这种情况下,有没有什么好的解决方法,保证数据不丢失? MG323 数据缓存大小是动态分配的 {:loveliness:}MARK 为什么我的模块直接通过域名地址发送数据不行 at^siss=0,address,"socktcp://bbs.tsinghua.edu.cn:23" ,只能通过其IP {:cry:},哪位能帮忙分析一下 错误如下:
at^siss=0,address,"socktcp://beijingchijiu.gicp.net:80"
OK
AT^SISO=0
ERROR 学习了,不错!我现在也在搞MG323,不过发现MG323不如900C在数据发送时候灵活,900C一条AT%IPSEND就可以了,
MG323使用
AT^SISW=0,15
^SISW: 0, 15, 15
OK
然后才能发送数据,当然发送AT^SISW=0,15也可直接发送数据,
但是这样的话我还的计算发送数据的长度,然后在转化成字符类型,显得不如900C好用。可惜的是900C华为停产了。{:huffy:} 本帖最后由 windrarara 于 2013-8-12 23:17 编辑
QQ1013182577 发表于 2012-9-21 22:08 static/image/common/back.gif
华为建议MG323用户注意,不推荐使用AT%ETCPIP等AT指令。
MG323确实兼容了部分EM310模块的GPRS指令,但是不 ...
请问使用mg323的内嵌tcpip栈,支持同时存在多个tcp连接吗?
我看手册是说支持,但是按照at命令手册实际测试,如果打开了一个tcp连接再去配置并打开另一个就会返回error…… 好好研究一下 楼主 我也想用透传模式 发现这个模式下出现假链接以后 发送数据补返回ERROR和正常发送一模一样如何知道数据已经发送出去 解决了吗
页:
[1]