Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

sauvegarder un numéro de port rs232 dans un fichier ini avec labview 2011

Résolu !
Accéder à la solution

Bonjour,

Je souhaite mémoriser, pour une utilisation ultérieure, le n° d'un port série rs232 choisi pour l'acquisition de trames de données par mon application afin de ne pas devoir choisir le port à chaque relance de l'application.

Sous les anciennes versions de labview (2007) j'utilisais un fichier .ini et les fonctions lire une clé ou écrire une clé. Avec la version 2011 ce type de donnée (VISA)  n'est plus compatible avec ces fonctions.

J'utilise cette procédure pour la relance automatique d'applications, sans intervention humaine, lors de campagnes de mesures.

Merci d'avance pour votre réponse

Bien cordialement

0 Compliments
Message 1 sur 7
3 973 Visites
Solution
Accepté par l'auteur du sujet pasteltoulouse

Hello pasteltoulouse,

 

Bien que le type de données d'I/O VISA ne puisse plus être utilisé, il est toujours possible de le convertir en chaine de caractères 😉

 

Convert VISA to Str.png

 

Cdt,

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

Message 2 sur 7
3 969 Visites

Merci, j'avais oublié cette fonction que j'utilise assez peu.

Cette petite gymnastique alourdit le diagramme, mais ça marche très bien.

Bien cordialement

0 Compliments
Message 3 sur 7
3 962 Visites

Bonjour,

 

Pourquoi ne pas faire ça tout simplement :

 

test.png

 

Cordialement,

 

 

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
0 Compliments
Message 4 sur 7
3 940 Visites

Je ne suis certes pas experte: le but pour moi est d'utiliser les fonctions de lecture/ecriture de clé des fichiers .ini.

Si je leur connecte directement des données non compatibles, ces fonctions me retournent une erreur lors de l'exécution.

Votre méthode, qui semble fontionner aussi je viens de l'essayer, m'oblige cependant  à alourdir encore plus le diagramme pour récupérer la valeur de l'indicateur chaine par un noeud de propriété ou une variable locale avant pouvoir de passer cette valeur à la fonction.

Par ailleurs étant issue d'une vielle culture de code C, je me méfie intuitivement des "cast" appliqués sans précaution à des types différents de données.

En tout cas merci pour la proposition

Bien cordialement

0 Compliments
Message 5 sur 7
3 934 Visites

@DaHelmut : Parce que c'est moche les points de coercition!! Et tu le sais très bien 😉

Tu me déçois mon petit ^^

 

Et comme le dit Pasteltoulouse, la fonction native des fichiers *.ini ne supporte pas le type VISA en entrée. Comme il s'agit d'une fonction polymorphe, elle ne sait pas s'adapter à ce type de donnée, donc ne sait pas définir le type d'entrée en chaine pour les entrées VISA.

 

De plus, il est vrai qu'il est préférable de maîtriser ses types de données plutôt que de laisser LabVIEW s'en charger, des fois, on a de belles surprises!!

 

Olivier L. | Certified LabVIEW Developer


Message 6 sur 7
3 925 Visites

@Olivier :

 

Effectivement les points de coercicions c'est moche, ils sont diabolisés de tous les côtés, mais dans certains cas il est plus performant de les laisser que de se charger soi même de la conversion (je ne parle pas du cas actuel).

 

Aussi, je n'ai quasiment jamais utilisé les fonctions pour fichier INI, je préfère les fichiers XML.

 

J'étais juste curieux de savoir pourquoi il fallait caster obligatoirement, j'ai eu ma réponse (la flemme de le tester moi même 😄 ).

 

Voilou 🙂 Bonne soirée à tous

 

 

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
0 Compliments
Message 7 sur 7
3 922 Visites