我在Windows 10主机上安装了Linux(Lubuntu)虚拟机。从我的虚拟机我想通过串口连接python到外部设备并读取1000个字节。因此我使用的是pyserial库。
在Windows 10主机上,我可以使用
if(serialHandler.isOpen()):
serialHandler.read(1000)
一切都很完美。
在linux虚拟机中,相同的代码只给我512字节。所以我试着将read调用放入while循环中。看起来像
if(serialHandler.isOpen()):
while serialHandler.inWaiting():
serialHandler.read(1)
无论如何它只给我512字节。我尝试了几件事但没有成功。我试图延迟线程(休眠)以给外部设备更多时间来处理我的读取请求。我尝试了不同的代码和超时等。
All只给我512字节。我的假设是这个问题的根源与Linux中的串行缓冲区有关但我无法解决它。如何获得我需要的1000字节的后半部分?它与从Linux虚拟机到Windows主机的端口映射有关吗?任何解决问题的提示?
更新
LUBUNTU Linux系统:版本14.04,Ubuntu 14.04.3 LTS
在虚拟机的串行设置中,我尝试使用“Host-Pipe”和“Host-Device”来配置Linux VM系统上的COM端口。两者都没有改变。