[USB]Obj-c HID

Ok!! C'est tout bon. J'ai suivit le tutoriel et repris les exemples à la lettre ça marche ;) Je ne comprendrai jamais quel était le pb qui demandé l'émulation de rosetta mais pour l'instant ca me va.

Merci bcp

@+
 
Je développe un nouveau projet qui a besoin de communiquer avec le HID également. L'initilisation de la callback et l'écriture des reports fonctionne mais impossible d'entrer dans la callback lors d'un read quand l'initilisation est threadé.

Je lance un thread qui check si le périphérique est bien connecté. S'il n'as pas encore été connecté, l'initilisation se fait depuis ce thread mais du coup je ne lit plus rien. Pas d'erreurs non plus à la compilation

Qqu a une soluce?
 
Ok merci, je vois pas très bien, mais je vais chercher la autour. Il y a aussi la possiblité de récupérer un événement lorsqu'un quelquonc usb est connecté et de lancer l'initilisation a ce moment la
 
Event thread synchronization object

Salut Tatouille, pourrais tu me donner un peu plus d'explication à ce propos? Je ne vois pas bien le rapport avec mon problème.

En initilisation le device, callbacl, etc depuis le main il n'y a pas de problème.

Je thread la méthode d'initilisation, pas d'erreur mais aucune lecture dans la callback

Merci pour ton aide
 
Ok je vois ce qu'il faut faire, j'ai pu trouver qq exemple sur internet. C'est donc limiter l'accès à un seul thread au hardware grâce à un IOWorkLoop.

Cependand je n'arrive pas à l'utiliser car IOWorkLoop.h n'est pas dans l'IOKit. Si je le cherche je vois qu'il est par contre dans le framework kernel.framework. Mais si j'importe celui-ci, le compilateur me génère bcp d'erreurs dans ce framework ...

ha quel misère :/
 
hum mais je ne comprend pas bien. Il y a déjà le framework IOKit à plusieurs endroits différent. Ca veut dire que j'ai utilisé un framework qui n'implémente pas tout le IOKit.

Dans ce cas, lequel est ce que je dois prendre?
 
non tu as l'interface IOKit osfmach du noyeau (platform-specific)

kernel/IO

http://developer.apple.com/documentation/Darwin/Reference/KernelIOKitFramework/index.html

et l'interface "public" (platform-independent)
du IOKit et son imlementation

------ IOKit.framework
----------IOKern
-----------MACH

tu ne peux pas acceder aux symboles de ton noyeau (enfin si mais ce n'est pas le sujet)
tu dois utiliser IOKit.framework / KPI (Kernel programming interface)

http://developer.apple.com/documentation/DeviceDrivers/Conceptual/WritingDeviceDriver/index.html


http://developer.apple.com/DOCUMENT...//apple_ref/doc/uid/TP0000011-CH204-TPXREF101
 
J'ai repris le problème. Ca fait un bon moment que je cherche sans trop trouver :/ Je ne comprend pas ou trouver ce framework. l'IOKit.framework ne contient pas de iowoorkloop.h. Après une recherche sur le hd, seulement kernel.framework/iokit contient le fichier. Faut il le télécharger qq part? Toutes mes libs sont pourtant à jour
 
je dois apparemment utiliser le framework kernel.framework qui contient iokit. Cependant le compilo plante en me marquant cette erreur:

can't locate framework for: -framework Kernel

Je ne vois pas bien ou lui décrire un autre chemin pour ce framework et pk le faire, qqu aurait une idée?
 
Bon ben j'ai résolu mon pb, j'ai utilisé
Bloc de code:
[self performSelectorOnMainThread:@selector(setupDongle) withObject:self waitUntilDone:YES];

et ca marche