2016-01-23 4 views
0

Я новый ученик в python. Я хочу создать веб-приложение для отправки sms или вызова с использованием карты данных. Я отправил sms с использованием карты данных, но моя проблема в том, что если я использую несколько карт данных, подключайтесь одновременно, как можно проверить, какой порт USB работает нормально или нет. Поэтому я хочу получить серийный номер usb или usb pid или vid.Идентификация USB для последовательного порта с заданными USB VID и PID с использованием pyserial

import serial.tools.list_ports; 
reslt = serial.tools.list_ports.comports() 
print serial.tools.list_ports.ListPortInfo.name 

Результат:

[('/dev/ttyS31', 'ttyS31', 'n/a'), ('/dev/ttyS30', 'ttyS30', 'n/a'), 
('/dev/ttyS29', 'ttyS29', 'n/a'), ('/dev/ttyS28', 'ttyS28', 'n/a'), 
('/dev/ttyS27', 'ttyS27', 'n/a'), ('/dev/ttyS26', 'ttyS26', 'n/a'), 
('/dev/ttyS25', 'ttyS25', 'n/a'), ('/dev/ttyS24', 'ttyS24', 'n/a'), 
('/dev/ttyS23', 'ttyS23', 'n/a'), ('/dev/ttyS22', 'ttyS22', 'n/a'), 
('/dev/ttyS21', 'ttyS21', 'n/a'), ('/dev/ttyS20', 'ttyS20', 'n/a'), 
('/dev/ttyS19', 'ttyS19', 'n/a'), ('/dev/ttyS18', 'ttyS18', 'n/a'), 
('/dev/ttyS17', 'ttyS17', 'n/a'), ('/dev/ttyS16', 'ttyS16', 'n/a'), 
('/dev/ttyS15', 'ttyS15', 'n/a'), ('/dev/ttyS14', 'ttyS14', 'n/a'), 
('/dev/ttyS13', 'ttyS13', 'n/a'), ('/dev/ttyS12', 'ttyS12', 'n/a'), 
('/dev/ttyS11', 'ttyS11', 'n/a'), ('/dev/ttyS10', 'ttyS10', 'n/a'), 
('/dev/ttyS9', 'ttyS9', 'n/a'), ('/dev/ttyS8', 'ttyS8', 'n/a'), 
('/dev/ttyS7', 'ttyS7', 'n/a'), ('/dev/ttyS6', 'ttyS6', 'n/a'), 
('/dev/ttyS5', 'ttyS5', 'n/a'), ('/dev/ttyS4', 'ttyS4', 'n/a'), 
('/dev/ttyS3', 'ttyS3', 'n/a'), ('/dev/ttyS2', 'ttyS2', 'n/a'), 
('/dev/ttyS1', 'ttyS1', 'n/a'), ('/dev/ttyS0', 'ttyS0', 'n/a'), 
('/dev/ttyUSB3', 'Huawei Technologies Co., Ltd. Modem/Networkcard ', 
    'USB VID:PID=12d1:1506'), 
('/dev/ttyUSB2', 'Huawei Technologies Co., Ltd. Modem/Networkcard ', 
    'USB VID:PID=12d1:1506'), 
('/dev/ttyUSB0', 'Huawei Technologies Co., Ltd. Modem/Networkcard ', 
    'USB VID:PID=12d1:1506')] 

и

import serial.tools.list_ports; 
print [port for port in serial.tools.list_ports.comports() if port[2] != 'n/a'] 

Результат:

[('/dev/ttyUSB3', 'Huawei Technologies Co., Ltd. Modem/Networkcard ', 
    'USB VID:PID=12d1:1506'), 
('/dev/ttyUSB2', 'Huawei Technologies Co., Ltd. Modem/Networkcard ', 
    'USB VID:PID=12d1:1506'), 
('/dev/ttyUSB0', 'Huawei Technologies Co., Ltd. Modem/Networkcard ', 
    'USB VID:PID=12d1:1506')] 

Я изучать http://pyserial.readthedocs.org/en/latest/tools.html

Пожалуйста, помогите мне, как можно получить USB VID, USB серийный номер и т.д.

+0

Вы можете попробовать более новую версию pyserial. В версии 3.0.1 'serial.tools.list_ports.comports()' возвращены 'serial.tools.list_ports.ListPortInfo'ас атрибуты' pid', 'vid' и' serial_number'. – Peter

+0

Я использую Джанго == 1,8 Markdown == 2.4.1 MySQL-питон == 1.2.5 Подушка == 2.5.3 Pygments == 1,6 argparse == 1.2.1 самозагрузки-админ = = 0.3.6 Джанго-распорки == 1.4.0 Джанго-фильтр == 0,7 Джанго-OAuth-инструментарий == 0.7.2 feedparser == 5.1.3 gunicorn == 19.1.1 oauthlib == 0,6 .3 pyserial == 3.0.1 Python-GCM == 0,2 запросов == 2.2.1 шесть == 1.7.3 wsgiref == 0.1.2 Затем дают ошибку: - Traceback (самый последний вызов последнего): Файл "/var/www/html/django/sms/test/usb_info.py", линия 3, в печати serial.tools.list_ports.ListPortInfo AttributeError: объект 'module' не имеет атрибута 'ListPortInfo' –

ответ

0

Чтобы получить VID или PID:

  1. Перейти к диспетчеру устройств
  2. USB последовательной шины контроллеры
  3. Нажмите на требуемую устройство и щелкните правой кнопкой мыши, чтобы перейти к Свойства
  4. Нажмите на вкладку сведений из выпадающего меню, нажмите на Путь к экземпляру устройства

 Смежные вопросы

  • Нет связанных вопросов^_^