2011-08-29 63 views
0

我正在使用傳統的C++/MFC/Win32代碼。該項目通過單獨的物理串行端口(每個客戶端系統一個)將多種串行協議多路複用到通用前端數據存儲庫。WaitCommEvent與管道兼容?

由於該方案最初設計有代碼,只要設置和系列活動的管理許多假設通過串行端口進行通訊去:ACK/NAK傳輸的驗證,內部字節的延遲檢查,等等

現有體系結構利用WaitCommEvent通過事件通知重疊讀寫。

我的任務是使用單個客戶端管道服務器添加另一個客戶端接口;像串行端口一樣,每個「文件」將支持一個客戶端。

在閱讀WaitCommEvent的文檔時,它看起來像是設計用於OS抽象的物理通信設備;比如串口。

簡單的問題是,我可以利用現有的串行傾斜「等待」模型來使用管道,還是應該繼續並虛擬化它以便可以使用特定管道邏輯覆蓋它?

感謝那些知道我在問什麼的開發者(肯定是少數)。

+0

不,僅限串行端口。管道要簡單得多,OVERLAPPED.hEvent上的WaitForSingleObject()可以完成任務。 –

回答

0

我現在找不到一個好的參考資料,但是我的理解是WaitCommEvent只能用於通信資源,並且管道沒有被定義爲與例如通信資源相同的通信資源。一個串口。 WaitCommEvent等待底層驅動程序設置某些位標誌,就像新字符到達時一樣,我不相信管道(或文件)在內部以這種方式工作。