|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Table WMI et port USB/Série |
Débuté par titioun, 29 avr. 2017 12:20 - 4 réponses |
| |
| | | |
|
| |
Membre enregistré 92 messages Popularité : +2 (2 votes) |
|
Posté le 29 avril 2017 - 12:20 |
bonjour,
Je dispose d'une série de capteurs environnementaux (ATLAS SCIENTIFIC USB) équipés d'un composant USB/série FTDI
Je voudrais pouvoir reconnaître le type de capteur connecté au hub USB
Dans un premier temps, j'ai trouvé un bout de code pour extraire la liste de ports connectés au démarrage du PC mais je voudrais pouvoir identifier le type de capteur raccordé. Savez-vous si la table WMI contient ce type d'information ?
si oui, quel paramètre interroger ?
Merci de vos conseils.
cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 29 avril 2017 - 15:10 |
hello, qu'entends-tu par "la table WMI" ? parce qu'avec le WMI cela m'étonnerait fortement que tu puisses déterminer les capteurs raccordés. D'après ce que tu dis ils sont de type liaison série par USB (chip FTDI) donc le seul moyen de savoir quel est le capteur raccordé sur un port , c'est de scruter ce qu'envoie le capteur ou si il est intelligent de dialoguer avec lui.
-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 572 messages Popularité : +222 (260 votes) |
|
Posté le 01 mai 2017 - 07:15 |
Bonjour,
+1 avec JP, seul ton capteur peut te dire qui il est (si toutefois il en est capable) ou alors il faut scruter les infos qu'il envoie effectivement. A moins que tu mettes une tables de paramétrage qui dise que tel capteur est lié à tel port, mais avec l'usb il y a une possibilité que le port change après une mise à jour ou un redémarrage et là c'est pas de bol.
Ca m'est déjà arrivé avec des tpe branché en usb ou encore avec des affichages client pour les caisses.
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 92 messages Popularité : +2 (2 votes) |
|
Posté le 30 mai 2017 - 15:34 |
Bonjour,
En fait je peux interroger les port série bêtement.
J'ai la possibilité de donner un nom différent à chaque capteur. Au lancement du logiciel, j'utilise le code ci-dessous qui remplis ma table de comport. Ensuite pour chaque port je fais un test en envoyant une commande sur le port série et je l'attribue au capteur. (Pour éviter cette moulinette à chaque démarrage, je sauve le comport dans un fichier ini dans lequel je retrouve un comport pour chaque capteur)
J'ai remarqué que sur le même Pc le numéro de port attribué par Windows était toujours le même pour un capteur donné y compris quand je le change de port. J'en ai déduit que windows mémorisait quelque part un identifiant provenant certainement du composant FTDI.
C'est cette information que je voulais récupérer.
Dites moi si c'est possible.
Cordialement
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 EXCEPTIONEXCEPTION 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) 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 portCom = ChaîneSupprime(portCom,1,3) TableauAjoute(Tab_portCom,Val(portCom)) FIN FIN FIN FAIRE Erreur("Erreur WMI : " + ExceptionInfo()) FIN
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 92 messages Popularité : +2 (2 votes) |
|
Posté le 02 août 2017 - 13:48 |
Bonjour
Je remonte de post car j'ai aujourd'hui besoin d'intégrer dans mon application un autre composant mais qui cette fois possède unVendorID et un product ID
Du coup je peux trouver le numéro de port attribué par Windows dans la base de registre en lisant la clé : RegistreLit("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_2A3C&PID_0100\TMCSTEP\Device Parameters", "PortName",
Cependant cette clé n'est présente que sous Windows 10 (je n'ai accès qu'à du 64 bit mais je pense que c'est pareil en 32 bit)
Dans Windows 7, j'ai vu qu'en 64 bit seule la clé FriendlyName contenait l'information du port attribué.
Pourriez vous me dire si cette clé est également présente en Windows 8 car je n'ai aucun PC sous cet OS ?
Merci D'avance |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|