Di linux, perangkat serial USB membuat dua alias ke port serialnya:
/dev/tty*
dan/dev/serial/by-id/<my_usb_device_id>
Apakah ada cara di OSX untuk mengidentifikasi port serial oleh id perangkat USB? Baik di System Profiler dan menggunakan ioreg -p IOUSB
saya bisa melihat id, tapi itu tidak membuat saya lebih dekat untuk menghubungkan menggunakan id itu.
Kami sedang mengembangkan beberapa perangkat keras dan sulit untuk mengujinya karena setiap kali saya menghubungkan perangkat yang berbeda saya perlu memverifikasi konfigurasi port serial dari perangkat lunak pengujian, karena pada OSX tty.*
nama port tergantung pada port di komputer saya, tidak ada di perangkat. Orang-orang yang menjalankan linux dengan senang hati menggunakan /dev/serial/by-id/<my_usb_device_id>
port untuk secara otomatis membedakan antara perangkat yang berbeda.
Sebenarnya, Anda harus dapat menemukan pemetaan dari ID perangkat / nomor seri ke nama port serial menggunakan
ioreg
. Coba perintah ini:Ini akan mencetak semua perangkat host USB, dan itu akan mencetak semua properti dari subtree masing-masing perangkat. Anda harus dapat menemukan perangkat Anda di tingkat atas berdasarkan ID atau nomor seri. Setelah Anda menemukannya, Anda harus dapat memindai melalui subtree-nya, dan akhirnya menemukan objek kelas
IOSerialBSDClient
. Ini akan berisi propertiIODialinDevice
yang Anda inginkan.Jika kemudian Anda ingin melakukan ini secara terprogram, Anda dapat menambahkan
-a
opsi keioreg
perintah, yang akan menampilkan versi plist dari output di atas. Anda kemudian dapat menguraikan ini dengan perpustakaan sepertiplistlib
.Anda mungkin merasa terbantu untuk menggunakan aplikasi IORegistryExplorer untuk membantu memvisualisasikan ini, karena hasil lengkapnya
ioreg
sedikit sulit dibaca! Ini tersedia dalam paket "Hardware IO Tools" XCode yang dapat Anda temukan dengan mencari unduhan di situs pengembang Apple . Begini tampilannya di perangkat saya:sumber