2016-01-19 8 views
0

Я пытаюсь определить конкретное устройство USB на машине OSX. Устройство представляет собой устройство arduino с небольшим измененным драйвером и собственным PID и VID.Сопоставление между /dev/tty.usbmodemXXXX и идентификатором местоположения

Я могу перечислить устройства с помощью команды Баш "system_profiler SPUSBDataType":

Powerbrain  : 

    Product ID: 0x4243 
    Vendor ID: 0x2bfd 
    Version: 1.00 
    Speed: Up to 12 Mb/sec 
    Manufacturer: Kinematics 
    Location ID: 0x14200000/27 
    Current Available (mA): 1000 
    Current Required (mA): 500 
    Extra Operating Current (mA): 0 

Я также могу перечислить устройства с помощью команды Баш "ioreg -p IOUSB -l -b":

Powerbrain  @14200000 <class AppleUSBDevice, id 0x100000d1b, registered, matched, active, busy 0 (8 ms), retain 15> 
    { 
     "sessionID" = 34690005456990 
     "iManufacturer" = 1 
     "bNumConfigurations" = 1 
     "idProduct" = 16963 
     "bcdDevice" = 256 
     "Bus Power Available" = 500 
     "USB Address" = 27 
     "bMaxPacketSize0" = 64 
     "iProduct" = 2 
     "iSerialNumber" = 0 
     "bDeviceClass" = 2 
     "Built-In" = No 
     "locationID" = 337641472 
     "bDeviceSubClass" = 0 
     "bcdUSB" = 512 
     "USB Product Name" = "Powerbrain  " 
     "PortNum" = 2 
     "non-removable" = "no" 
     "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"} 
     "bDeviceProtocol" = 0 
     "IOUserClientClass" = "IOUSBDeviceUserClientV2" 
     "IOPowerManagement" = {"DevicePowerState"=0,"CurrentPowerState"=3,"CapabilityFlags"=65536,"MaxPowerState"=4,"DriverPowerState"=3} 
     "Device Speed" = 1 
     "USB Vendor Name" = "Kinematics " 
     "idVendor" = 11261 
     "IOGeneralInterest" = "IOCommand is not serializable" 
     "IOClassNameOverride" = "IOUSBDevice" 
    } 

Я также могу увидеть название порта «/dev/tty.usbmodem1421» и общаюсь с ним.

Проблема: «Как установить идентификационный номер« 0x14200000/27 »на страницу« usbmodem1421 »?

Если бы у вас был другой способ архивирования с использованием Mono C#/Xcode, пожалуйста, дайте мне знать.

ответ

0

Я решил проблему с помощью IOKit - существует способ перебора всех модемных сервисов, а другой - найти соответствующее устройство USB этого устройства связи.

Код может использоваться с MonoMac доступен в GitHub: https://github.com/Lunatix89/MonoMac-IOKit-USBDevice

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

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