2015-08-15 3 views
1

Я запускаю код python, который подключен к двум последовательным портам, huawei dongle и zigbee. Я понимаю, что для того, чтобы узнать, какой порт использует ключ, я должен использовать gammu. И zigbee всегда использует dev/ttyUSB0. Однако, если я должен автоматически запускать скрипт Python при загрузке, как малина pi должна знать, какой порт подключен к USB-порту? И есть ли способ, которым я мог бы сразу запустить код для смс, не используя гамму, чтобы узнать порт?Python USB Последовательные порты связи

ответ

0

Если вы спрашиваете, «как я могу сказать, если/DEV/ttyUSB0 является Huawei донгл или ZigBee», то вы можете сделать следующее для каждого устройства:

udevadm info --name /dev/ttyUSB0 --query property --export 

Например, у меня есть FTDI последовательный порт и выход для команды:

DEVLINKS='/dev/serial/by-id/usb-FTDI_USB__-__Serial-if00-port0 /dev/serial/by-path/platform-bcm2708_usb-usb-0:1.2:1.0-port0' 
DEVNAME='/dev/ttyUSB0' 
DEVPATH='/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB0/tty/ttyUSB0' 
ID_BUS='usb' 
ID_MODEL='USB__-__Serial' 
ID_MODEL_ENC='USB\x20\x3c-\x3e\x20Serial' 
ID_MODEL_FROM_DATABASE='FT232 USB-Serial (UART) IC' 
ID_MODEL_ID='6001' 
ID_PATH='platform-bcm2708_usb-usb-0:1.2:1.0' 
ID_PATH_TAG='platform-bcm2708_usb-usb-0_1_2_1_0' 
ID_REVISION='0400' 
ID_SERIAL='FTDI_USB__-__Serial' 
ID_TYPE='generic' 
ID_USB_DRIVER='ftdi_sio' 
ID_USB_INTERFACES=':ffffff:' 
ID_USB_INTERFACE_NUM='00' 
ID_VENDOR='FTDI' 
ID_VENDOR_ENC='FTDI' 
ID_VENDOR_FROM_DATABASE='Future Technology Devices International, Ltd' 
ID_VENDOR_ID='0403' 
MAJOR='188' 
MINOR='0' 
SUBSYSTEM='tty' 
UDEV_LOG='3' 
USEC_INITIALIZED='2247071814106' 

Там должно быть достаточно различий в выходе на два ваших устройств, чтобы быть в состоянии решить, какой из которых, например, ID_VENDOR от FTDI в этом случае. ID_VENDOR_ID и ID_MODEL_ID из 0403 и 6001 соответствуют тому, что вы можете увидеть в:

$ lsusb 
... 
Bus 001 Device 006: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC 

Если устройства можно отличить по ID_SERIAL вы можете найти их в /dev/serial/by-id/ как символическую ссылку на соответствующий ttyUSB *, например, для моего FTDI:

/dev/serial/by-id/usb-FTDI_USB__-__Serial-if00-port0 -> ../../ttyUSB0 

Если вы подключите устройство в тот же порт USB каждый раз, вы можете найти подходящий ttyUSB как символическую ссылку под /dev/serial/by-path/, например:

/dev/serial/by-path/platform-bcm2708_usb-usb-0:1.2:1.0-port0 -> ../../ttyUSB0 
+0

Да, я попробовал, но я имел в виду, что, используя huawei, мне нужно сделать gammu, чтобы узнать, какой порт я использую, чтобы перейти к отправке sms. Но дело в том, что мне нужно протестировать 3 порта ttyUSB0 на ttyUSB2, чтобы настроить последовательный порт для huawei. – Skyee

+0

О, и спасибо тоже – Skyee

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