我在VirtualBox上运行Ubuntu(16.04)上的某个应用程序,而VirtualBox在Windows 10(主机)上运行 .
在Simulink(在我的主机上运行),我有一个模拟,在最后阶段,我收集一些值 . 我想通过串行连接以特定的波特率将这些值输出到VirtualBox上运行的应用程序(即QGroundControl站) .
So first part of my question - VirtualBox:
在VirtualBox中,我启用了串口并在端口模式下选择了主机管道,如下所示:
在图片中你可以看到使用了COM6,但我使用的是COM1和COM2 . 我得到了相同的结果 .
我不习惯使用VirtualBox,所以我真的不知道这是否意味着我现在已经在我的主机和来宾之间 Build 了连接,或者我是否还需要以任何方式激活或连接它们?
Second part of my question - Simulink:
在Simulink中,我想使用串行发送输出我的值(因为我认为这是最简单的方法?如果有更好的方法,请告诉我),但如果我想选择一个端口,则不显示任何端口,如你可以看到:
在VirtualBox / Simulink中我需要做什么/更改才能显示我的COM端口?
Last part - MATLAB:
因为在Simulink中,没有显示COM端口 . 我想检查MATLAB中的可用端口,但显然我的所有端口都已关闭:
>> info = instrhwinfo('serial')
info =
HardwareInfo with properties:
AvailableSerialPorts: {0x1 cell}
JarFileVersion: 'Version 3.8'
ObjectConstructorName: {0x1 cell}
SerialPorts: {0x1 cell}
Access to your hardware may be provided by a support package. Go to the Support Package Installer to learn more.
如果我尝试使用fopen() - 命令打开我的一个端口,我会收到以下消息:
使用serial / fopen时出错打开失败:端口:COM1不可用 . 没有端口可用 . 使用INSTRFIND确定是否有其他仪器对象连接到所请求的设备 . 使用“INSTRFIND”表示所有端口都已关闭 .
1 回答
首先,VirtualBox不会为您的主机创建串行端口 . 因此,您必须使用其他软件在主机上创建两个虚拟COM端口,并虚拟地桥接这两个端口 . 然后使用一个端口连接到Simulink,其他必须以VM COM端口使用此端口的方式进行设置 .
要在Windows上创建虚拟COM端口,我将使用Faking an RS232 Serial Port来自Faking an RS232 Serial Port . 您可以使用任何您喜欢的软件 .
安装com0com后,从
C:\Program Files (x86)\com0com
打开setuppg.exe
.现在点击申请 . 现在你将
COM9
和COM10
桥接(它就像COM9
和COM10
在内部连接) .接下来,我们需要将
COM9 port in Host
连接到COM1 port in Guest OS
,以打开Oracle VM VirtualBox Manager
并打开所需虚拟机的设置 . 现在,选择如下所示的串行端口和设置,然后单击确定 .现在启动虚拟机,端口就绪 . 现在,端口将显示在Simulink中并连接到此方案中的
COM10
,在虚拟机中,将QGroundControl station
连接到COM1
.