|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Débuté par Avi, 20 juil. 2012 15:46 - 8 réponses |
| |
| | | |
|
| |
Posté le 20 juillet 2012 - 15:46 |
Salut à tous,
Je dois développer un petit module capable de lire des données qui arrivent sur un port USB.
Je m'explique : un boitier envoi des informations (sur 12 octets) à mon PC par l'intermédiaire d'un câble convertisseur SERIE / USB (le coté Série est banché sur le boitier, le coté USB sur le PC). Apres installation d'un driver spécifique le PC reconnait le câble et le boitier. Je sais que le PC dialogue avec le boitier car il existe un programme qui peut lire et écrire des informations sur le boitier. Ce programme fonctionne correctement et d'après lui le port utilisé est COM3.
Le problème c'est qu'avec WinDev je n'arrive même pas à ouvrir le port com 3 (avec souvre) et donc ne peut pas récupérer les données qui arrivent.
Peut-être faut-il plutôt être à l'écoute du port USB ? Pour cela d'après l'aide WinDev il faut que j'utilise le driver. ??? Comment faire ???
En bref ce dont j'aurai besoin c'est de récupérer les données reçues par le port USB pour après les stocker (un peu comme quand on utilise un lecteur de code barre relié à un port USB)
Merci de votre aide Bon dev Avi |
| |
| |
| | | |
|
| | |
| |
Posté le 20 juillet 2012 - 17:37 |
Bonjour Avi,
Pour répondre à ta question, c'est bien le port COM qu'il faut surveiller, par contre il est difficile de surveiller le port com qui est utilisé, je te conseillerais d'utiliser un logiciel de redirection de ports tels que com0com afin de pouvoir capter les données sur un l'un des ports de redirecion.
Cdlt
Avi a écrit dans le message de news <a3f96567539b9e8b1777fa711a001cca@news.pcsoft> :
Salut à tous,
Je dois développer un petit module capable de lire des données qui arrivent sur un port USB.
Je m'explique : un boitier envoi des informations (sur 12 octets) à mon PC par l'intermédiaire d'un câble convertisseur SERIE / USB (le coté Série est banché sur le boitier, le coté USB sur le PC). Apres installation d'un driver spécifique le PC reconnait le câble et le boitier. Je sais que le PC dialogue avec le boitier car il existe un programme qui peut lire et écrire des informations sur le boitier. Ce programme fonctionne correctement et d'après lui le port utilisé est COM3.
Le problème c'est qu'avec WinDev je n'arrive même pas à ouvrir le port com 3 (avec souvre) et donc ne peut pas récupérer les données qui arrivent.
Peut-être faut-il plutôt être à l'écoute du port USB ? Pour cela d'après l'aide WinDev il faut que j'utilise le driver. ??? Comment faire ???
En bref ce dont j'aurai besoin c'est de récupérer les données reçues par le port USB pour après les stocker (un peu comme quand on utilise un lecteur de code barre relié à un port USB)
Merci de votre aide Bon dev Avi
|
| |
| |
| | | |
|
| | |
| |
Posté le 20 juillet 2012 - 18:26 |
Salut Nicolas,
merci pour ta reponse. pourrais tu detailler un peu plus ? Une fois la création du port virtuel il sera plus facile avec windev de lire les données sur ce port plutot que sur le port usb ?
encore merci Avi
Nicolas a écrit dans le message de news <cc578048e5cdeb1c2624abeccd96c355@news.pcsoft> :
Bonjour Avi, Pour répondre à ta question, c'est bien le port COM qu'il faut surveiller, par contre il est difficile de surveiller le port com qui est utilisé, je te conseillerais d'utiliser un logiciel de redirection de ports tels que com0com afin de pouvoir capter les données sur un l'un des ports de redirecion. Cdlt Avi a écrit dans le message de news <a3f96567539b9e8b1777fa711a001cca@news.pcsoft> : Salut à tous,
Je dois développer un petit module capable de lire des données qui arrivent sur un port USB.
Je m'explique : un boitier envoi des informations (sur 12 octets) à mon PC par l'intermédiaire d'un câble convertisseur SERIE / USB (le coté Série est banché sur le boitier, le coté USB sur le PC). Apres installation d'un driver spécifique le PC reconnait le câble et le boitier. Je sais que le PC dialogue avec le boitier car il existe un programme qui peut lire et écrire des informations sur le boitier. Ce programme fonctionne correctement et d'après lui le port utilisé est COM3.
Le problème c'est qu'avec WinDev je n'arrive même pas à ouvrir le port com 3 (avec souvre) et donc ne peut pas récupérer les données qui arrivent.
Peut-être faut-il plutôt être à l'écoute du port USB ? Pour cela d'après l'aide WinDev il faut que j'utilise le driver. ??? Comment faire ???
En bref ce dont j'aurai besoin c'est de récupérer les données reçues par le port USB pour après les stocker (un peu comme quand on utilise un lecteur de code barre relié à un port USB)
Merci de votre aide Bon dev Avi
|
| |
| |
| | | |
|
| | |
| |
Posté le 23 juillet 2012 - 11:13 |
Bonjour,
il n'y as pas besoin d'utiliser un redirecteur de port !!!!
La fonction Souvre permet d'ouvrir le port série et d'y affecter une procédure en cas de réception de trame. Cependant pour que cela fonctionne, il faut connaitre les parametres de communication de ton boitier et l'accorder à ton ouverture. A savoir la vitesse en baud : 9600, la parite, ....
du genre 9600,8,N,1 qui sont souvent les paramètres par défaut. le dernier paramètre de Souvre est le nom de la procédure qui effectue le traitement en cas de réception de trame. tu ouvre ton port avec cette fonction quand tu le souhaite. Attention a bien faire des Sferme à la fin de ton soft pour éviter de vérouiller le port quand tu sort. Réfère toi aux exemple d'aide très bien documenté.
je l'utilise tout les jours sur des prog qui tourne 24 sur 24 sans pb. |
| |
| |
| | | |
|
| | |
| |
Posté le 27 juillet 2012 - 18:17 |
Bonjour,
j'utilise régulièrement des interface usb /série (a base de composants FTDI) et l'acquistion sur ces ports marchent parfaitement. donc si ça peut vous aider n'hésitez pas.
De mon coté j'aimerais savoir si on peut détecter le branchement d'un périphérique c'est à dire capter l'évenemeent windows et donc attibuer le bon numéro de port pour le device raccordé.
j'ai déjà fait une prcédure "Port détecte" qui passe en revue stupidement les port com de 1 à 100 et qui interroge le device jusqu'à obtenir une réponse.
Ca marche mais ce n'est pas très pro. Je sais qu'on peut lire la base de registre pour connaitre les port com utilisés mais le problème reste le meme.
Si vous avez une solution. je suis preneur
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 28 juillet 2012 - 13:28 |
bonjour, voici ce que je te propose pour énumérer les ports série présents sur ta machine en utilisant WMI :
objLocator est un objet automation "WbemScripting.SWbemLocator" objService est un objet automation dynamique Resultats est un objet automation dynamique TabResWMI est un tableau de chaînes x est un entier UnRésultat est une chaîne portCom est une chaîne
QUAND EXCEPTION DANS objService = objLocator>>ConnectServer(".", "\root\cimv2") objService>>Security_>>ImpersonationLevel = 3 Resultats = objService>>ExecQuery("SELECT DeviceID FROM Win32_SerialPort") POUR x = 0 _A_ Resultats>>Count -1 UnRésultat = Resultats>>ItemIndex(x)>>Properties_>>Item("DeviceID")>>Value SI UnRésultat <> "" ALORS TableauAjoute(TabResWMI,UnRésultat) Trace(UnRésultat) FIN FIN
Resultats = objService>>ExecQuery("SELECT Name,Service FROM Win32_PnPEntity WHERE " + "Service='SER2PL' OR Service='FTSER2K' ") POUR x = 0 _A_ Resultats>>Count -1 UnRésultat = Resultats>>ItemIndex(x)>>Properties_>>Item("Name")>>Value SI UnRésultat <> "" ALORS
SI VérifieExpressionRégulière( UnRésultat,".*(COM[0-9]{1,2}).*",portCom) ALORS TableauAjoute(TabResWMI,portCom) Trace(portCom) FIN FIN FIN FAIRE Erreur("Erreur WMI : " + ExceptionInfo()) FIN
Ce bout de code permet de récupérer les ports COM utilisables sur la machine. Pour étendre la recherche des ports séries de type USB-Série à d'autres fabricants il faut connaître le service qu'ils utilisent. Si on ne cherche que les ports de type USB-Série ce n'est pas la peine de mettre la première partie de la recherche.
Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 1 message |
|
Posté le 09 février 2013 - 19:09 |
Bonjour Titioun,
J'aimerai faire appel à tes connaissances en cette matière. n'ayant pas ton email...pourrais-ton se recontacter : chapeau_m arobase hotmail point com
BAT et merci d'avance !
"Bonjour,
j'utilise régulièrement des interface usb /série (a base de composants FTDI) et l'acquistion sur ces ports marchent parfaitement. donc si ça peut vous aider n'hésitez pas." |
| |
| |
| | | |
|
| | |
| |
Posté le 10 février 2013 - 19:51 |
I'm sorry to have to inform you that your message could not be delivered to one or more recipients.chapeau_m arobase hotmail point com
Mais peut etre le reste du forum pourrait profiter de nos échanges ?
cordialement Titioun
Chapeau_melon wrote in news message <168593de25452d47e77bcf5c0b2dac63@news.pcsoft>:
Bonjour Titioun,
J'aimerai faire appel à tes connaissances en cette matière. n'ayant pas ton email...pourrais-ton se recontacter :
BAT et merci d'avance !
"Bonjour,
j'utilise régulièrement des interface usb /série (a base de composants FTDI) et l'acquistion sur ces ports marchent parfaitement. donc si ça peut vous aider n'hésitez pas." |
| |
| |
| | | |
|
| | |
| |
Posté le 09 mars 2015 - 14:59 |
Bonjour,
Le code source fournit par J.P fonctionne très bien.
Depuis la version 20, il est possible de générer des éxécutables avec le framework intégré. Dans cette configuration l'objet automation n'est plus fonctionnel : "L'objet automation 'WbemScripting.SWbemLocator' n'est pas installé sur votre système."
Avez-vous eu le même problème ? |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|