Lire la valeur retournée par une fonction (DLL) dans Pass/Fail test

Bonjour,
comme le titre l'indique je charche à tester une fonction en l'appelant d'une DLL (en C) en utilisant le Pass/Fail test. La fonction retourne la somme entre deux entier x et y.
Quel sont les étapes à suivre et surtout comment je peux récupérer la valeur retournée et faire un teste sur elle!!
Que dois-je écrire dans la rubrique "Data Source"...
Vous trouvez ci-joint une idée de ce que j'ai fait..
merci pour votre réponse
Pièces jointes :
PassFail.JPG ‏94 KB

La question n'est pas très claire...
Disons que si le but est de vérifier si la valeur est entre certaines bornes ex: 10<x<15 ou x<20 par exemple, alors il faut utiliser un "numericlimit test" 
Pour réutiliser une valeur (variable) dans TestStand, le plus simple est de l'assigner à une variable locale dans TestStand. (Même méthode qu'en haut mais remplacer l'expression par Locals.MaVariable )
Rodéric L
Certified LabVIEW Architect

Similar Messages

  • Intégrer une fonction Pause dans un Sous vi

    Bonjour à tous, 
    comme le titre l'indique, je dois, intégrer une fonction automatique et manuelle dans mon programme Labview. Le problème que je rencontre se situe dans la partie manuelle de mon programme.
    En effet, celle-ci doit permettre de réaliser une pause dans mon programme qui sert à générer une consigne de fréquence et d'amplitude variable dans le temps.
    La fonction pause doit  bloquer mon système actuel, c'est à dire stabiliser ma fréquence et mon amplitude mais continuer à envoyer ces même valeurs de manière à ce que mon système ne soit pas à l'arrêt mais juste en fonctionnement sur la même fréquence et la même amplitude qu'au moment ou j'ai appuyé sur le bouton pause !
    Une fois la pause désactivée, mon système repartira à partir des points auxquels nous nous sommes arretez pour continuer un cycle habituel.
    cordialement
    Pièces jointes :
    vib_generate sweep spectrum_ALLEZ RETOUR.vi ‏25 KB
    vib_find ref point.vi ‏12 KB
    vib_log ramp pattern.vi ‏15 KB

    Salut,
    Quelle est la boucle que tu cherches à mettre en pause en fait? c'est pas du tout clair ton histoire... (encore )
    En principe, pour ce faire, il faut que tu désactives l'indexation auto de ton tableau en entrée et que tu coup tu pilotes toi même l'indice du tableau à lire. En fonction de la pause, tu lit l'indice suivant ou le même à l'étape suivante.
    Illustré:
    PS: les messages privés ne sont pas faits pour ça, merci d'éviter de me solliciter par cette voie
    Francis M | Voir mon profil
    Certified LabVIEW Developer

  • Appel d'une fonction Dll avec un tableau de long en parametre

    Je dois communiquer sous labview avec un DLL comportant de fonction importante definie ainsi
    long DLLCALL DLL_Read( long Array[]);
    long DLLCALL DLL_WRITE( long Array[]);
    ces deux fonction prennent en parametre un tableau de 30 long. ...
    je ne sais comment configurer sous labview l'appelt à ces deux fonctions?
    quelqu'un peu m'aider (en français S.V.P)

    Bonjour,
    Pour passer un tableau de données de type long d'une DLL sous LabVIEW, vous devez configurer le noeud d'appel "Appeler une fonction d'une DLL" de la manière suivante:
    * function name = FuncName
    * parameter = arg1
    * type = array
    * data type = signed 32-bit integer
    Le prorotype équivalent est: void FuncName (long *arg1).
    Vous trouverez de nombreuses informations sur l'intégration des DLLs dans LabVIEW au lien ci-dessous:
    * Integrating DLLs
    http://zone.ni.com/devzone/devzone.nsf/webcategories/E2A99E7E10D5725D862567AC004F0A53
    Bonne continuation.
    Matthieu Gourssies
    National Instruments France

  • TestStand pointeur en valeur retournée

    Bonjour,
    je dois utiliser une fonction dll standard, qui renvoie une chaine de caratctères : Prototype C : char  * version();
    Vu qu'il n'y a pas de possibilité de récupérer un pointeur dans une valeur retournée, comment peut-on récupérer la texte dans un appel de fonction TestStand ?
    Merci pour votre aide.
    Jean-Marie.
    JMCe
    Solved!
    Go to Solution.

    TestStand does not currently support string return values because TestStand doesn't know how to deallocate the memory associated with the string. If you must call a function in a standard DLL that returns a string, you have a couple of options. Each of them requires you to write your own DLL.
    1. Write a wrapper function in a DLL that calls the string function. Your wrapper DLL must link to the standard DLL. For example,
    void VersionWrapper(char returnValue[], int bufferLength)
        char *versionString = version();
        if (versionString != NULL)
            strncpy(returnValue, versionString, bufferLength);
        // You must deallocate versionString here if necessary.
    2. Call the string function in TestStand manually specifying the return value as an integer. Write a conversion function in a DLL that converts the integer to a char pointer. For example,
    void ConvertIntToString(int returnValueFromTestStand, char returnValue[], int bufferLength)
        const char *returnValueString = (const char *)returnValueFromTestStand;
        if (returnValueString != NULL)
            strncpy(returnValue, returnValueString , bufferLength);
        // You must deallocate returnValueString here if necessary.
    Note: If the string function in the standard DLL is exported with a C++ decorated name, the function will not appear in the function list in TestStand and you cannot use option 2.

  • Récupérer la valeur lue par une commande dans un tableau

    Bonjour à tous,
    Je vous explique mon problème : je récupère un tableau de valeurs. J'aimerais envoyer les valeurs de ce tableau dans une commande qui permettra alors de modifier la valeur de la fréquence en fonction de ce tableau de valeurs. 
    Seul soucis : Les fréquences générées sont bel et bien toutes envoyées par la commande (Vérification à l'oscilloscope, tout va bien). Par contre, sous labview je ne peux pas afficher ma fréquence maximale dans le tableau final (il y a apparition du caractère # dans la première case). Comment faire pour récupérer toutes les valeurs envoyées par mes commandes dans le tableau final (avec la fréquence maximale qui apparait dans le tableau au final). J'ai beau cherché je vois pas comment faire...
    Exemple : Frequence min = 30 Frequence max = 300
    Je me retrouve avec un Tableau de 30 40 50 60 70 80 90 100 et 200 mais j'aimerai que 300 apparaisse (en supprimant si possible le caractère # ?)
    J'espère que j'ai pu m'exprimer de manière claire, je vous envoie ci-joint mon programme en intégralité.
    En vous remerciant.
    Cordialement,
    Reborn
    Pièces jointes :
    Detection synchrone.vi ‏44 KB

    Bonjour,
    Merci d'avoir posté sur le forum NI.
    Pourriez vous poster un VI simplifié reproduisant l'erreur que vous rencontrez (sans utiliser les VI de communication ou autre) afin qu'ils soit plus simple pour les membres de cette communauté de pouvoir vous aider?
    Cordialement,
    Nicolas M.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées Techniques LabVIEW 2012 : du 27 septembre au 22 novembre
    2 sessions en parallèle : Débuter a...

  • Existe t'il une fonction DAQMX qui permet de vérifier si des voies digitale sont utilisée par un autre task ?

    Bonjour, 
    Je travaille actuellement sur une amélioration qui permet de vérifier l'etat des relais de puissance sur nos bancs de tests. Pour cela j'utilise du multi threads pour eviter de perdre du temps de test. Or dans certain cas le DAQMX ce met en défaut à cause d'un probléme d'utilisation des voies digitales. C'est pour cela que j'aimerai pouvoir insérer une fonction qui permet de vérifier si les voies digitales sont déja utiliser par autre task au lancement de mon thread. Cette fonction existe t'elle ? 
    Merci de votre soutien.
    Cordialement
    CHEVALIER Kevin

    Hello [email protected],
    You're in a English section of the forum. Please write in English is you expect an answer. Otherwise, you can post your question in the French section here.
    Regarding your question, why don't you use the Create Task function in order to test if a task already is using the digital channels? If the function sends the specific error which indicates your digital channels are already in use, you'll know it.
    Please don't hesitate to post a simple example which demonstrates the error you meet, eventually attach a screenshot and give us details if you wish more help.
    Regards,
    Jérémy C.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Evénement déclenché par une variable connectée par Datasocket à un serveur OPC

    Bonjour,
    J'utilise un serveur OPC pour lire et écrire des variables sur un automate. J'ai essayé de connecter les variables directement avec un connexion Datasocket et d'utiliser les VI en exemple. Dans les deux cas, les ressources de mon PC augmentent et les temps de réponse sont assez longs.
    Dans mon application, j'ai besoin d'"attendre" une valeur particulière d'une variable automate. Je voudrais donc dans un premier temps, vérifier que la variable n'est pas à la valeur souhaitée et si ce n'est pas le cas, avoir un événement qui se déclenche au changement de valeur de cette variable. Cette méthode de programmation fonctionne lorsque la connexion de la variable locale n'est pas activée, mais pas avec la connexion Datasocket.
    Est-ce normal? Y-at-il un moyen pour que ce soit le serveur qui informe le client Labview que la variable a changé d'état?
    Cécile

    Bonjour Cécile !
    Et bienvenue sur ce Forum ...francais
    Je ne vous apporterai pas d'élément complet de réponse car je n'ai jamais utilisé de process DATASOCKET .
    Cependant je pense pouvoir vous aider lorsque , je vous cite :
    "Dans les deux cas, les ressources de mon PC augmentent et les temps de réponse sont assez longs. "
    Je pense que vous utilisez des boucles contenant des tableaux ou des variables locales et pire encore ,pour l'espace mémoire, des fonctions concaténation, des fonctions de modification de tableau etc...
    En effet contrairement à certains languages de programmation utilisant des boucles (presque tous maintenant) Labview génére à chaque itération de boucle une allocation mémoire (différente si ce n'est pas le premier appel ) lors d'une lecture ou écriture de variable locale (imaginez alors si c'est un tableau de clusteur par ex...) l'utilisation mémoire augmente alors à chaque lecture ecriture des variables...
    Utilisez un registre à décalage (click droit sur la boucle for ou while) pour que votre variable soit transmise à la prochaine itération (même en arretant Labview, vous pouvez utiliser les valeurs précédents l'arret !) et ne soit plus réallouer à chaque itération
    vous pouvez avoir plus de détails en lisant l'Application note suivante...
    Labview Performance and Memory Management
    et un sujet (en anglais) qui définit bien la différence et le fonctionnement des variables
    locales et noeuds de propriété
    que vous pourrez retrouver dans le répertoire manuals de LAbview...n'oubliez pas de préciser à chaque sujet votre config et des infos précises sur votre problème , le monde des sytèmes electronique - informatique et vaste et varié...
    CordialemntMessage Edité par Ecosmose_CNRS le 05-26-2005 06:13 PM
    Julien
    Conception Informatique et électronique
    CNRS LCSR Web
    Orléans la Source FRANCE

  • Lire les valeurs d'un tableau 2D

    Bonjour
    J'ai créé un tableau 2D et je souhaite lire la valeur d'une des case dans un indicateur numérique comment dois je faire ? J'y arrive avec un tableau 1D mais pas 2D j'utilisais la fonction indexer un tableau et je choisissais la ligne correspondante mais je n'y arrive pas avec un 2 D

    Je suppose que je vasi devoir utiliser la méthode à "benj" alors ! Voila ou j'en suis : 
    a quoi ressemble la seconde condition ?

  • Quelqu'un peut me donner une fonction qui

    Quelqu'un peut me donner une fonction qui permet de savoir le jour ` partir d'une date ? Par exemple je donne en paramhtre la date '05/03/2002' et la fonction me retourne 'Mardi', en frangais ou en anglais.
    J'ai besoin de cette fonction pour mes programmes que je suis en train de divelopper.
    Je vous remercie.
    Euginie

    En fait j'ai déjà répondu à cette question : http://abracadabrapdf.net/forum/index.php/topic,2630.0.html
    Pour le coup, c'est gratuit.

  • Comment remplacer un registre à décalager par une variable globale

    Bonjour tout le monde,
    Je vous sollicite encore une fois par manque d'expérience....
    Alors cette fois-ci j'ai un VI qui va acquérir une tension et faire la moyenne de celle-ci, mais mon problème est que j'utilise une boucle while avec un registre à décalage et d'après mon tuteur c'est à cause de cette boucle que je n'obtiens pas les résultats escontés.
    Il m'a donc conseillé de supprimer ma boucle while et de mette une variable globale qui gère la période de moyennage à la place de mon registre à décalage. 
    Le souci c'est que je ne connais ni d'adem ni d'eve cette variable...
    Est-ce que quelqu'un aurait l'amabilité de m'expliquer un peu cmt ça fonctionne parce que je ne trouve pas mon bonheur dans les exemples et les autres sujets?
    Et surtout est-ce la bonne solution?
    REM: le VI a été créé par une autre personne je n'est fais que de modifier la partie moyennage, donc les autres variables globales ne sont pas de moi.
    Merci d'avance!
    Attachments:
    VI_TEST2.vi ‏50 KB
    VI_TEST2.vi ‏50 KB

    Bonjour à toi,
    Tu trouveras ci-dessous un exemple d'implémentation d'une variable globale fonctionnelle :
    Basic Functional Global Variable Example
    J'ai regardé ton programme mais je ne suis pas sûr d'avoir bien compris ce qu'il devait faire, aussi je ne peux pas te conseiller entre les deux solutions, essaye avec la variable globale fonctionnelle cela sera de toute facon un bon exercice d'apprentissage.
    Pour le reste du programme, il est en principe fortement déconseillé d'utiliser des structures séquences déroulées. Il vaut mieux, si on veut s'assurer du bon déroulement de son programme, utiliser une structure de machine à état ou bien tout simplement le flux de données, principe natif de LabVIEW :
    Programmation par flux de données dans LabVIEW
    Machine à états simple
    J'espère que cela t'aidera,
    Bonne journée,
    M-Junior

  • I can't access iPhoto because of this message (sorry, it is in French) : "Votre bibliothèque est utilisée par une autre application ou est devenue illisible"

    Here is messaqge : "I can't access iPhoto because of this message (sorry, it is in French) : "Votre bibliothèque est utilisée par une autre application ou est devenue illisible"".
    I am on a iMac 27"with OS X Lion.
    The problem appeared while I was doing an import from an USB hard disk and an electric shutdown happened... The iMac and everything started well after but ipohoto.

    OK, when you find the solution please post it, it may help others in the future. BTW there are some other simple resets you can do, first is restart in Safe Mode, this will clear some caches. It's possibe one has become corrupt. Next would be to do SMC and PRAM resets, the instructions for both are:
    SMC RESET
    Shut down the computer.
    Unplug the computer's power cord and all peripherals.
    Press and hold the power button for 5 seconds.
    Release the power button.
    Attach the computers power cable.
    Press the power button to turn on the computer.
    PRAM RESET
    Shut down the computer.
    Locate the following keys on the keyboard: Command, Option, P, and R. You will need to hold these keys down simultaneously in step 4.
    Turn on the computer.
    Press and hold the Command-Option-P-R keys. You must press this key combination before the gray screen appears.
    Hold the keys down until the computer restarts and you hear the startup sound for the second time.
    Release the keys.

  • Ecran blanc au demarrage de adobe premiere pro cs4 lorsque on clique sur une fonction

    Ce logiciel fonctionne sur mon ordinateur depuis 4 ans .actuellement j'ai un problème: au démarrage les fenêtres de travail apparaissent, mais dés que l'on veut importer ou sélectionner une fonction l'écran devient blanc et le logiciel ne répond plus.

    Nobody can tell you anything without proper system information and other details.
    Mylenium

  • J'ai importer des CD sur iTunes et entrer toutes les infos une par une sauf que quand je regarde le fichiers dans l'explorateur windows, il n'y a que le titre et rien d'autre

    J'ai importer des CD sur iTunes et entrer toutes les infos une par une sauf que quand je regarde le fichiers dans l'explorateur windows, il n'y a que le titre et rien d'autre. Comment faire pour que les infos des musiques iTunes sois les memes sur le fichiers en questions ?
    Mes musiques se trouvent dans un dossier sur mon bureau.
    Merci

    http://en.wikipedia.org/wiki/Comparison_of_audio_formats
    http://translate.google.com/translate?sl=auto&tl=fr&js=n&prev=_t&hl=en&ie=UTF-8& layout=2&eotf=1&u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FComparison_of_audio_for mats&act=url
    http://fr.wikipedia.org/wiki/Format_de_fichier_audio#Caract.C3.A9ristiques_des_f ormats_audio
    I think the bit rate of 1023kbps as opposed to 1411kbps illustrates that the Apple Lossless file is 72% of the size of the original, however it sill consists of 16bit stereo sampled at 44.1KHz. You can also compare the lossy AAC formats to see if you can hear any difference at higher sample rates.
    Wav -> Apple Lossless -> Wav = original data
    Wav -> ACC -> Wav = degraded data
    Je pense que le débit binaire de 1023kbps contre 1411kbps illustre le fait que le fichier Apple Lossless est de 72% de la taille de l'original, mais il se compose de filon-couche stéréo 16bit échantillonnées à 44,1 KHz. Vous pouvez également comparer les formats avec perte AAC pour voir si vous pouvez entendre aucune différence des taux d'échantillonnage élevé.
    Wav -> Apple Lossless -> Wav = données d'origine
    Wav -> ACC -> Wav = données dégradées
    tt2

  • Appel à une fonction de préchargement

    Bonjour,
    J'ai créé une fonction afin de pouvoir l'appeler dans différents clips de mon animation. La fonction permet de charger une image tout en affichant la progression du chargement. Le problème c'est que l'appel à la fonction marche dans la 1re image de mon animation (endroit de son déclaration) mais pas dans un autre clip.
    voici mon code :
    function preloadimage(cible:MovieClip, xc:Number, yc:Number, id:Number)
         cible.attachMovie("zonepctxt","zonepctxt",cible.getNextHighestDepth()); //Clip contenant un texte dynamique (pct) pour afficher le chargement
         zonepctxt._x = xc;
         zonepctxt._y = yc;
         cible.createEmptyMovieClip("image",cible.getNextHighestDepth());
         image._x = xc;
         image._y = yc;
         image._alpha = 0;
         image.loadMovie("ref/" + id + ".jpg");
         cible.onEnterFrame = function()
              var bt:Number = image.getBytesTotal();
              var bl:Number = image.getBytesLoaded();
              var per:Number = ! bt ? 0 : Math.floor(bl/bt*100);
              zonepctxt.pct.text = "Chargement image : " + per + "%";
              if (per == 100)
                   zonepctxt.pct.text = "";
                   if (image._alpha < 100)
                        image._alpha += 10;
                   else
                        delete cible.onEnterFrame;
    preloadimage(this, 0, 200, 15); //fonctionne correctement dans la 1re image
    _root.preloadimage(this, 0, 200, 15);//ne fonctionne pas dans un clip

    Merci pour votre réponse.
    Je viens d'ajouter la ligne de code
         trace("fonction appelée")
    dans la fonction pour savoir s'il y a vraiment appel à la fonction.
    L'appel à la fonction a bien lieu en utilisant dans tout clip
         _root.preloadimage(this, -480, -70, 15);
    sans rien changer en la déclaration de la fonction.
    Ou en utilisant
         preloadimage(this, -480, -70, 15);
    mais en déclarant la fonction comme globale
         _global.preloadimage = function(cible:MovieClip, id:Number)
    C'est maintenant un problème d'affichage lié apparemment à la relativité des clips que je ne maîtrise pas

  • Il manque une fonction importante

    salutations amis de la pomme croquée !
    ben voila, il y a une fonction qui mérite d'être retravaillé : la fonction afficher les élements en double. en effet, itunes ne prends en compte que le nom de l'élément présent dans la playlist, et plusieurs noms identiques ne font pas référence au même fichier, donc l'élément n'est pas ajouté en double dans la bibliothèque. (vous me suivez ?) je pense que la fonction devrait se baser sur l'emplacement pour définir si le même fichier ajouté plusieurs fois dans la bibliothèque (clique droit sur le fichier, obtenir les informations, emplacement tout en bas)
    en fait j'ai quelque 2000 fichiers en double, et je n'ai aucun moyen rapide de savoir si c'est vrai ou faux...
    applement votre

    My french is very rusty, but I think this is a duplicate track question. See Thread:
    http://discussions.apple.com/thread.jspa?threadID=676192&tstart=0

Maybe you are looking for

  • Not able to generate reports after 8.1.1.3 patch installation

    Hi All, We are not able to generate reports after 8.1.1.3 patch installtion. and we also followed workaround as below 1) Import the sif files from Siebel\8.1\Tools_1\REPPATCH\12-1VMBCSV.zip 2) Import the 4 SIF files in the following order: S_XMLP_REP

  • How to close Automatic PO freight charges

    Since there are Shipment Cost Module implemented, there are automatic PO created called  "automatic PO generation for freight charges". These POs has no GR perform. Kindly please advise on how to handle it otherwise the POs will kept always open. Bel

  • Connect to MySQL

    How can I create connection between mySQL and JDBC directly without ODBC. Does JDBC provide built-in mySQL driver ? Thank you very much

  • Thread bottleneck due to bug in JSF 1.1 : please help

    Hi. We are using JSF 1.1 on a J2EE 1.4 server and have identified a critical a bottleneck because methods of class com.sun.faces.application.ApplicationAssociate are synchronized. This is a bug in JSF 1.1 identified by Sun (http://bugs.sun.com/bugdat

  • The PDF  did not convert to Excel at all. Only two pages from 24

    El archivo pdf solo se convirtio parcialmente a excel de 24 paginas solo dos se convirtieron que pasa