C# 用C语言访问GSM调制解调器#

C# 用C语言访问GSM调制解调器#,c#,gsm,C#,Gsm,我有一个GSM调制解调器,它有一个特定的命令集。我想用我的c代码调用这些命令。有可能这样做吗 GSM调制解调器型号:MOD 9001明基GSM/GPRS调制解调器 我没有任何库可以与此调制解调器交互如果不知道您提到的特定调制解调器的任何详细信息,与调制解调器通信的一般方法是打开串行端口连接并以纯文本与调制解调器通信。通常使用某种变体的。对于.NET,您可能需要参考System.IO.Ports.SerialPort(请参阅)。连接参数(波特率、数据位、停止位、奇偶校验、流量控制)取决于调制解调器

我有一个GSM调制解调器,它有一个特定的命令集。我想用我的c代码调用这些命令。有可能这样做吗

GSM调制解调器型号:MOD 9001明基GSM/GPRS调制解调器


我没有任何库可以与此调制解调器交互

如果不知道您提到的特定调制解调器的任何详细信息,与调制解调器通信的一般方法是打开串行端口连接并以纯文本与调制解调器通信。通常使用某种变体的。对于.NET,您可能需要参考
System.IO.Ports.SerialPort
(请参阅)。连接参数(波特率、数据位、停止位、奇偶校验、流量控制)取决于调制解调器,但最好尝试57600、8个数据位、1个停止位、无奇偶校验和硬件流量控制;这些是典型的参数。端口的名称在很大程度上取决于它如何连接到您的系统,但如果您不知道,最好看一下COM端口下的Windows设备管理器。

我看到这个问题很老了,但与我自己的调制解调器有相同的原因。我正在使用C#atm访问我自己的调制解调器

它们与调制解调器的连接方式与前面提到的
System.IO.Ports.SerialPort
相同。您必须告诉它要连接到哪个COM端口

假设您已安装调制解调器的标准驱动程序,并且调制解调器已连接到计算机,则可以使用以下方法获取打开的COM端口列表:

string[] com_ports = SerialPort.GetPortNames();
假设您要从上面的阵列连接到第一个COM端口。打开端口的过程很简单,如下所示:

SerialPort port = new SerialPort();
port.portname = com_ports[0];
// ... Insert other port parameters
port.Open();
将命令写入调制解调器非常简单:

port.write("some command");
而回应又回到了:

String response = port.ReadExisting();
。。只需记住在调制解调器所有命令的末尾添加
“\r”
。我花了一天时间才发现,为什么我的调制解调器没有响应我的命令…:-)

要通知来电:-

ReceivingBuffer+=serialPort1.ReadExisting()

要激活GSM,请发送以下命令:-


serialPort1.Write(“AT\r\n”)

你能提供更多的细节吗?具体是什么GSM型号(品牌/型号),通过代码(.NET library/COM Interop)与它有什么接口等。
    serialPort1 = new EnhancedSerialPort();
    serialPort1.PortName ="COM 11";  // check it in your case
    serialPort1.BaudRate = 115200; //suggested
    recievingBuffer = "";
    serialPort1.ReadTimeout = 400;
    serialPort1.WriteTimeout = 400;