Чтение последовательного сигнала с порта USB с Python - PullRequest
0 голосов
/ 27 мая 2020

Я новичок в этом, поэтому прошу прощения, если мой вопрос необразован: у меня есть USB-устройство, для которого я знаю ProductID и VendorID. Насколько я понимаю, это должно быть HID-устройство, которое отправляет последовательный поток на мой компьютер. Я должен был написать сценарий в python, чтобы читать этот последовательный поток, но я ничего не добился. Есть ли способ для библиотеки последовательного порта Python найти устройство по PID и VID?

1 Ответ

0 голосов
/ 27 мая 2020

В OSX можно найти:

tty
/dev/ttys000

Или:

$ who
trane    console  Sep  1 05:18 
trane    ttys000  Sep  1 05:19 
trane    ttys001  Sep  1 05:19

$ w
13:04  up 1 day,  7:46, 3 users, load averages: 1.85 2.02 3.87
USER     TTY      FROM              LOGIN@  IDLE WHAT
trane    console  -                Sun05   31:45 -
trane    s000     -                Sun05       - w
trane    s001     -                Sun05       9 -bash

Вы можете попробовать что-то вроде этого:

import serial;
import io;
import time;
import os;

if __name__ == '__main__' :
    try :
        # configure the serial connections (the parameters differs on the device you are connecting to)
        with serial.Serial(port='/dev/ttyUSB0', baudrate=9600, timeout=1,
                       xonxoff=False, rtscts=False, dsrdtr=True) as s:
            for line in s:
                print(line)

    except :
        print('Program exit !')
        pass
    finally :
        ser.close()
    pass

Или:

import serial, sys
port = your_port_name
baudrate = 9600
ser = serial.Serial(port,baudrate,timeout=0.001)
while True:
    data = ser.read(1)
    data+= ser.read(ser.inWaiting())
    sys.stdout.write(data)
    sys.stdout.flush()

В зависимости от вашего устройства вы можете настроить некоторые параметры как:

parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_TWO,
bytesize=serial.SEVENBITS
...