昨天晚上把写好的程序测试了遍,就是按经典的方法,at^sisw=1,16;收到确认信号后把数据发过去!每1分钟发送一次,心跳包就是计数值累加;发送数据通过tcp server看到是如下情况:其中截取了有问题的一部分
..................
CLIENT->SERVER 117.136.10.39:33372 0000000000000065
CLIENT->SERVER 117.136.10.39:33372 0000000000000066
CLIENT->SERVER 117.136.10.39:33372 0000000000000067
CLIENT->SERVER 117.136.10.39:33372 0000000000000068
CLIENT->SERVER 117.136.10.39:33372 0000000000000069
CLIENT->SERVER 117.136.10.39:33372 0000000000000070
CLIENT->SERVER 117.136.10.39:33372 0000000000000071
CLIENT->SERVER 117.136.10.39:33372
000000000000007200000000000000730000000000000074
000000000000007500000000000000760000000000000077
000000000000007800000000000000790000000000000080
00000000000000810000000000000082
CLIENT->SERVER 117.136.10.39:33372 0000000000000083
CLIENT->SERVER 117.136.10.39:33372 0000000000000084
CLIENT->SERVER 117.136.10.39:33372 0000000000000085
CLIENT->SERVER 117.136.10.39:33372 0000000000000086
CLIENT->SERVER 117.136.10.39:33372 0000000000000087
CLIENT->SERVER 117.136.10.39:33372 0000000000000088
CLIENT->SERVER 117.136.10.39:33372 0000000000000089
CLIENT->SERVER 117.136.10.39:33372 0000000000000090
............
从上面数据可以看出,一开始都很正常的,但是在发送0000000000000072的时候没有发送出去,然后接着0000000000000073 0000000000000074。。。。。。0000000000000082都没有发送出去;但是都在缓存里面,后面一次性都发出去了!这样就有问题了;正常情况下1分钟发送一次的心跳包,这样一来,这次发送的间隔是10分钟;将会导致网络服务器报警!
不知道有哪位高手,有比较完善的发送程序;能保证每次都发出去;或者说1次发不出,但能即时纠错!还是这个问题是无法避免的,还是信号网络问题~ 请大家多提宝贵意见谢谢!
你把数据发送出去之后有没收到发送MC55的发送成功应答命令?
55成功发送后好象是返回 OK^SISW: 0, 1 如果没有收到则重发.
没有发送出去有时因为55本身的问题,串口没有正常接收到,或者是信号不好(天线接触不好也是一种可能)==原因造成.每次发送时都需要确认发送成功再做下步操作.