11

我有一个 D-Link DWM-156 3G USB 调制解调器,我想从我的应用程序(在 Windows XP SP3 上运行的 C# .NET 4.0)发送 AT 命令。

插入并安装驱动程序后,调制解调器显示如下:

设备管理器中,添加了两个串口:

  • D-Link HSPADataCard 诊断接口 (COM4)
  • D-Link HSPADataCard NMEA 设备 (COM5)

控制面板、电话和调制解调器选项中,添加了一个新调制解调器:

  • D-Link HSPADataCard 专有 USB 调制解调器(连接到 COM19)

问题:我应该使用哪个 com 端口来发送 AT 命令,以及以什么速度?


我已经以不同的速度尝试了所有三个端口,但没有任何运气。

为了学习,我安装了“Free Serial Port Monitor”嗅探器应用程序,希望能够在打开和关闭互联网连接时监控与 D-Link 实用程序的通信(工作正常)。

开始时,嗅探器应用程序会询问我要监控哪个端口,并提供以下端口名称供我选择:

  • “杰尔系统 HDA 调制解调器”,
  • "D-Link HSPADataCard 专有 USB 调制解调器",
  • "COM3",
  • "COM4",
  • “COM5”
  • ...还有更多,包括“COM19”。

选择“D-Link ...”名称可以正常工作,现在我可以看到正在使用的所有 AT 命令,但我无法确定端口使用的波特率。此外,COM4、COM5 或 COM19 都不能以这种方式进行嗅探(这些端口上似乎没有发生任何事情)。

现在我想使用.NET中的SerialPort类打开“D-Link...”端口并与USB调制解调器通信,但是SerialPort类要求端口名称以“COM”开头,否则异常是抛出。但是普通的 COM 端口都不起作用。而且我仍然不知道使用哪个波特率。我很困惑并被关在这里——我该怎么做才能弄清楚这件事呢?

4

2 回答 2

7

好的,谢谢您的所有想法和意见。我做了一些更多的研究,最后我意识到,为了做我想做的事,我根本不必为串行端口和 AT 命令而烦恼。所需要的只是执行一些 Windows RAS 调用。

如果我在关于我想用我的 AT 命令做什么的问题中更具体一点,你肯定会在很久以前告诉我关于 RAS 的!

我找到了一个不错的 .Net DLL ( DotRas ),它封装了本地 Windows RAS 以供托管代码使用,它似乎可以满足我的需要(从代码拨打 3G 调制解调器连接,我连接的任何类型的 3G 调制解调器)。

再次感谢您的宝贵时间。

于 2012-06-25T19:18:38.397 回答
0

通过与目标 COM 端口GetCommState()获取句柄后,您可以使用,:CreateFile()

http://msdn.microsoft.com/en-us/library/aa915369.aspx

于 2012-06-25T06:01:08.273 回答