Cố gắng viết một chương trình python để tạo một luồng dữ liệu mô phỏng và cung cấp nó, thông qua một đường ống có tên, đến một máy ảo VMware. Máy chủ đang chạy Ubuntu 11.10 và VMware player 5.0.0. Vm đang chạy netbook Ubuntu 10.04. Tôi có thể làm cho đường ống hoạt động trên máy cục bộ nhưng tôi không thể lấy đường ống để truyền dữ liệu qua cổng nối tiếp ảo đến các chương trình chạy trên máy ảo.
#!/usr/bin/python
import os
#
# Create a named pipe that will be used as the serial port on a VMware virtual machine
SerialPipe = '/tmp/gpsd2NMEA'
try:
os.unlink(SerialPipe)
except:
pass
os.mkfifo(SerialPipe)
#
# Open the named pipe
NMEApipe = os.open(SerialPipe, os.O_RDWR|os.O_NONBLOCK)
#
# Write a string to the named pipe
NMEAtime = "235959"
os.write(NMEApipe, str( '%s\n' % NMEAtime ))
- Kiểm tra xem chương trình python có hoạt động trên máy chủ không (hiển thị 235959 nếu dữ liệu được truyền qua đường ống)
$ mèo / tmp / gpsd2NMEA
235959
- Cổng nối tiếp như được định nghĩa trong tệp VMware .vmx:
serial0.present = "TRUE"
serial0.startConnected = "TRUE"
serial0.fileType = "ống"
serial0.fileName = "/ tmp / gpsd2NMEA"
serial0.pipe.endPoint = "khách hàng"
serial0.autodetect = "FALSE"
serial0.tryNoRxLoss = "TRUE"
nối tiếp0.yieldOnMsrRead = "TRUE"
- Kiểm tra xem cổng nối tiếp trong VM có nhận dữ liệu không
$ cat / dev / ttyS0
hoặc
$ minicom -D / dev / ttyS0
hoặc
$ stty -F / dev / ttyS0 cs8 -parenb -cstopb 115200
$ echo </ dev / ttyS0
- Không ai trong số này hiển thị bất kỳ dữ liệu nào từ chương trình python.