2011-01-27 44 views
1

我開發了一個通過串口讀取設備的c#應用程序。我實現了寫入,但不正確。現在我的場景是自動通過串口格式化設備。首先,我必須在設備等待時發送按鍵(當我在richtextbox中看到「按任意鍵停止自動引導」時)。我怎樣才能做到這一點?我通過寫入串口(serialport1.write(「xxxx \ r \ n」))實現了這一點,當我在richtextbox中得到命中消息時,但我認爲這是休閒richtextbox不是一個好主意。你可以建議任何其他方式?通過串口同步c#app和設備

我的重要問題是讓我們想想我們處理命中消息並停止自動啓動。現在我們必須發送命令到設備進行格式化。例如,第一個是fdisk命令,第二個是ext3format,第三個是fatformat。將這些命令發送到設備時,這些命令需要時間。我如何同步我的命令和設備,因爲當我嘗試這樣做時,我遇到了一些問題。問題是在發送第一個命令並且設備完成其工作之後,我必須發送其他命令。我只能休息richtextbox,並根據輸出我試圖發送休閒命令。你可以建議任何其他方式?我是否必須休止richtextbox輸出,是否有任何其他方式來了解設備發送命令後完成其作業?

謝謝

回答

2

顯然,要通過一個串行端口連接(遠程登錄?)使用遠程控制檯到設備中,並且該設備在使用Linux操作系統。所以基本上你可以在程序中模擬用戶輸入和輸出。

首先,您需要識別設備逐字節發送的輸出。不要專注於「richtextbox」,你只是用它來顯示你從設備上得到的東西。

您需要處理串行數據,並查找可識別的數據模式(例如,format命令的結果代碼,再次顯示命令提示符時發送的文本等) 。

當它顯示「按任意鍵」時,您需要通過設備識別的串行端口發送字符。

您還需要知道設備期望您使用哪種終端模式仿真(google),因爲這會影響您應如何格式化發送到設備的代碼以及如何解釋您從其接收的字符。

你想要做的事很簡單,基本上你正在爲設備編寫一個自動化的遠程終端,但它確實需要你讀一些東西,並停止關注文本框顯示的內容,並開始關注數據字節進出你的設備。

+0

謝謝你的回答。我會嘗試一些。 –

+0

「,並停止關注文本框顯示的內容,並開始關注進出設備的數據字節」......非常好的建議!它是所有這些RAD工具的一個副作用,其中懶/弱開發者使用UI小部件作爲正確數據結構的快速和令人討厭的替代品! Rant Over :) –