我需要通过串口将已编译的python文件(.pyo扩展名)发送到带有C#的Telit调制解调器。我正在编写一个C#应用程序,以便于将编译文件下载到调制解调器。我可以成功地将文件发送到超级终端的调制解调器,但我无法从C#中执行此操作。
用C#我可以看到(AT#LSCRIPT)和删除(AT#DSCRIPT)文件进入调制解调器。所以没有问题级别的沟通,我认为这句话中存在问题“文件应该使用RAW ASCII文件传输发送”(因为我在循环中得到“>>>”)。string rst = File.ReadAllText(@"D:\smsp\EV.pyo", Encoding.GetEncoding(28591));
sp.Write("AT&K2\r");
Thread.Sleep(500);
sp.Write("AT+IPR=115200\r");
Thread.Sleep(500);
sp.Write("AT#WSCRIPT=\"EV.pyo\",1160,0" + System.Environment.NewLine);
rep = sp.ReadExisting();
while (!rep.Contains(">>>"))
{
rep = sp.ReadExisting();
}
sp.Write(rst);
Thread.Sleep(10000);
答案 0 :(得分:0)
您可以使用ASCIIEncoding类获取需要发送的命令的ASCII表示的字节:
byte[] bytes = System.Text.Encoding.ASCIIEncoding.GetBytes(your_command_string);
然后使用SerialPort.Write(Byte[], Int32, Int32)
overload发送字节:
sp.Write(bytes,0,bytes.Length);
检查换行符是否必须采用Windows \r\n
或Unix \n
格式。