Treiber für USB-Eingabegerät

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Treiber für USB-Eingabegerät

    Hallo,
    für eine Anwendung brauche ich ein USB-Eingabegerät, das das Signal von zwei Joysticks verarbeiten kann. Ein entsprechendes Eingabegerät könnte etwa so aussehen:

    pearl.de/a-NC1471-1010.shtml
    (Okay, könnte etwas robuster sein!)

    Kennt jemand etwas vergleichbares für MAC? Bietet jemand eine fertige Lösung an? Wie sieht es mit Treibern aus? Wie kann man in Xcode darauf zugreifen? Bin für jeden Tipp dankbar!

    Viele Grüße aus Hamburg
    Peter ;)
  • Gamepads, die sich an die HID-Spezifikation halten, funktionieren direkt (ohne Treiber) am Mac, sowohl USB als auch Bluetooth. Die meisten halten sich dran. Mit Einschränkungen funktionieren sogar die Playstation-Controller.

    Die Kommunikation erfolgt über die IOHIDLib. Dazu habe ich bei der Macoun 2011 einen Vortrag gemacht (lustigerweise genau mit Gamepads). Der Vortrag und die Beispiele sind frei auf der Seite der Macoun verfügbar.

    Wenn Du etwas Robusteres willst, würde ich mal bei denen von Logitech schauen.

    Willst Du das Gamepad als Gamepad verwenden oder das umfunktionieren, um irgendwas anderes damit zu machen? In dem Fall könnte man sich auch recht einfach ein eigenes Gerät dafür bauen.
    Multigrad - 360°-Produktfotografie für den Mac
  • beage schrieb:

    Der XBox-Controller funktioniert auch am MAC

    Ja? Der alte oder der neue? USB oder Funk? Mit Adapter oder ohne? Mit Extratreiber oder ohne?

    Soweit ich weiß, sprechen sowohl die alten als auch die neuen Xbox-Controller weder Bluetooth noch standardkonformes HID. Viele Adapterhersteller sind in Grund und Boden verklagt worden. Kann aber auch sein, dass ich da nicht auf dem aktuellen Stand bin. Weißt Du da mehr?
    Multigrad - 360°-Produktfotografie für den Mac
  • abitcocoa schrieb:

    360 mit kabel funktioniert bei mir mit enteprechendem Treiber

    Ok, mit Kabel und Treiber. Wenn man solch einen Controller eh schon hat, ist das ein Weg, aber wenn ich die Wahl bei Geräten hätte, würde ich das auf keinen Fall machen. Der Treiber besteht im Wesentlichen aus einer kext, fummelt also im Kernelspace herum. Solche Sachen will man nicht installieren, wenn es nicht absolut notwendig ist - der Treiber kann das gesamte System zerschießen. Der Treiber scheint auch mit der IOHIDLib zusammenzuarbeiten, aber ich würde nicht drauf wetten, dass da alles funktioniert.
    Multigrad - 360°-Produktfotografie für den Mac
  • @mattik: 1.000 mal Danke!!!
    Super Vortrag, gut erklärt, mit super Beispielen!!! Punktgenau das, was ich gesucht habe!!! Besser geht es nicht!!!
    Nochmals vielen Dank!!!!
    :thumbsup: :thumbsup: :thumbsup:


    P.S. Es geht um eine Maschinensteuerung (ein Motion Control System für schwere S3D-Kamerarigs). Angesteuert werden sollen drei Achsen, die über die beiden Joysticks gesteuert werden sollen. Hier ein kleiner Film dazu: vimeo.com/55315317

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von LarsKrachen ()

  • Hallo mattik,
    die beiden Joysticks und sechs Knöpfe funktionieren schon einmal prima, aber die LogiTech Konsole besitzt neben den beiden Joysticks auf der linken Seite noch ein Steuerkreuz (Left/Up/Right/Down). Das würde ich nach Möglichkeit auch gern ansprechen, doch weiß ich leider nicht wie, bzw. wie die Beschreibung zu interpretieren ist. USB-Bus-Probe liefert mir folgendes:

    Full Speed device @ 4 (0xFD120000): ............................................. Composite device: "Logitech Dual Action"
    Port Information: 0x0018
    Not Captive
    External Device
    Connected
    Enabled
    Device Descriptor
    Descriptor Version Number: 0x0200
    Device Class: 0 (Composite)
    Device Subclass: 0
    Device Protocol: 0
    Device MaxPacketSize: 8
    Device VendorID/ProductID: 0x046D/0xC216 (Logitech Inc.)
    Device Version Number: 0x0414
    Number of Configurations: 1
    Manufacturer String: 1 "Logitech"
    Product String: 9 "Logitech Dual Action"
    Serial Number String: 3 "9B4BA83A"
    Configuration Descriptor
    Length (and contents): 41
    Raw Descriptor (hex) 0000: 09 02 29 00 01 01 00 80 32 09 04 00 00 02 03 00
    Raw Descriptor (hex) 0010: 00 00 09 21 11 01 00 01 22 63 00 07 05 81 03 20
    Raw Descriptor (hex) 0020: 00 04 07 05 02 03 20 00 08
    Number of Interfaces: 1
    Configuration Value: 1
    Attributes: 0x80 (bus-powered)
    MaxPower: 100 ma
    Interface #0 - HID
    Alternate Setting 0
    Number of Endpoints 2
    Interface Class: 3 (HID)
    Interface Subclass; 0
    Interface Protocol: 0
    HID Descriptor
    Descriptor Version Number: 0x0111
    Country Code: 0
    Descriptor Count: 1
    Descriptor 1
    Type: 0x22 (Report Descriptor)
    Length (and contents): 99
    Raw Descriptor (hex) 0000: 05 01 09 04 A1 01 A1 02 75 08 95 04 15 00 26 FF
    Raw Descriptor (hex) 0010: 00 35 00 46 FF 00 09 30 09 31 09 32 09 35 81 02
    Raw Descriptor (hex) 0020: 75 04 95 01 25 07 46 3B 01 65 14 09 39 81 42 65
    Raw Descriptor (hex) 0030: 00 75 01 95 0C 25 01 45 01 05 09 19 01 29 0C 81
    Raw Descriptor (hex) 0040: 02 06 00 FF 75 01 95 10 25 01 45 01 09 01 81 02
    Raw Descriptor (hex) 0050: C0 A1 02 75 08 95 07 46 FF 00 26 FF 00 09 02 91
    Raw Descriptor (hex) 0060: 02 C0 C0
    Parsed Report Descriptor:
    Usage Page (Generic Desktop)
    Usage (Joystick)
    Collection (Application)
    Collection (Logical)
    Report Size............. (8)
    Report Count............ (4)
    Logical Minimum......... (0)
    Logical Maximum......... (255)
    Physical Minimum........ (0)
    Physical Maximum........ (255)
    Usage (X)
    Usage (Y)
    Usage (Z)
    Usage (Rz)
    Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield)
    Report Size............. (4)
    Report Count............ (1)
    Logical Maximum......... (7)
    Physical Maximum........ (315)
    Unit.................... (20)
    Usage (Hat Switch)
    Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, Null State, Bitfield)
    Unit.................... (0)
    Report Size............. (1)
    Report Count............ (12)
    Logical Maximum......... (1)
    Physical Maximum........ (1)
    Usage Page (Button)
    Usage Minimum........... (1)
    Usage Maximum........... (12)
    Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield)
    Usage Page (65280)
    Report Size............. (1)
    Report Count............ (16)
    Logical Maximum......... (1)
    Physical Maximum........ (1)
    Usage 1 (0x1)
    Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield)
    End Collection
    Collection (Logical)
    Report Size............. (8)
    Report Count............ (7)
    Physical Maximum........ (255)
    Logical Maximum......... (255)
    Usage 2 (0x2)
    Output.................. (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield)
    End Collection
    End Collection
    Endpoint 0x81 - Interrupt Input
    Address: 0x81 (IN)
    Attributes: 0x03 (Interrupt no synchronization data endpoint)
    Max Packet Size: 32
    Polling Interval: 4 ms
    Endpoint 0x02 - Interrupt Output
    Address: 0x02 (OUT)
    Attributes: 0x03 (Interrupt no synchronization data endpoint)
    Max Packet Size: 32
    Polling Interval: 8 ms
  • Das ist der Hatswitch: Usage Page 0x0001-(Generic Desktop), Usage 0x0039 (Hatswitch). Lässt sich genau so abfragen wie die anderen Elemente, liefert logisch einen Wert von 0-7 (die Richtung im Uhrzeigersinn in 45-Grad-Schritten von oben), physikalisch die Gradzahl. Wenn nichts gedrückt wird, kommt 8 (logisch) bzw. 360 (physikalisch).

    Von Apple gab's mal ein nettes kleines Beispielprojekt, um das auszuprobieren: HID Explorer. Damit kann man sich die einzelnen Elemente live abgucken. Ist leider mittlerweile Legacy. Man kann ihn noch hier runterladen, dürfte aber etwas Bastelei sein, das zum Laufen zu bringen.
    Multigrad - 360°-Produktfotografie für den Mac