C# 无法理解AT命令响应
我正在使用我的多波段900E 1800 WAVECOM调制解调器。我使用.Net C#创建了一个项目,通过AT命令与调制解调器通信。但我没有从调制解调器得到任何人类可读的响应。回答是这样的- 'p&p&pØpØRÏRÐÿÔ' 我无法解码响应以便理解 我尝试使用以下方法更改串行端口编码:C# 无法理解AT命令响应,c#,gsm,at-command,modem,C#,Gsm,At Command,Modem,我正在使用我的多波段900E 1800 WAVECOM调制解调器。我使用.Net C#创建了一个项目,通过AT命令与调制解调器通信。但我没有从调制解调器得到任何人类可读的响应。回答是这样的- 'p&p&pØpØRÏRÐÿÔ' 我无法解码响应以便理解 我尝试使用以下方法更改串行端口编码: port.Encoding=Encoding.ASCII port.Encoding=Encoding.UTF8 port.Encoding=Encoding.GetEncoding(“ISO-8859-
- port.Encoding=Encoding.ASCII
- port.Encoding=Encoding.UTF8
- port.Encoding=Encoding.GetEncoding(“ISO-8859-1”)
port = new SerialPort(SERIAL_PORT_NAME)
{
BaudRate = 9600,
DataBits = 8,
Parity = Parity.None,
StopBits = StopBits.One
};
port.Parity = Parity.None;
port.ReadTimeout = 300;
port.WriteTimeout = 300;
//port.Encoding = Encoding.UTF8;
//port.Encoding = Encoding.GetEncoding("ISO-8859-1");
port.DtrEnable = true;
port.RtsEnable = true;
port.Open();
//port.WriteLine("AT+CSCS=GSM");
//response = port.ReadExisting();
port.WriteLine("AT");
response = port.ReadExisting();
此外,我还尝试通过更改CSC:
- AT+CSCS=GSM
- AT+CSCS=UCS2
- AT+CSCS=十六进制
- AT+CSCS=“8859-1”
port = new SerialPort(SERIAL_PORT_NAME)
{
BaudRate = 9600,
DataBits = 8,
Parity = Parity.None,
StopBits = StopBits.One
};
port.Parity = Parity.None;
port.ReadTimeout = 300;
port.WriteTimeout = 300;
//port.Encoding = Encoding.UTF8;
//port.Encoding = Encoding.GetEncoding("ISO-8859-1");
port.DtrEnable = true;
port.RtsEnable = true;
port.Open();
//port.WriteLine("AT+CSCS=GSM");
//response = port.ReadExisting();
port.WriteLine("AT");
response = port.ReadExisting();
如果我在调制解调器上写入,则响应正常。这正是我尝试使用测试调制解调器时发生的情况。但我发现使用.Net生成的每一个应用程序或示例代码都有相同的问题。据我所知,您可以使用公共终端发送AT命令,但无法通过编程实现 我的建议如下:
char(ASCII0x0D
)之后发送到解析器。您确定写线
由
终止,而不是
终止吗?可能使用Port.Write(“AT\r”)
会是一个更好的选择