为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 C# 中复制 Tera Term SerialPort 命令?

如何在 C# 中复制 Tera Term SerialPort 命令?

C#
智慧大石 2023-09-16 16:09:49
在 Tera Term 中,我通过 USB 连接到串行设备(启动时选择单选按钮“串行”和正确的端口)。连接后,我仅将默认速度更改为 115200(在设置=>串行端口中)。之后,tera term 要求我填写如下命令:命令>我填写设备特定命令。在本例中,它是“PC”,我收到预期的响应,即。“ABC”现在我正尝试在 C# 中做同样的事情。不幸的是,我得到的响应始终与我实际输入的命令相同。因此,如果我输入“PC”,则响应是“PC”,但我期望“ABC”。其他命令也有同样的问题。命令 ”?” 回应“?” 而我期待的是“CBA”。如果我输入错误的命令 => 然后我会收到消息“未知命令”所以我怀疑设备实际上获得了正确的命令。我正在使用以下代码:        SerialPort COMport = new SerialPort(Port_Name, Baud_Rate); //Create a new  SerialPort Object (defaullt setting -> 8N1)        COMport.DataReceived += new SerialDataReceivedEventHandler(sPort_dataReceived);        COMport.ErrorReceived += new SerialErrorReceivedEventHandler(sPort_ErrorReceived);        COMport.BaudRate = 115200;        COMport.Parity = Parity.None;        COMport.DataBits = 8;        COMport.StopBits = StopBits.One;        COMport.RtsEnable = true;        COMport.Handshake = Handshake.None;        COMport.Open();        COMport.WriteLine(Data);        Thread.Sleep(1000); // Just discovered after a lot of testing that this is necessary to read the response before the Comport closes        COMport.Close(); 然后我执行以下操作:    private void sPort_dataReceived(object sender, SerialDataReceivedEventArgs e)    {        SerialPort sp = (SerialPort)sender;        string indata = sp.ReadExisting();        Console.WriteLine("Data Received:");        Console.Write(indata);        MessageBox.Show(indata);    }我尝试过不同的事情,但我无法让它发挥作用。希望这是因为我对此很陌生。我以前从未使用过 Tera term。
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

新线似乎是一个问题。


我需要使用 Comport.Write (而不是 WriteLine)。然后我还需要附加一个回车符“\r”,但没有换行符“\n”,正如我之前所想的那样。(传入的数据在“Command>”之后显示了一个换行符,使得无法发送另一个有意义的命令=>原因是“\n”=>删除它解决了问题)


这是我当前似乎有效的代码(我不再需要附加“Command>”,只需按原样发送命令):


        if (thecommand == "")

        {

            ComPort.Write("\r"); //start from a clean slate

            return;

        }


        ComPort.DiscardInBuffer();

        ComPort.DiscardOutBuffer();


        string Command1 = thecommand + "\r";


        ComPort.Write(Command1);


查看完整回答
反对 回复 2023-09-16
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信