2010-11-06 87 views
0

背景当GSM/CSD连接中断

我有通过COM端口连接的GSM调制解调器知道。我使用CreateFile打开COM端口,我可以发送各种AT命令。我使用ATD来发出一个CSD(数据)呼叫或ATS0=1来接收一个。

现在的问题

我怎么能知道连接数据呼叫的中间已经打破?

其实,当一个电话被打破,我得到一个NO CARRIER消息。但问题是GSM调制解调器将命令/通知与实际数据混合在一起。那么,我怎么知道这条消息是数据本身的一部分,还是实际上是来自调制解调器的断开电话的消息呢?

谢谢,伙计们。

回答

1

CD信号(载波检测)将关闭。在GetCommModemStatus()和WaitCommEvent()中命名为RLSD。当您使用调制解调器时,这就是std :: bad_alloc的道德等价物。

+0

谢谢。我会看看它。顺便说一句,在GetCommModemStatus之前是否需要调用WaitCommEvent? MSDN在这方面有点模糊。 – 2010-11-06 12:07:31

+0

呃,不,他们是非常无关的。 WaitCommEvent可以让你异步执行任何操作,GetCommModemStatus相当于轮询。 – 2010-11-06 12:11:40