第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 C# 中復(fù)制 Tera Term SerialPort 命令?

如何在 C# 中復(fù)制 Tera Term SerialPort 命令?

C#
智慧大石 2023-09-16 16:09:49
在 Tera Term 中,我通過 USB 連接到串行設(shè)備(啟動(dòng)時(shí)選擇單選按鈕“串行”和正確的端口)。連接后,我僅將默認(rèn)速度更改為 115200(在設(shè)置=>串行端口中)。之后,tera term 要求我填寫如下命令:命令>我填寫設(shè)備特定命令。在本例中,它是“PC”,我收到預(yù)期的響應(yīng),即?!癆BC”現(xiàn)在我正嘗試在 C# 中做同樣的事情。不幸的是,我得到的響應(yīng)始終與我實(shí)際輸入的命令相同。因此,如果我輸入“PC”,則響應(yīng)是“PC”,但我期望“ABC”。其他命令也有同樣的問題。命令 ”?” 回應(yīng)“?” 而我期待的是“CBA”。如果我輸入錯(cuò)誤的命令 => 然后我會(huì)收到消息“未知命令”所以我懷疑設(shè)備實(shí)際上獲得了正確的命令。我正在使用以下代碼:        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(); 然后我執(zhí)行以下操作:    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);    }我嘗試過不同的事情,但我無法讓它發(fā)揮作用。希望這是因?yàn)槲覍?duì)此很陌生。我以前從未使用過 Tera term。
查看完整描述

1 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

新線似乎是一個(gè)問題。


我需要使用 Comport.Write (而不是 WriteLine)。然后我還需要附加一個(gè)回車符“\r”,但沒有換行符“\n”,正如我之前所想的那樣。(傳入的數(shù)據(jù)在“Command>”之后顯示了一個(gè)換行符,使得無法發(fā)送另一個(gè)有意義的命令=>原因是“\n”=>刪除它解決了問題)


這是我當(dāng)前似乎有效的代碼(我不再需要附加“Command>”,只需按原樣發(fā)送命令):


        if (thecommand == "")

        {

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

            return;

        }


        ComPort.DiscardInBuffer();

        ComPort.DiscardOutBuffer();


        string Command1 = thecommand + "\r";


        ComPort.Write(Command1);


查看完整回答
反對(duì) 回復(fù) 2023-09-16
  • 1 回答
  • 0 關(guān)注
  • 241 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)