복붙노트

[PYTHON] USB 장치 식별

PYTHON

USB 장치 식별

우분투 9.04에서 파이썬을 사용하고 있습니다. 나는 두 대의 USB 장치가 하나의 PC에 연결되어 있다고 말한다. 어떻게 내가 파이썬 코드 ..... .....에 대한 장치를 식별 할 수 있습니다

if usb port id == A      장치 1에 데이터 쓰기 if usb port id == B      장치 2에 데이터 쓰기

어떤 아이디어 ....

해결법

  1. ==============================

    1.당신은 pyUsb 해본 적이 있습니까? 여기에 할 수있는 일의 미리보기 :

    당신은 pyUsb 해본 적이 있습니까? 여기에 할 수있는 일의 미리보기 :

    import usb
    busses = usb.busses()
    for bus in busses:
        devices = bus.devices
        for dev in devices:
            print "Device:", dev.filename
            print "  idVendor: %d (0x%04x)" % (dev.idVendor, dev.idVendor)
            print "  idProduct: %d (0x%04x)" % (dev.idProduct, dev.idProduct)
    

    pyUsb에 대한 훌륭한 자습서.

    자세한 문서는 dir () 및 help ()와 함께 Python 대화식 모드를 사용하십시오.

  2. ==============================

    2.@ systempuntoout의 대답은 좋지만 오늘은 모든 장치를 찾거나 반복하는 쉬운 방법을 발견했습니다. usb.core.find (find_all = True)

    @ systempuntoout의 대답은 좋지만 오늘은 모든 장치를 찾거나 반복하는 쉬운 방법을 발견했습니다. usb.core.find (find_all = True)

    귀하의 예를 다음과 같이 :

    import usb
    for dev in usb.core.find(find_all=True):
        print "Device:", dev.filename
        print "  idVendor: %d (%s)" % (dev.idVendor, hex(dev.idVendor))
        print "  idProduct: %d (%s)" % (dev.idProduct, hex(dev.idProduct))
    
  3. ==============================

    3.그러나 어쨌든 .. 누군가는 언젠가는 답을 찾을 것입니다.

    그러나 어쨌든 .. 누군가는 언젠가는 답을 찾을 것입니다.

    나는 Mac (osx 10.9)에 있습니다 ... 나는 성공적으로 Mac 포트와 함께 libusb를 설치했지만 "backend available"메시지를 받고있었습니다. 그것은 파이썬이 usb dylib를 찾을 수 없기 때문입니다.

    libusb에 대한 경로를 $ DYLD_LIBRARY_PATH에 추가해야합니다 (예 : macport가 설치된 곳이면 / opt / local / lib).

    내가 그것을 추가하자마자, pyusb는 잘 동작했다.

  4. ==============================

    4.좋아, 나는 답변을 찾기 위해 주위를 둘러 보았고, 작동하는 스 니펫은 다음과 같다.

    좋아, 나는 답변을 찾기 위해 주위를 둘러 보았고, 작동하는 스 니펫은 다음과 같다.

    def locate_usb():
    import win32file
    drive_list = []
    drivebits=win32file.GetLogicalDrives()
    for d in range(1,26):
        mask=1 << d
        if drivebits & mask:
            # here if the drive is at least there
            drname='%c:\\' % chr(ord('A')+d)
            t=win32file.GetDriveType(drname)
            if t == win32file.DRIVE_REMOVABLE:
                drive_list.append(drname)
    return drive_list
    

    https://mail.python.org/pipermail/python-win32/2006-December/005406.html에서 가져옴

  5. from https://stackoverflow.com/questions/2487033/usb-device-identification by cc-by-sa and MIT license