2010-11-06 28 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