【问题标题】:Knowing when GSM/CSD connection has broken知道 GSM/CSD 连接何时断开
【发布时间】:2010-11-06 19:38:12
【问题描述】:

背景

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

现在的问题

我如何知道在数据调用过程中连接已中断?

实际上,当通话中断时,我会收到一条NO CARRIER 消息。但问题是 GSM 调制解调器将命令/通知与实际数据混合在一起。那么我怎么知道这条消息是数据本身的一部分,还是实际上是来自调制解调器的呼叫中断消息?

谢谢各位。

【问题讨论】:

    标签: c++ gsm


    【解决方案1】:

    CD 信号(载波检测)将关闭。在 GetCommModemStatus() 和 WaitCommEvent() 中命名为 RLSD。当您使用调制解调器时,这相当于 std::bad_alloc。

    【讨论】:

    • 谢谢。我会看看它。顺便问一下,在GetCommModemStatus 之前调用WaitCommEvent 是否有必要? MSDN 对此有点模糊。
    • 呃,不,它们完全不相关。 WaitCommEvent 让你异步做事,GetCommModemStatus 相当于轮询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多