Je dois créer un logiciel/pilote pour OSX qui interagit avec le périphérique HID connecté via USB. Les objectifs de l'application sont les suivants:Interface de périphérique HID dans MAC
- Détecter lorsque le périphérique HID est branché ou retiré. Le PID et le VID de l'appareil sont connus.
- Lire le numéro de série du périphérique HID, la version du microprogramme et d'autres informations sur le périphérique connecté correspondant au VID et au PID
- Obtenir des rapports et définir des rapports sur le périphérique HID lorsqu'il est connecté.
- Communiquer avec une autre application à travers laquelle l'utilisateur peut modifier le dispositif HID Réglage
Je ne suis pas un développeur de pilote, mais avoir une expérience en C, C++, Obj C etc. Je me demande ce qui sera le meilleur moyen d'atteindre les objectifs mentionnés. Est-ce que je devrais développer l'extension de noyau (conducteur) ou y a-t-il une meilleure alternative?.
Les défis que je rencontre sont,
- À partir avec le développement du pilote
- application Mac communication avec le conducteur.
De toute façon, c'est un nouveau champ pour moi. Pouvez-vous s'il vous plaît suggérer quelques documents ou exemples de codes, avec je peux commencer.
Veuillez également mentionner les forums ou les communautés qui pourraient être utiles pour développer un pilote de périphérique pour mac.
Merci à tous pour votre aide. :)
Merci beaucoup pour la réponse détaillée à ma question.J'ai besoin d'interfacer des dispositifs de jeu dédiés qui incluent des souris, des claviers et des consoles de jeu. Les paramètres des périphériques (tels que DPI, vitesse du pointeur, couleur du rétroéclairage et luminosité, etc.) devront être modifiés. Je dois détecter quand l'appareil est connecté ou déconnecté. En outre, les touches des appareils peuvent avoir des actions personnalisées, qui peuvent être configurées à partir du système, par exemple, en cliquant sur un bouton, il faudra simuler une pression sur le clavier. – matt007
Cela dépendra beaucoup de détails, mais vous devriez pouvoir en faire beaucoup en utilisant l'API HID de l'espace utilisateur documentée [ici] (https://developer.apple.com/library/content/documentation/DeviceDrivers/Conceptual/ HID/intro/intro.html #/apple_ref/doc/uid/TP40000970-CH202-SW1) et [ici] (https://developer.apple.com/reference/iokit/1659967-iohidmanager.h). Il y a aussi [un exemple de code potentiellement utile] (https://developer.apple.com/library/content/navigation/index.html#section=Topics&topic=Drivers%2C%20Kernel%2C%20%26amp%3b%20Hardware&filter= HID + Sample + Code). – pmdj
En pratique, tout dépend de la structure de votre appareil. Vous devrez peut-être faire certaines choses via l'API Kit d'E/S USB de niveau inférieur (qui existe également dans l'espace utilisateur) en plus de l'API HID Manager. Je ne suis pas sûr des boutons de reprogrammation - pour cela, vous devrez peut-être passer au niveau du noyau après tout, en fonction des spécificités. Si vous étiez un client consultant, je vous recommande de réserver environ une semaine à l'exploration/prototypage des fonctionnalités pour lesquelles nous ne sommes pas sûrs à 100% des détails d'implémentation avant de décider exactement comment structurer le logiciel pilote global. – pmdj