2014-02-12 179 views
1

我正在通過C++爲ESPA 4.4.4發送數據。連接在COM端口上的程序B通常檢測程序A是否發送數據。爲了測試這個,我創建了兩個與com0com,COM1/CNCB1,COM2/CNCB2配對的虛擬端口。與hub4com我連接像解釋here使用com0com和hub4com創建和測試虛擬串行端口

但是,當我嘗試連接到COM1或COM2與A或B,它不能完成,因爲該端口已被使用。

所以我的問題是,我希望兩個端口進行通信。 - >第一個問題:本教程中的體系結構很適合處理。我的意思是處理COM1/CNCB1和COM2/CNCB2可以嗎?第二個問題:連接兩個端口的命令是「hub4com選項\。\ input_COM \。\ output_COM1」\。\ output_COM2「... 所以我試圖這樣做:」hub4com -baud = 9600 \ 。COM1 \ \ COM2" 的命令是有效的,我得到以下回報:

Open("\\.\COM1", baud=9600, data=8, parity=no, stop=1, octs=off, odsr=off, ox=off, ix=off, idsr=off, ito=0) - OK 
Open("\\.\COM2", baud=9600, data=8, parity=no, stop=1, octs=off, odsr=off, ox=off, ix=off, idsr=off, ito=0) - OK 
Route data COM1(0) --> COM2(1) 
Route data COM2(1) --> COM1(0) 
Route flow control COM1(0) --> COM2(1) 
Route flow control COM2(1) --> COM1(0) 
Started COM1(0) 
Started COM2(1) 

讓道路建立和DATAS應該溝通,但我不能用我的節目的COM端口連接。所以我試圖用CNCB1和CNCB2來連接,我可以在COM端口上連接,但是我不知道數據是否已經到達

- >第三個問題:有沒有一種可靠的方法來知道COM1發送數據到COM2?只需一個小軟件即可偉大的,來測試架構:)

回答

1
  1. 它應該沒問題,他們只是名字。如果你打算讓一個人處於中間類型的應用程序中,你希望數據流動如下...(ProgramA - > COM1 - > CNCB1 - > ProgramB - > COM2 - > CNCB2 - > Destination。)因此,ProgramB應該爲CNCB1和COM2都開放端口。

  2. 我不太熟悉hub4com給你一個答案。這聽起來像hub4com打開端口,你的應用程序也試圖打開端口。只有一個應用程序可以訪問端口。

  3. 聽起來像你需要一個端口監視器。 http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx

0

Portmon被中斷並在最近(64)不工作的Windows版本...

所以,現在,在Windows中,你可以使用這個漂亮的程序:Serial-Lab

我一個類似的問題,並且還將com0com與上述SerialLab結合使用。 當com0com安裝完成後,它創建了COM3和COM4端口,我使用這兩個端口進行測試。在你的情況下,似乎你有com0com創建的COM1和COM2?

在我的(Java)應用程序中,我將數據發送到COM4,而在連接到COM5的SerialLab中,我能夠讀取從我的Java應用程序發送的數據。您也可以從SerialLab發送數據,因此您可以測試模擬全方位的通信。

另一個類似的程序也是MyTerm