我正在使用Pyserial(+ Python 2.7)来读取从眼动仪(CRS Live-Track设置为串行端口)获取的眼睛跟踪坐标。使用下面的代码,我能够成功启动跟踪器,读取/保存一行坐标,停止跟踪器,然后关闭。我的问题是我需要连续读取坐标,同时执行其他任务,如刺激显示。就目前而言,我在阅读数据时无法做任何事情(' trial1 = ser.readline')。在我继续之前,我必须等到我读完数据。当我显示刺激/收集响应等时,有没有办法连续读取串口数据?
我需要打开跟踪器,在试用期间收集数据,然后关闭跟踪器。
import serial, time
ser = serial.Serial(
port='COM3',
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS,
)
x = ser.is_open #check port is open
if x:
print "port is open"
print "port name is: %s" %(ser.name) #check which port
ser.flushInput()
ser.flushOutput()
running = True
while running:
ser.write('$Raw\r') #start eye-tracker
trial1 = ser.readline() #read a line
###i need to do stuff here###
ser.write('$Stop\r') #stop eye-tracker
running = False
ser.flushInput()
ser.flushOutput()
print trial1 #print coordinates output
ser.close()
干杯, 史蒂夫
答案 0 :(得分:1)
ioHub中的串口文档似乎很少,但这里有一个演示:https://github.com/psychopy/psychopy/blob/master/psychopy/demos/coder/iohub/serial/customparser.py
答案 1 :(得分:1)