江湖救急!关于GSM Modem 工业手机!(100分)

  • 主题发起人 主题发起人 herozjh
  • 开始时间 开始时间
H

herozjh

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大虾,如果同时多条短信发到一个GSM Modem 上时怎么处理才能使短信不丢失?我使用的是tpapro的通讯控件,目前我是用一个定时器定时扫端口,但这样肯定会有问题,可是我也不知道怎么样作会更好,请大虾指点!
 
你建立一个接受队列吗,来一个接收一个,总不会是在同一瞬间几条短信同时到达吧。
 
我建了一个缓存,对一条一条到达的没有什么问题;现在就是要解决同时到达的问题,不知道普通手机是怎么做的?
 
不可能有同时到达的短信,最多一条挨着一条嘛.
看看你的GSM Modem的文档。在接收到短信的时候有没有什么信息从串口发过来。有的话,建立一个线程,专门即时接受短信
 
我已经使用了一个线程专门接受短信,但我是使用一个计时器每隔0.2秒扫描一次端口,这样的话就有可能出现这条还没收完就收下一条(短信息不是一下全部进入)或者中间漏掉短信息,这就出现了一个矛盾,如果扫端口的时间隔长了,有可能中间会遗漏,如果短了又可能出现收到信息不完整的短信息的情况;如果只是少量短信的话并不明显,但是如果这一个集中的时段有比较多的短信,那问题相对就比较严重了,帮帮忙看看有什么从根本上解决问题的方法!谢谢!
 
不可能丢短信,除非你接收的短信在短时间有很大的量。SIM卡能够保存一定数目短信,移动供应商的服务器会给你保留一定数目的。大约70-100条左右(视SIM卡的容量),量太大了当然会丢失,不过实在移动供应商处就丢了。0.2秒扫描一次足够了,接收短信用不了多少时间。使用AT指令接收短信会不全嘛?要注意的是接收后一定要删除,否则...
 
比较关注.

学习以下.

to: herozjh
你说的一条没有收取完毕就收取下一条,这种情况会有吗?
还是不同的短信都应该是有相应的标识, 或者是说短信结束以什么
作为标志呢?

不好意思, 不懂. 也向做个这个东西.
 
这个问题,我已经解决,用了一个列表来处理。
可以跟我联系:
MSN:chenfreax@hotmail.com
QQ:47818604
 
首先量确实很大,其次GSM Modem 是不会把短信暂时存在SIM卡中的,因为SIM卡有擦写次数的,次数多了卡就报废了,我想到了其实用串口的触发事件应该就可以了,有短信进入串口才触发接收线程,这里有人用过tpapro_4_06这个控件吗?指点下那个触发事件怎么用?我用了OnTrigger和OnTriggerAvail事件好像都有点问题,高手指点下!
 
难道这里没有人用过tpapro_4_06吗???
 
难道这里真的没人用过tpapro_4_06吗???
 
1、数据包加一个结束标志,收到结束标志一条结束没,这个标志由你定义。
2、也可以如果你的modem有流控制也可以试试,串口的硬件握手模式。
3、用spcomm,这东西是线程的,可以调整读间隔,很好用。
 
谢谢各位,问题已经基本解决!
 
后退
顶部