Communication USB

Signaler
Messages postés
2
Date d'inscription
vendredi 5 septembre 2008
Statut
Membre
Dernière intervention
6 septembre 2008
-
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
-
Bonjour,
Je dois communiquer avec un appareil de mesure Keyence Laser LK-G152 par USB. D'après le fabricant, le protocole est le même que pour une liaison RS-232. Moi je dois établir une liaison me permettant de lire les données du capteur ou de lui envoyer des commandes pour le paramètrer. Le problème que j'ai est que je ne sais pas exactement comment établir une liaison / connexion avec l'appareil de mesure.
J'ai essayé avec CreateFile(....), je recois un handle mais après je bloque sur DeviceIOControl(...) puis sur WriteFile / ReadFile.
D'après ce que j'ai compris il faut lui envoyer un IO_CTL mais je ne sais pas lequel (aucune explication de Keyence, ni dans la doc ni au service technique).
Enfin bref, je suis un peu perdu.
Est-ce que je suis dans la bonne voie ou existe-t-il d'autre moyen d'accèder au périphérique USB. Dernière précision, les commandes à envoyer sont de type BULK_TRANSER.
Merci, toute aide sera la bienvenue.

Pasc73

3 réponses

Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
Yop,

Oublie keyence, si ils ont dit que c'était du rs232 alors prend la doc sur le rs232 et tu aura tes code ioctl. Il y a moulte exemple de code source, voir mm des lib deja toute faite pour la communication rs232 sur cppfrance ;)

Bonne prog

++
deck_bsd
___________________________________
[http://deck-bsd.eurower.net]
Messages postés
2
Date d'inscription
vendredi 5 septembre 2008
Statut
Membre
Dernière intervention
6 septembre 2008

Je connais parfaitement le rs-232, mais d'après Keyence il est possible d'établir la même communication mais par le port USB. C'est d'ailleurs ce qu'ils font pour leur LK-Navigator (un logiciel de Keyence qui permet de parametrer le laser et de rapatier les valeurs de mesure). Moi ce que je voudrais, c'est faire exactement la même chose à partir de mon Appli C++.
Pour l'instant j'arrive à énumérer les périfs sur l'usb et à récupérer l'id (grâce au GUID constructeur) du laser, mais après je bloque pour établir la communication en elle-même.
Malgré mes recherches et mes appels incessants chez Keyence (qui ne m'aide d'ailleurs pas du tout), je n'y arrive pas. Merci de bien vouloir me donner qques infos ou des liens ou je pourrais trouver ce petit truc qui me manque.

Pasc73
Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
Il te faut un driver sur lequel tu te connectes pour envoyer tes commandes et les recevoirs sur le cannal BULK. D'après ce que j'ai compris à ton problème un driver de base (proposé dans le DDK) configuré correctement pour le PID et VID de l'appareil suffit.


Effectivement par la suite tu utiliseras un simple ReadFile et WriteFile pour dialoguer avec ton driver.

@+
Arnotic,
Admin CS