le 10-10-2013 09:12 AM
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
Résolu ! Accéder à la solution.
le 10-11-2013 01:42 AM
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 😉
Cdt,
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
le 10-11-2013 03:56 AM
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
le 10-15-2013 07:08 AM
le 10-15-2013 08:45 AM
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
le 10-15-2013 11:05 AM
@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
le 10-15-2013 12:24 PM
@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