IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Ex�cuter une commande syst�me avec l'invite de commande sous LabVIEW
Par Luc Desruelle

Le , par luc desruelle

0PARTAGES

I] Introduction : les probl�mes avec l'invite de commande

Il est possible de faire "beaucoup de choses" avec l'invite de commande de Windows, la fameuse fen�tre "cmd" de Windows.

Sous LabVIEW, il faut utiliser le vi "Commande syst�me" connu sous le nom "system Exec.vi".



Le vi permet d'ex�cuter une commande syst�me, une ligne de commande au niveau du syst�me, qui peut inclure tous les param�tres support�s par l'application que vous voulez lancer

� Mais comment bien l'utiliser? En effet comment g�rer l'erreur retourn�e par la commande syst�me ?
� Mais dans quelle langue est le texte? Avez-vous regard� le texte de la sortie? texte "�trange"? avec des R�ponse des ::1�:
� Comment analyser le retour de la fen�tre?
Exemple de r�ponse de la commande syst�me Ping via LabVIEW :

Envoi d'une requ�te 'ping' avec 32 octets de donn�es�:
R�ponse de ::1�:ponse de ::1�: temps<1ms
R�ponse de ::1�: temps=2 ms

Statistiques Ping pour ::1: Paquets�: envoy�s = 4, re�us = 4, perdus = 0 (perte 0%), Dur�e approximative des boucles en millisecondes : Minimum = 0ms, Maximum = 2ms, Moyenne = 0ms


II] Mais dans quelle langue est le texte de retour de la commande?

Les fen�tres de type console ou invite de commandes, sur les syst�mes Microsoft Windows en Europe occidentale, utilisent la page de code 850. C'est une page de code d�finie par IBM et qui est utilis�e en Europe occidentale avec le syst�me DOS et d�autres syst�mes de la m�me �poque.

C�est une extension de l�ASCII sur 8 bits, partiellement compatible avec la page de code 437 dont elle est d�riv�e et qu�elle modifie.

Plus d'information sur wikipedia http://fr.wikipedia.org/wiki/Page_de_code_850

Le code page 850 est IBM/OEM/Microsoft Code page

Pour "traduire", convertir, la chaine de texte de retour de l'invite de commande, string au format OEM, il va falloir utiliser la user32.dll avec la fonction "OemToChar", qui permet : cf MSDN : Translates a string from the OEM-defined character set into either an ANSI or a wide-character string



Par exemple sur une commande "ping"



III] Comment g�rer l'erreur retourn�e par l'invite de commande?

Il faut distinguer l'erreur de la fonction "invite de commande", via le vi LabVIEW "system Exec.vi" et l'erreur de la commande syst�me appel�e par "l'invite de commande".

Le vi LabVIEW ne g�re pas, dans le clusteur "standard" Erreur Out, l'erreur retourne� par la fonction "utilis�e" dans l'invite de commande. Il ne g�re que l'erreur de la fonction invite de commande.

Par contre, la fonction LabVIEW retourne pour la commande utilis�e : un indicateur de retour "code de retour" et le texte de l'erreur.

Pour g�rer l'erreur, dans la fonction utilis�e, le code va ressembler � cela :
Code : S�lectionner tout
1
2
� si code 0, pas d'erreur
� sinon utiliser le vi [B][U]Error Cluster From Error Code.vi [/U][/B]pour cr�er une erreur LabVIEW, dans les r�gles de l'art. Nous allons convertir, via la fonction "OemToChar",  le texte de l'erreur de la commande syst�me que nous allons ajouter dans le texte de l'erreur LabVIEW.


IV] Exemple de code



Luc Desruelle
Auteur du livre "LabVIEW programmation et applications"
CLA : Certified LabVIEW Architect / Certifi� Architecte LabVIEW
CLD : Certified LabVIEW Developer / Certifi� D�veloppeur LabVIEW
profil
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

Une erreur dans cette actualit� ? Signalez-nous-la !