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