exécuter une commande système avec l'invite de commande sous labview

6
Generated by Jive SBS on 2014-09-04-05:00 1 luc desruelle's Blogue: Exécuter une commande système avec l'invite de commande sous LabVIEW Publié par luc desruelle 13 juil. 2014 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 ?

Upload: luc-desruelle

Post on 03-Jul-2015

183 views

Category:

Software


3 download

DESCRIPTION

https://decibel.ni.com/content/blogs/Luc_Desruelle/2014/07/13/ex%C3%A9cute-une-commande-syst%C3%A8me 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?

TRANSCRIPT

Page 1: Exécuter une commande système avec l'invite de commande sous LabVIEW

Generated by Jive SBS on 2014-09-04-05:001

luc desruelle's Blogue: Exécuter unecommande système avec l'invite decommande sous LabVIEW

Publié par luc desruelle 13 juil. 2014

I] Introduction : les problèmes avec l'invite decommandeIl est possible de faire "beaucoup de choses" avec l'invite de commande de Windows, lafameuse fenêtre "cmd" de Windows.

Sous LabVIEW, il faut utiliser le vi "Commande système" connu sous le nom "systemExec.vi".

Le vi permet d'exécuter une commande système, une ligne de commande au niveau dusystème ,qui peut inclure tous les paramètres supportés par l'application que vous voulezlancer

• Mais comment bien l'utiliser? En effet comment gérer l'erreur retournée par la commande système ?

Page 2: Exécuter une commande système avec l'invite de commande sous LabVIEW

luc desruelle's Blogue: Exécuter une commande système avec l'invite de commande sous LabVIEW

Generated by Jive SBS on 2014-09-04-05:002

• Mais dans quelle langue est le texte? Avez-vous regardé le texte de la sortie? texte "étrange"? avec desR‚ponse des ::1ÿ:

• Comment analyser le retour de la fenêtre?

Exemple de réponse de la commande système 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 deretour de la commande?

Les fenêtres de type console ou invite de commandes, sur les systèmes MicrosoftWindows en Europe occidentale, utilisent la page de code 850. C'est une pagede code définie par IBM et qui est utilisée en Europe occidentale avec le systèmeDOS et d’autres systèmes de la même époque.

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

Page 3: Exécuter une commande système avec l'invite de commande sous LabVIEW

luc desruelle's Blogue: Exécuter une commande système avec l'invite de commande sous LabVIEW

Generated by Jive SBS on 2014-09-04-05:003

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 auformat OEM, il va falloir utiliser la user32.dll avec la fonction "OemToChar", qui permet : cfMSDN : Translates a string from the OEM-defined character set into either an ANSI or awide-character string

Par exemple sur une commande "ping"

Page 4: Exécuter une commande système avec l'invite de commande sous LabVIEW

luc desruelle's Blogue: Exécuter une commande système avec l'invite de commande sous LabVIEW

Generated by Jive SBS on 2014-09-04-05:004

III] Comment gérer l'erreur retournée parl'invite de commande?Il faut distinguer l'erreur de la fonction "invite de commande", via le vi LabVIEW "systemExec.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 lafonction "utilisée" dans l'invite de commande. Il ne gére que l'erreur de la fonction invite decommande.

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

Pour gérer l'erreur, dans la fonction utilisée, le code va ressembler à cela :

• si code 0, pas d'erreur• sinon utiliser le vi Error Cluster From Error Code.vi 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 quenous allons ajouter dans le texte de l'erreur LabVIEW.

Page 5: Exécuter une commande système avec l'invite de commande sous LabVIEW

luc desruelle's Blogue: Exécuter une commande système avec l'invite de commande sous LabVIEW

Generated by Jive SBS on 2014-09-04-05:005

IV] Exemple de code

Page 6: Exécuter une commande système avec l'invite de commande sous LabVIEW

luc desruelle's Blogue: Exécuter une commande système avec l'invite de commande sous LabVIEW

Generated by Jive SBS on 2014-09-04-05:006

Luc Desruelle |

| Voir mon profil

CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW

CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

Contact , About me. , Google+. , Twitter.

104 Visualiser Tags : labview, string, code, system, execution, user32.dll, exec, france, oem, architect, exemple,ibm, systeme, desruelle, certifié, développeur, luc, grenoble, developpeur, chambery, annecy, commande, cp850,système, ligne, niveau, oemtochar, exection, convertir, traduire, chaine, retour, traduction

Il n'y a aucun commentaire sur cette publication