2016-06-09 60 views
3

我正在運行中的virtualbox在Ubuntu(16.04)特定應用,而VirtualBox是在Windows 10(主機)上運行。
在Simulink(我的主機上運行),我有一個模擬,其中在最後階段,我收集一些值。我想通過串行連接以一定的波特率將這些值輸出到在virtualbox上運行的應用程序(即QGroundControl站)。連接通過COM端口主體和客體之間的virtualbox

我的問題所以第一部分 - VirtualBox的:

在VirtualBox中,我啓用串行端口和端口模式選擇主機管,如圖 enter image description here

你可以看到圖片使用COM6,但我使用COM1和COM2來代替。兩人都得到了同樣的結果。

我不是用來與VirtualBox的工作,所以我真的不知道,如果這意味着我現在已經創建了主機和客戶之間,或者如果我還需要激活或以任何方式連接的連接?

我的問題的第二部分 - Simulink的:

Simulink中,我要輸出使用串行發送(因爲我認爲這是最簡單的方式,如果有更好的辦法,請告訴我的價值觀?我),但如果我要選擇一個端口,端口顯示,你可以在

enter image description here

什麼我需要做的VirtualBox/SIMULINK /改變讓我的COM端口顯示看向上?

最後一部分 - Matlab的:

因爲在Simulink中,沒有COM端口被證明,我想您在Matlab的可用端口,但顯然我所有的端口都關閉:
`>>資訊= instrhwinfo( '序列')

信息=

HardwareInfo與屬性:

AvailableSerialPorts: {0x1 cell} 
     JarFileVersion: 'Version 3.8' 
ObjectConstructorName: {0x1 cell} 
      SerialPorts: {0x1 cell} 

訪問您的硬件可能由支持包提供。轉到支持包安裝程序來學習more.`

如果我試圖通過使用fopen()函數打開我的港口之一 - 命令,我得到這個消息:使用
錯誤的串行/的fopen
打開失敗:端口:COM1不可用。沒有端口可用。 使用INSTRFIND確定是否有其他儀器對象連接到請求的設備。
使用「INSTRFIND」顯示所有端口都已關閉。

+0

從您的圖片吧看起來您沒有使用[串行配置](http://www.mathworks.com/help/instrument/serialconfiguration.html)塊選擇COM端口,這就是爲什麼在「串行發送」塊中沒有可選項。你能確認你是否做到了嗎? –

+0

該視圖在串行配置塊中是相同的。根本沒有顯示端口。但我會改變圖片以使其更清晰,謝謝你的注意。 – Lis

回答

2

所有虛框的第一不會爲您的主機串行端口。所以你必須使用其他軟件在主機上創建2個虛擬COM端口,並虛擬連接這兩個端口。然後使用一個端口連接到simulink,並且必須以VM COM端口使用此端口的方式設置其他端口。

對於在Windows中創建虛擬COM端口,我將使用com0comFaking an RS232 Serial Port。你可以使用任何你喜歡的軟件。

安裝com0com後,從C:\Program Files (x86)\com0com打開setuppg.exeenter image description here

現在點擊apply。現在你將有COM9COM10橋接(它就像COM9COM10在內部連接)

接下來,我們需要COM9 port in Host連接到COM1 port in Guest OS爲開放Oracle VM VirtualBox Manager並打開您所需的虛擬機的設置。現在,選擇Serial Ports並按照下圖所示進行設置,然後單擊確定。 enter image description here

注意:Windows只用於COM端口1到9。對於所有其他COM端口,你必須使用完整的設備在Windows下的命名約定提供傳統的名字。所以如果你決定使用COM10而不是COM9。將COM10置於Path/Address將無法​​正常工作。相反,您必須使用\\.\COM10

現在啓動虛擬機並準備好您的端口。現在將在simulink中顯示端口並在此場景中連接到COM10,並在虛擬機中將您的QGroundControl station連接到COM1

的Simulink < - > COM10(主機)

COM10(主機)< - > COM9(主機)>>使用com0com

COM9(主機)連接< - > COM1(客戶)>>通過的Oracle VM VirtualBox

COM1(遊客)<連接 - > QGroundControl站

+0

謝謝,我會立即嘗試這個 – Lis

+0

這對我有效!只有在你解釋的最後部分,我認爲你可能已經切換了COM9和COM10,這是可能的嗎? 謝謝你的幫助! – Lis

+0

我似乎沒有發現任何錯誤。它在哪裏 ? –