2010-10-12 10 views
10

3 ana işletim sisteminde (Windows, Linux ve Mac) çalışacak bir Qt uygulamasında yazıyorum. Bu uygulamanın özelliklerinden biri, özel bir harici donanım parçasıyla konuşmak için USB'ye ihtiyaç duymasıdır. Çapraz platformlu bir USB kütüphanesi var mı?C++ çapraz platformlu bir USB kitaplığı var mı?

+0

Özel donanım USB üzerinden HID mi yoksa doğrudan seri hattını mı kullanıyor? – nmichaels

+0

Muhtemelen bir seri bağlantı. Hem bir seri bağlantı hem de muhtemelen en olası seçenek olan desteği olan LUFA USB kütüphanesi ile bir ATMega USB yongası. – Bojangles

+0

Ahh, ancak Windows üzerinde $$$ ;-) –

cevap

8

libusb'u deneyin.

Desteklenen işletim sistemleri: Linux, FreeBSD'den NetBSD, OpenBSD, Darwin, MacOS X (Windows, libusb-win32 proje aracılığıyla).

Ama bunun WHQL sertifikalı olmadığı Windows üzerinde libusb0.sys çekirdek modu sürücüsü kullanır ve 64 bit Windows 7 ve Windows Server 2008 R2 bir sorun olabileceğini unutmamalıdır. Üzgünüm, libusb0.sysis digitally signed sürüm 1.2.0.0 sürümü. Sadece bugünlerde kendisine geri geliyor herkes için bu yazıyı güncellemek istediğiniz

+0

Teşekkürler! Sadece ihtiyacım olan bilgiler. – Bojangles

+0

Libusb-win32 kullanımıyla ilgili problem, libusb-1.0 ile uyumlu olmayan bir libusb-0.1 portudur. Ancak libusb-1.0 şimdi Windows'u doğal olarak destekliyor gibi görünüyor. – trojanfoe

+0

Libusb son yıllarda daha iyi bir hale geldi: şimdi WinUSB'nin sürücü olarak sahip olduğu aygıtlarla konuşmak için Windows'da kullanabilirsiniz, böylece libusb0.sys gibi üçüncü taraflardan herhangi bir çekirdek modu kodunu çalıştırmanız gerekmez. –

4

...

LibUSB (sürüm 0.1) bu yana kaldırıldı. Modern standart libusb-1.0 veya libusbx kullanmaktır.

Kişisel olarak, libusbx'u kullanmanın birçok nedeni olduğunu düşünüyorum. Daha sık bir güncelleme döngüsü ve daha iyi bir hata bakım sistemi isteyen hayal kırıklığına uğramış libusb-0.1 geliştiricileri tarafından yazılmıştır.

  • için okuma gelen iletilerle
  • daha iyi destek ve daha sık yanıtları kutunun dışında benim için çok daha iyi çalıştı
    • sudo erişim gerektirmez şu şekildedir: libusbx öneren

      Benim nedenleri vardır hatalarını/sorunlarını

    • zaman uyumsuz ve mesajları
    gönderme/alma için senkron destekVerilen, libusb-1.0 asenkron/senkronizasyon raporlamasını destekliyor ... ama libusbx'in arkasındaki felsefe çok daha çekici ve belgeler daha iyi. Eğer ya da her kim hala kütüphaneler hakkında biraz daha bilgi edinmek istiyorum eğer

    Yani, tamamen size kalmış, tarih çevrimiçi bulmak çok kolaydır. Hemen konuyla ilgili daha fazla bilgi için this yığın sorusunu da görebilirsiniz.

    +3

    Şubat 2014 itibariyle, yalnızca [libusb] (http://libusb.info) kalmıştır.Linusbx anasayfası şu yorumu yaptı: libusbx, USB aygıtlarına genel erişim sağlayan bir kütüphane olan [libusb] (http://libusb.info) çatalıydı. 2014.01.26 itibariyle, bu proje tamamen [libusb] 'a (http://libusb.info) dahil edildi ve kaldırılıyor. Libusbx'in başka bir sürümü olmayacağından, [libusb] kullanmaya devam etmeniz şiddetle tavsiye edilir (http://libusb.info). – user23573