使用C#将已编译的python文件发送到Telit

时间:2017-09-04 08:37:55

标签: c# python

我需要通过串口将已编译的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);

1 个答案:

答案 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格式。