Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何与USB 3G调制解调器通信?_C#_Windows_Usb_Serial Port_Modem - Fatal编程技术网

C# 如何与USB 3G调制解调器通信?

C# 如何与USB 3G调制解调器通信?,c#,windows,usb,serial-port,modem,C#,Windows,Usb,Serial Port,Modem,我有一个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调制解调器(附于

我有一个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命令,速度是多少?


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

为了学习,我随后安装了“免费串行端口监视器”嗅探器应用程序,希望能够在D-Link打开和关闭互联网连接(正常工作)时监视与它的通信

启动时,嗅探器应用程序询问要监视的端口,并提供以下端口名称供我选择:

  • “AGER系统HDA调制解调器”
  • “D-Link HSPADataCard专用USB调制解调器”
  • “COM3”
  • “COM4”
  • “COM5”
  • …还有更多,包括“COM19”
选择“D-Link…”名称可以正常工作,现在我可以观察所有AT命令的使用情况,但我无法确定端口使用的波特率。此外,COM4、COM5或COM19都不能以这种方式进行嗅探(这些端口上似乎没有发生任何事情)


现在我想使用.NET中的SerialPort类打开“D-Link…”端口并与USB调制解调器通信,但SerialPort类要求端口名以“COM”开头,否则会引发异常。但是普通的COM端口都不能工作。我仍然不知道使用哪种波特率。我非常困惑并被锁在这里-我能做些什么来弄清这一点呢?

在通过
CreateFile()
和目标COM端口获得句柄后,您可以使用
GetCommState()


好的,各位,谢谢你们的想法和意见。我做了更多的研究,最后我意识到,为了做我想做的事情,我根本不需要担心串口和命令。所需要的只是执行几个Windows RAS调用

如果我的问题更具体一点,我想用AT命令做什么,你肯定早就告诉我RAS了

我发现了一个很好的.Net DLL(),它包装了本机Windows RAS以便从托管代码中使用,它似乎正是我所需要的(从代码中拨一个3G调制解调器连接,使用我连接的任何类型的3G调制解调器)


再次感谢您抽出时间。

Agere Systems HDA调制解调器为COM1,而D-Link HSPADataCard专有USB调制解调器可能为COM2。您可以随时联系D-Link询问这些问题,因为除非我们自己拥有设备,否则我们不可能给您提供准确的解决方案。+1:我还需要对中兴MF190进行类似的操作。您可以发布一个使用DotRas发送AT命令的示例代码吗?DotRas不公开串行层,回答42。使用.NET SerialPort类就足够了。对于USB蜂窝调制解调器来说,9600 bps似乎是一种常见的“假”速度。