C# 使用SerialPort类进行调制解调器到调制解调器的通信

C# 使用SerialPort类进行调制解调器到调制解调器的通信,c#,modem,C#,Modem,我正在重写一个通过TAP和调制解调器发送寻呼机消息的传统应用程序。因此,我必须用C#编写一个新的TAP客户端。使用SerialPort很简单,但我不确定如何处理以下情况: 电话铃声过大,无人接听 没有拨号音 忙信号检测(据我所知,并不是每个调制解调器都启用此功能,因此这是可选的) 远程调制解调器应答 那么我如何以同步的方式读取接收到的数据呢?TAP是同步的,所以我将发出命令,然后期待远程机器的某种类型的响应。我认为我最大的问题是弄清楚如何终止数据。调制解调器数据由CR或CR-LF终止是标准的

我正在重写一个通过TAP和调制解调器发送寻呼机消息的传统应用程序。因此,我必须用C#编写一个新的TAP客户端。使用SerialPort很简单,但我不确定如何处理以下情况:

  • 电话铃声过大,无人接听
  • 没有拨号音
  • 忙信号检测(据我所知,并不是每个调制解调器都启用此功能,因此这是可选的)
  • 远程调制解调器应答
那么我如何以同步的方式读取接收到的数据呢?TAP是同步的,所以我将发出命令,然后期待远程机器的某种类型的响应。我认为我最大的问题是弄清楚如何终止数据。调制解调器数据由CR或CR-LF终止是标准的吗


一些指针会很好,我可以自己阅读的任何参考资料也很好。

这是关于串行通信还是TAP的问题?我从未使用过TAP,但我必须使用串行通信硬件(尽管是在几年前)

我刚找到文件,我搜索了“终结者”。它在这一系列文本中显示了8个不同的单词,其中7个似乎与您的请求有关

我不确定您在串行通信或传统通信系统和硬件方面有多少经验,但您可能会发现超级终端非常有用,它是Windows的一部分。还有其他串行/终端软件,但HyperTerm是免费的,使用简单

您可以使用超级终端向设备发送和接收代码,并检查发送/接收的数据。然后,您可以使用通信转储对TAP通信进行反向工程

--编辑--

关于与调制解调器的交互,我会研究一下Hayes命令集。海斯是一家在80年代早期制造调制解调器的公司。据我所知,从那时起,他们的调制解调器命令就变得相当标准了。浏览一下可用的调制解调器命令,我认为可以解决您的问题,但您可能需要做一些实验

老实说,我从来没有直接使用过调制解调器硬件,所以我提供的信息是基于我今天下午发现的研究。如果我站在你的立场上,我会假设并尝试这些技巧。有关更多信息,请使用谷歌“Hayes命令集”或


希望对您有所帮助。

TAP是Telocator字母数字协议。这不是TAPI。你有遗留应用程序的源代码吗?使用哪种语言?所有这些都是通过代码或任何你不能再使用的黑盒第三方组件完成的?这更多的是关于串行通信,因为我有一份协议副本。这确实有助于解决我的部分问题,我感谢你的回答。对于我需要的拨号/连接状态帮助,您有什么建议或参考资料吗?我可以通过超时来简化很多操作,但如果调制解调器之间发生握手,我不想挂断。