Python pyserial - PullRequest
       13

Python pyserial

0 голосов
/ 06 декабря 2018

Я запускаю устройство под названием ольфактометр из Python 2.7 Anaconda Spyder 64 бит.В этом ольфактометре восемь электромагнитных клапанов TTL.Если я хочу изменить статус этого клапана, я просто должен написать нижеприведенный код.

import serial
import time

port = serial.Serial("COM3", 19200, timeout=0.5)
#turn on port 2, sleep 2 seconds, turn off port 2
port.write(b"\nF2\r")  # if opened then close port 2
time.sleep(2.0)
port.write(b"\nF2\r")  # if closed then open port 2


#close the port
port.close()

Хотелось бы знать, можно ли дать порту 2 конкретные значения от 0 или 1?

например

if 'e' in keypress: 
    # it must open the port 2
if 'i' in keypress:
    # it must close the port 2

Что мне делатьвыполнить тест вышеупомянутым способом?Заранее спасибо!- Рави

1 Ответ

0 голосов
/ 06 декабря 2018

Один из способов захвата ввода - встроенная функция raw_input (input в Python3).Например

port = serial.Serial("COM3", 19200, timeout=0.5)

prompt = 'Press "e" to open, "i" to close, and "q" to quit: '
keypress = raw_input(prompt)
while keypress != 'q':
    if keypress == 'e':
        port.write(b"\nF2\r")  # if closed then open port 2
        print('Opened')
    elif keypress == 'i':
        port.write(b"\nF2\r")  # if opened then close port 2
        print('Closed')
    # prompt again    
    keypress = raw_input(prompt)

port.close()
...