我目前正在开展一个项目,该项目要求我从GPIB总线串行通信通道中获取数据并将输出文件转储到一个文件夹中。请找到以下代码,
import os.path
import serial
import sys
from time import sleep
comport = '/dev/ttyUSB0'
ser = serial.Serial()
try:
ser = serial.Serial( comport, 9600, timeout=0.5 )
# Switch to DEVICE mode
cmd = '++mode 0'
print('Sending:', cmd)
cmd = cmd + '\n'
ser.write(cmd.encode('UTF-8'))
s = ser.read(256);
if len(s) > 0:
print(s)
# Set instrument to LISTEN ONLY mode
cmd = '++lon 1'
print('Sending:', cmd)
cmd = cmd + '\n'
ser.write(cmd.encode('UTF-8'))
while True:
s = ser.read(256);
if len(s) > 0:
print(s)
except(serial.SerialException, e):
print(e)
f.close()
except(KeyboardInterrupt, e):
ser.close()
f.close()
我还没有对代码进行测试,但它应该可行。将GPIB适配器设置为++ lon模式使其只需通过GPIB总线监听所有通信。
执行代码时,我会看到一个数据流。我想将每一行流写入一个文件,直到找到以下匹配" U \ r \ n " ,这表示1个流的结束,此后的命令应该写入下一个文件,依此类推。
包含" U \ r \ n "也应该是最后一行写入输出文件。