2012-04-04 72 views
0

我有件RS232軟件流量控制(又名XON/XOFF)件RS232軟件流量控制

一個一般性的問題的.NET實現(和NATIV的Win32 API)博特定義一個名爲WriteTimeout/ReadTimeout屬性,這是一個時間在ms之後,通信被視爲逾期。

沒有我的問題是這樣的:如果我發送,讓我們說設備的5字節字符串我沒有看到任何WriteTimeout,如預期的那樣。這是如何實施的?我發現的關於軟件流程控制的一切是,當接收緩衝區已滿時,將設置XOFF; XOn準備再次接收時。

但是從我看到的行爲來看,我會懷疑設備在處理了我發送的5字節信息後發送XON,從而爲Windows創建相應事件的信息。

那麼什麼時候只在一根雙線RS232上實現發送XON呢?只有在緩衝區已滿並重新開始接收的情況下;或者表示,我們在處理完每個塊之後仍然「準備好」接收信號。

如何實施?

乾杯& thx提前!

Corelgott

+0

你究竟在做什麼?你正在編寫軟件或設計硬件嗎? – 2012-04-04 08:57:25

回答

0

發送XON任何時候,你都準備好接收數據(你的接收緩衝區爲空或接近)。無論何時您無法接受更多傳入數據(您的接收緩衝區已滿或幾乎如此),請發送XOFF。該過程記錄在維基百科software flow control頁面上。

+0

感謝您指點我的wiki。 「但是:另一端接收到XOFF碼,並暫停傳輸,一旦第一端準備好再次接收數據,它將發送XON,另一端恢復傳輸。」在這種情況下,只有在發送XOFF時才應發送XON? OR:每次控制器處理完任何數據後發送XON?主機發送「abcdef」;客戶端用XON響應;主機發送「ghijk」;客戶迴應XON? – Corelgott 2012-04-04 09:12:16

+0

你不需要發送'XON',除非你先前調節了另一端。但是,您可能需要定期發送一個'XON',以防止噪聲被解釋爲'XOFF'並導致通信中斷。 – 2012-04-04 09:38:09