У меня есть кнопка, подключенная через адаптер последовательного порта к порту USB.
Окно кнопок имеет 5 кнопок. Я пытаюсь записать, какая кнопка была нажата (и когда). Пока остановлюсь на какой кнопке. Код будет использоваться в эксперименте PsychoPy.
Что я делаю до сих пор, так это:
import serial
import serial.tools.list_ports as port_list
ports = list(port_list.comports()) # search for the devices
#for p in ports: print (p)
ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)
if(ser.isOpen() == False): #open the serial port only if NOT open yet
ser.open()
ser.flushInput() #erase all info in the box about previous button-presses
print("connected to: " + ser.portstr)
line = ser.read()
print(chr(line))
ser.close()
Однако, если я сделаю это, я получу следующую ошибку:
TypeError: an integer is required
Если я проверю line
после нажатия кнопки я получаю следующее значение:
'\x02'
Значение изменяется в зависимости от нажатой кнопки: '\x02'
, '\x03'
et c. Похоже, что он, по крайней мере, обнаруживает нажатие правой кнопки.
Последнее, что я попытался сделать, это следующее. Чтобы преобразовать строку в целое число, я попытался заменить '\x0'
:
line
a=str(line)
a.replace('\x0', "")
a
И я получаю следующую ошибку:
ValueError: invalid \x escape