了解 GSM/CSD 连接何时中断
背景
我有一个通过 COM 端口连接的 GSM 调制解调器。我使用 CreateFile
打开 COM 端口,并且能够发送各种 AT 命令。我使用 ATD
发出 CSD(数据)呼叫,或使用 ATS0=1
接收呼叫。
现在的问题
我如何知道连接在数据通话过程中已断开?
实际上,当呼叫中断时,我会收到一条 NO CARRIER
消息。但问题是 GSM 调制解调器将命令/通知与实际数据混合在一起。那么我如何知道该消息是数据本身的一部分,还是实际上是来自调制解调器的呼叫中断消息?
谢谢,伙计们。
Background
I have a GSM modem connected through a COM port. I open the COM port using CreateFile
and I'm able to send various AT commands. I use ATD
to place a CSD (data) call or ATS0=1
to receive one.
Now the problem
How can I know that the connection has broken in the middle of a data call?
Actually, when a call is broken I get a NO CARRIER
message. But the problem is GSM modem mixes the commands/notifications with the actual data. So How can I know if this message is part of the data itself, or it's in fact a call-broken message from the modem?
Thanks, guys.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
CD 信号(载波检测)将关闭。在 GetCommModemStatus() 和 WaitCommEvent() 中命名为 RLSD。当您使用调制解调器时,这在道德上相当于 std::bad_alloc 。
The CD signal (Carrier Detect) will turn off. Named RLSD in GetCommModemStatus() and WaitCommEvent(). That's the moral equivalent of std::bad_alloc when you work with a modem.