我有一个D-Link DWM-156 3G USB调制解调器,我想从我的应用程序(在Windows XP SP3上运行的C#.NET 4.0)发送AT命令。
插件和安装驱动程序后,调制解调器显示如下:
在设备管理器中,添加了两个串行端口:
在控制面板,手机和调制解调器选项中,添加了一个新的调制解调器:
问题:我应该使用哪个COM端口发送AT命令,以及以哪种速度发送?
我已经以不同的速度尝试了所有三个端口,但没有任何运气。
为了便于学习,我随后安装了“Free Serial Port Monitor”嗅探器应用程序,希望能够在打开和关闭互联网连接时监控与D-Link实用性的通信(工作正常)。
一开始,嗅探器应用程序会询问我要监视哪个端口,并提供以下端口名称供您选择:
选择“D-Link ...”名称工作正常,现在我可以看到正在使用的所有AT命令,但我无法确定端口的使用波特率。此外,COM4,COM5或COM19都不能以这种方式进行嗅探(这些端口上似乎没有任何事情发生)。
现在我想在.NET中使用 SerialPort 类来打开“D-Link ...”端口并与USB调制解调器通信,但是 SerialPort 类要求端口名称以“COM”开头,否则抛出异常。但是普通的COM端口都不起作用。我仍然不知道使用哪种波特率。我非常困惑并被锁在这里 - 我能做些什么才能到达底部?
答案 0 :(得分:7)
好的伙计们,感谢您的所有想法和意见。我做了一些更多的研究,最后我意识到,为了做我想要的事情,我根本不需要打扰串口和AT命令。所需的只是进行一些Windows RAS调用。
如果我在关于我的AT命令想要做什么的问题上稍微具体一点,那么很久以前你肯定会告诉我有关RAS的信息!
我发现了一个很好的.Net DLL(DotRas)包装本机Windows RAS以便从托管代码中使用,它似乎正是我所需要的(从代码拨打3G调制解调器连接,任何类型的我附加的3G调制解调器。)
再次感谢您的时间。
答案 1 :(得分:0)
在通过目标COM端口GetCommState()
获取句柄后,您可以使用CreateFile()
: