Exécution de 4 modules simultanément

Bonjour,
J'utilise un châssis (NI cDAQ-9174) à 4 emplacements. Je branche 4 modules d'acquisitions sur les 4 emplacements. Mais en exécutant les 4 modules simultanément je reçois le message d'erreur suivant "-200022 la ressource a été déjà réservée". Donc je me demande si le problème d'exécution provient de l'ordinateur ou bien autre chose. Merci de me proposer vos idées. (je vous rappelle qu'en mettant 3 DAQ le programme fonctionne sans problème) .
A+
Résolu !
Accéder à la solution.

Bonjour,
La réponse est très simple (cf Documentation)
"The CDAQ-9174/9178 features three AI timing engines and is therefore capable of performing up to three Analog input tasks at different sampling rates.  These three timing engines are named ai, te0 & te1.  Once three analog input tasks are configured to run on different sampling rates, the same concepts described below apply to the CDAQ-9174/9178."
Specifying Different Sample Rates for Multiple CompactDAQ Modules
Cordialement,
Da Helmut

Similar Messages

  • Comment acquérir plusieurs voies simultanément sans utiliser l'assistant DAQ

    Bonjours,
    Je souhaiterai savoir comment acquérir plusieurs voies simultanément sans utiliser l'assistant DAQ afin de pouvoir régler les paramètres (fréquence d'échantillonnage, nbre de points à acquérir, plage d'entrée min et max) sur la face avant lors de l'exécution de mon programme?
    De plus je souhaiterai savoir comment faire pour avoir ma courbe stable dans ma fenetre Graph (non déroulante).
    D'avance mercie beaucoup pour celui ou celle qui me répondra!
    Ludo

    Bonjour,
    Vous trouverez des exemples plus bas niveau que le DAQ Assistant à l'endroit suivant:
    * Ouvrez un VI vide et sélectionnez le Menu Aide >> Recherche d'exemples...
    * Sélectionnez la rubrique "E/S Matérielles >> DAQmx >> Mesures analogiques >> Tension"
    Ces exemples permettent de faire de l'acquisition finie, continue, point-par-point sur une ou plusieurs voies en réglant les paramètres depuis la face-avant du VI. Pour des applications plus avancées, je vous conseille de vous plonger dans les exemples ci-dessous:
    * NI-DAQmx >> Advanced Programming Techniques
    http://zone.ni.com/devzone/devzone.nsf/webcategories/B43F55011D54A29486256F190043B365
    Concernant l'affichage de votre graphe, la meilleure méthode est de désactiver la mise à l'echelle automatique de l'échelle des X et des Y dans les propriétés du graphe.
    Cordialement.
    Matthieu G.
    AE, NI France

  • Use 2 Sound modules simultaneously??

    I have 2 modules plugged to my G5 in logic, but when i select port 1 for one module, the rest of the gm tracks switch to port one, or if i select port 2 for the other module the rest of the gm tracks change to port 2, for e.g midi track one is using piano from the jv1080 and i want to use bass on track 2 from the proteus, it wont let me. i can only either use the 1080 or the proteus not both?
    can some one help?

    RTFM. Pages 214 - 219 in the Logic Pro 7 Reference Manual discuss multi-instruments. Better yet, read all of Chapter 5 regarding the environment.

  • USB6210 et PCI6232 : lecture de deux valeur analogiques simultanément

    Bonjour,
    Pour une application, je dois lire deux entre analogique en même temps.
    J'utilise pour mes tests l'USB-6210 et pour la prod le PCI-6232.
    J'ai réalisé un petit programme en C avec :
      DAQmxCreateTask
      DAQmxCreateAIVoltageChan ( ..., "Dev1/ai0", ..., DAQmx_Val_RSE, ...);
      DADmxStartTask(..);
    Jusque là... tout va bien, je peux lire les info avec
      DAQmxReadAnalogScalarF64 (...);
    puis je défini en parallèle la deuxième lignes de la même manière mais avec "Dev1/ai1"
    et là, j'ai une erreur qui m'indique que le divice est déjà utilisé ???
    Pouvez-vous m'aider svp.
    Merci
    Résolu !
    Accéder à la solution.

    Bonjour,
    J'ai regardé tous les exemples fournis en C, mais aucun ne montre une lecture sur plusieurs lignes.
    ce que j'ai trouvé en regardant la doc, c'est que :
      - Dans la fonction DAQmxCreateAIVoltageChan, je dois définir la plage à lire soit : " dev01/ai0:1" pour lire les voies 0 à 1
      - Pour la lecture, je dois utiliser la fonction ReadAnalogF64 avec le numSampsPerChan à 1, le fillmode GroupbyChanel
    Dans mon cas, je veux lire un échantillons par voie, donc je suppose que le ArraySizeInSamps doit être 2 et que je dois founir un tableau de deux éléments à remplir par la fonction...
    Est-ce bien cela ?
    Merci
    Encore une petite question, pouvez-vous me confirmer ceci:
      - pour définir les voies de 0 à 4 je dois écrire dev0/ai0:ai4
      - pour définir les voies 0 et 4 je dois écrire dev0/ai0:dev0/ai4 -> pas certain de ceci
    Re-Merci ;-)

  • Garder ses versions CS6 installées et Installer simultanément CC

    Bonjour, quelqu'un a-t-il expérimenté le téléchargement d' une version CC tout en gardant la version CS6 installée sur son PC? Comment CC gère les plugins déjà installés sur une CS6. Que se passe-t-il si on est obligé d'arrêter l'abonnement à CC?  La question peut paraître saugrenue mais lorsqu'on a de nombreux plugins, devoir tout réinstaller en cas de problème, est assez fastidieux et induit beaucoup de pertes de temps.

    Bonjour, J'ai aussi essayé! comme dirait...
    Suite à vos infos, j’ai testé l’installation simultanée de After Effects CS6 et la version d’évaluation de la CC. Je n’ai pas testé de lancer les fichiers d’installation des plugins et scripts après l’installation de la CC mais de faire un copier-coller manuel.
    PLUG-INS  DU DOSSIER SUPPORT FILES : Par ex. la suite Trapcode Particular ou Element 3D.
    Il n’est pas nécessaire de recopier tous les plugins de la CS6 dans le dossier Plug-ins de la CC. Il « suffit »  d’y coller les raccourcis correspondants. Cela représente un peu plus de travail que le simple copier coller car il faut effacer la mention « Raccourci » du nom du raccourci mais cette astuce consomme moins de place sur le disque dur (Evidement ceci n’est valable que tant que la CS6 n’est pas désinstallée !)
    PLUG-INS DU DOSSIER COMMON. Pour les plugins installés dans ce dossier, par ex Shine  et Starglow de Trapcode, on crée s’il n’existe pas, un dossier « 7.0 » et un sous dossier  « Mediacore » et on y ajoute les raccourcis de tous les dossiers et fichiers contenus dans le sous-dossier « Mediacore » du dossier « CS6 ». Effacer la mention « Raccourci » des noms des raccourcis.
    SCRIPTS ; Dans ce cas les raccourcis ne semblent pas fonctionner et il faut bien faire un copier coller. De plus pour les scripts demandant une clé, il faut la réintroduire lors de la première installation.
    PRESETS : Pour les presets on peut également utiliser les raccourcis.
    Ceci est un peu long et fastidieux mais cela fonctionne et c’est le principal.
    Pour photoshop, si je me rappelle bien on peut choisir un dossier pour les plugins, cela devrait donc être plus rapide. Je verrai cela si je passe à la CC. En tout cas vos réponses m'on permis de franchir le pas vers la CC sans trop de craintes.

  • Relire plusieurs rapports d'essais simultanément

    Bonjour,
    Je cherche à établir des statistiques sur un ensemble d'essais réalisés avec Labview. J'ai crée mon VI d'analyse afin de comparer les données entre elles ( valeurs max , écarts types etc...) mais je ne sais pas comment spécifié à ce VI qu'il doit faire l'analyse sur tout les essais inclus dans le dossier que je spécifie.
    Merci d'avance pour votre aide.
    Aurelien
    Résolu !
    Accéder à la solution.

    Bonjour,
    Pourquoi ne pas utiliser le VI inclu dans LabVIEW ?
    Cordialement,
    Pièces jointes :
    exemple_dossier.vi ‏8 KB

  • Creative cloud simultanément sur mon imac et mon laptop

    Bonjour,
    J'ai téléchargé les logiciels sur mon imac, tout va bien. La suite fermée, j'ai téléchargé à nouveau les logiciels sur mon laptop. Ils ouvrent en mode trial.
    Que dois-je faire pour que ça fonctionne?
    Je crois avoir compris que les logiciels sont disponibles sur devices multiples du moment qu'ils sont ouverts sur un seul poste à la fois.
    J'ai ouvert un billet chez Adobe la semaine passée, mais peronne ne répond. J'aurais besoin d'aide svp! Merci de vos réponses.

    Hallo Gizzz,
    La boîte de dialogue du procès devrait avoir deux boutons Licence Ce logiciel et continuer l'essai. Cliquez sur License Ce logiciel et vous serez invité à vous connecter avec votre ID Adobe. Cela devrait prendre soin du problème d'activation.
    Sinon, vous pouvez lancer le Gestionnaire Applicatioin Adobe, cliquez sur votre nom en haut à gauche et choisissez Déconnexion. Vous verrez alors une boîte de dialogue vous identifier ou vous inscrire. Vous reconnecter avec votre ID Adobe
    - Nitin (LP)

  • Probleme avec DAQmxRegisterEveryNSamplesEvent, acquisition et émission simultané

    Bonjour
    J'essaye de générer et acquérir un signal simultanément. Typiquement, je relie l'entrée 0 et la sortie 0 et je reçois ce que je génére.
    J'utilise donc deux taches: une dédié à l'émission et l'autre à la réception. Pour les deux, j'utilise un déclenchement sur EveryNSamplesEvent.
    Mon problème est que lorsque que je lance les taches, avant même l'éxécution de la ligne de code suivante, j'ai un compte rendu d'émission correspondant à 2 secondes d'émission (en une fraction de seconde) à ma fréquence d'échantillonnage et que mon acquisition commence elle normalement (je crois). L'émission se termine ensuite seule environ 2 secondes après la fin de la génération.
    Dans l'idéal je voudrai même que l'émission et la réception soient synchrones. Je me suis donc inspiré du code exemple SynchAI-AO.c . Dans ce code seul l'acquisition fonctionne sous EveryNSamplesEvent. Néanmoins j'utilise comme dans le code exemple la définition du trigger sur /Dev1/ai/StartTrigger et la commande DAQmxCfgDigEdgeStartTrig appliqué à la tâche émission.
    Je ne comprend pas pourquoi l'EveryNSamplesEvent de l'émission se déclenche si rapidement dès le début, avant même l'acquisition.
    Merci de votre aide

    Désolé mais je n'arrive pas à supprimer ce topic. Pourriez-vous aller consulter le suivant s'il vous plait ?
    Merci

  • NI 9401 - lecture simultanée de compteurs

    Bonjour,
    je suis en train de mettre en place un stand d'acquisition d'une pompe à chaleur. J'utilise le matériel suivant :
    Labview 2010, v10.0
    1x NI-cDAQ-9188 avec modules : 9263, 9481, 9435, 9207 et 9401
    1x NI-cDAQ-9188 avec modules : 9217 et 9213
    Mon programme est construit de la façon suivante : Une boucle cadensée tourne toutes les 2 secondes, à l'intérieure de cette boucle, une structure en séquence opère différentes actions : affichage, lecture canaux, calculs (bilans d'énergie), régulation, sauvegarde.
    Tout fonctionne bien sauf l'acquisition du module 9401 (comptage de 4 compteur à impulsions TTL).
    En fait, j'ai deux problèmes :
    Le premier est que je n'arrive pas à compter simultanément les quatres compteurs TTL installés sur le module 9401. J'ai essayé tous les exemples donnés sur labview de compteurs, sans succès.Lorsque j'essaie, l'erreur suivante apparait :"Le périphérique ne peut pas être configuré en entrée ou en sortie car des lignes ou des terminaux qui lui sont connectés sont utilisés par une autre tâche ou une autre connexion. Cette opération nécessite que toutes les lignes et tous les terminaux soient temporairement réservés à la communication, ce qui interfère avec l'autre tâche ou connexion...."
    Le second problème est que, comme est construit mon programme, la séquence ne permet pas de lire en continu mes compteurs pour "voir" passer les impulsions et les totaliser.
    Pour information, le comptage séparé de chaque compteur fonctionne lorsque j'utilise "Count digital Events.vi"
    Quelqu'un aurait-il un exemple de vi ou des pistes que je pourrai explorer...
    Un grand merci d'avance
    cath

    Bonjour Florian,
    un grand merci pour votre aide.
    J'ai adapté le vi "DAQmx Digital  Input and Output and Counter Input with NI 9401" pour mon application et ça marche... presque... Je m'explique :
    Lorsque je le lance la première fois, ça totalise parfaitement sur mes 4 compteurs. Si je l'arrête (au moyen de la commande STOP du vi), je n'arrive plus à lancer le programme et la même erreur qu'avant apparaît, c'est-à-dire l'erreur code -201133 (à DAQmxStartTask.vi). En pressant continuer, continuer, continuer, le programme s'arrête. Je le relance, je refait continuer, continuer, continuer...le programme s'arrête. Après 5 tentatives, le programme s'est lancé sans erreur ! Il doit y avoir un problème dans la gestion des tâches, mais franchement, ça me dépasse un peu...
    Avez-vous une idée de la cause ?
    Je mets en fichier joint mon vi.
    A bientôt
    Cath
    Attachments:
    DI-DO-CI with 9401 - Cath.vi ‏28 KB

  • Mise en œœuvre module FPGA

    Bonjour a tous,
    J'ai un projet ou je dois mettre ne œœuvre un module de type FPGA qui est une carte de chez Wiener, la NPL20. Elle offre 20 ports d'E/S et fonctionne avec du TTL ou du NIM (0V à -0,8V).
    Pour cela je dois réaliser un montage avec pour principe de fonctionnement une coïncidence de 4 signaux NIM en entrée. Ce signal de coïncidence sera envoyé sur 4 sortie NIM.
    Voici le schéma de mon diagramme actuel (pièce jointe).
    Les portes ET réalise le ET logique quand les 2 signaux d'entrée sont à l'état bas (-0,8V) simultanément. Elle délivre alors une tension en sortie de -0,8V. Le reste du temps, elle delivre
    une tension de 0V. Mon montage fonctionne correctement. J'ai pu faire des relevés d'oscillo.
    Cependant je dois placer à la sortie de chaque porte ET un compteur 32bits qui me permettra de compter les événements... Je ne sais pas trop comment il fonctionne
    La description donnée par le fabriquant n'est pas tip top.
    Quelqu'un pourrait-il m'éclairer sur ce cpt32bits ?? Et quelqu'un pourrait-il m'expliquer comment se fait t'il que toute mes données sont de type String alors que ce sont des signaux numériques que je relève à l'oscillo ??
    Cordialement.
    Pièces jointes :
    forum_ni.JPG ‏254 KB

    Hello yehoudaT,
    Je pense qu'il existe de nombreux morceaux de code faisant du comptage d'événéments (edge count) dans LabVIEW et sur notre site, je t'invite à faire un petite recherche pour trouver ce qui correspond le mieux à ce que tu souhaites faire.
    Ensuite, pour les chaines de caractères, c'est uniquement l'API utilisée dans LabVIEW (qui vient visiblement de Wiener ?) qui est responsable du type de données. 
    Cdt,
    Eric
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Deux études simultanées

    Bonjour, j'ai fait un programme permettant de charger décharger une batterie tout en mesurant sa tension.
    Et je souhaites pouvoir le faire sur deux batteries en même temps. J'a d'abord essayé de lancer le programme deux fois (avec deux noms différents) en changeant les voies, ca na pas marché. Du coup j'ai modifié le programme, je travaillais de base dans une boucle while, et j'en ai créé une autre pour l'autre mesure, et ca ne marche toujours pas. J'ai cette erreur qui s'affiche : "L'erreur -50103 s'est produite à : DAQmx Start Task.vi:7220004"
    Auriez vous une idée ?
    Merci d'avance
    Pièces jointes :
    prog alim charge mesure 2 2 batteries.vi ‏210 KB

    Salut,
    Il est possible d'appeler simultanément un vi plusieurs fois, pour cela il faut configuré le vi en mode exécution réetrante: Fichier>>Propriétés du Vi>>Execution.
    Par défaut, les vi sont confgurés en "exéxution non réantrante", c'est à dire que si le vi est appelé plusieurs fois simultanément les appeleants doivent se relayer pour l'execution de celui-ci.
    Réentrance : autorisation d'appels simultanés au même sous-VI
    Reg

  • Problème avec DAQmxRegis​terEveryNS​amplesEven​t, acquisitio​n et émission simultané

    Bonjour
    J'essaye de générer et acquérir un signal simultanément. Typiquement, je relie l'entrée 0 et la sortie 0 et je reçois ce que je génére.
    J'utilise donc deux taches: une dédié à l'émission et l'autre à la réception. Pour les deux, j'utilise un déclenchement sur EveryNSamplesEvent.
    Mon problème est que lorsque que je lance les taches, avant même l'exécution de la ligne de code suivante, j'ai un compte rendu d'émission correspondant à 2 secondes d'émission (en une fraction de seconde) à ma fréquence d'échantillonnage et que mon acquisition commence elle normalement (je crois). L'émission se termine ensuite seule environ 2 secondes après la fin de la génération.
    Dans l'idéal je voudrai même que l'émission et la réception soient synchrones. Je me suis donc inspiré du code exemple SynchAI-AO.c . Dans ce code seul l'acquisition fonctionne sous EveryNSamplesEvent. Néanmoins j'utilise comme dans le code exemple la définition du trigger sur /Dev1/ai/StartTrigger et la commande DAQmxCfgDigEdgeStartTrig appliqué à la tâche émission.
    Dans l'ordre, je lance la tache d'émission puis la tache de réception. Si j'échange l'ordre, la tache d'émission a le même comportement jusqu'à ce que la tache de réception se lance. Ensuite, il semble que la fonction callback de l'émission n'est plus appelée.
    Je ne comprend pas pourquoi l'EveryNSamplesEvent de l'émission se déclenche si rapidement dès le début, avant même l'acquisition. Est-il en fait possible d'avoir deux tache fonctionnant par l'EveryNSamplesEvent ?
    Merci de votre aide

    Bonjour,
    J'ai l'impression qu'il y'a quelques incohérences dans votre explication:
    j'ai un compte rendu d'émission correspondant à 2 secondes d'émission (en une fraction de seconde) à ma fréquence d'échantillonnage
    Pourquoi parlez-vous de votre fréquence d'échantillonage? Si tous vos éléments sont générés d'un coup, au lieu d'être fait en 2 secondes, j'imagine que votre fréquence d'échantillonnage n'est pas respectée.
    L'émission se termine ensuite seule environ 2 secondes après la fin de la génération.
    Qu'entendez-vous par là? Si tous vos points ont été générés depuis 2 secondes, que considérez-vous comme la fin de l'émission?
    Dans l'idéal je voudrai même que l'émission et la réception soient synchrones. Je me suis donc inspiré du code exemple SynchAI-AO.c
    Qu'entendez-vous par là? Que voulez-vous faire exactement?
    Cet exemple implémente une AI et une AO qui sont synchronisés sur le même signal d'horloge, et démarrés en même temps par un trigger. Je pense qu'il répond donc à votre besoin.
    Pour ma part, cela me semble normal qu'il n'y ait que l'acquisition qui utilise le EveryNSamplesEvent. En effet, pour la génération, vous définissez votre tableau de points à générer, ainsi que la fréquence à laquelle ils doivent être générés, et la géénration se gère d'elle même. Ensuite, l'acquisition démarre, et vous remonte les infos seulement lorsqu'elle a reçu N Samples, cela vous évite de faire du polling sur l'acquisition.
    Ces informations vous éclairent-elles sur le fonctionnement de l'exemple?
    Cordialement,
    Olivier L. | Certified LabVIEW Developer

  • Problem calling two perl modules from java in seperate threads(JVM CRASHES)

    Dear Friends,
    I have one severe problem regarding calling perl modules from java
    I had to call two perl modules simultaneously (i.e.) from two threads,,, but jvm crashes when one of the perl calls is exiting earlier
    I am unable to spot out why ....
    For calling perl from java ...., We are first calling C code from java using JNI and then Perl code from C
    All works fine if we call only one perl call at a time.... If we call them in a synchronized manner the JVM is not crashing .... But we don't want blocking..
    The following is the code snippet
    <JAVA FILE>
    class Sample
         static {
              System.loadLibrary("xyz");  // Here xyz is the library file generated by compiling c code
         public native void call_PrintList();
         public native void call_PrintListNew();
         Sample()
              new Thread1(this).start();     
         public static void main(String args[])
              System.out.println("In the main Method");
              new Sample().call_PrintList();
         class Thread1 extends Thread
              Sample sample;
              Thread1(Sample sam)
                   sample=sam;
              public void run()
                   sample.call_PrintListNew();     
    }<C FILE>
    #include <EXTERN.h>
    #include <perl.h>
    static PerlInterpreter *my_perl;
    static char * words[] = {"alpha", "beta", "gamma", "delta", NULL } ;
    static void
    call_PrintList(){
         printf("\nIn the Call method of string.c\n");
            char *wor[] = {"hello", "sudha", NULL } ;
               char *my_argv[] = { "", "string.pl" };
               PERL_SYS_INIT3(&argc,&argv,&env);
               my_perl = perl_alloc();
                   PL_perl_destruct_level = 1; //// We have mentioned this also and tried removing destruct call
               perl_construct( my_perl );
               perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
              PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
               perl_run(my_perl);
         dSP ;
            perl_call_argv("PrintList",  G_DISCARD, wor) ;
    PL_perl_destruct_level = 1;
    //     perl_destruct(my_perl);
    //          perl_free(my_perl);
    //           PERL_SYS_TERM();
    static void
    call_PrintListNew(){
    printf("In the new call method\n");
    char *wor[] = {"Hiiiiiiiiiiiiiii", "Satyam123333", NULL } ;
            char *my_argv[] = { "", "string.pl" };
            PERL_SYS_INIT3(&argc,&argv,&env);
            my_perl = perl_alloc();
    PL_perl_destruct_level = 1;
            perl_construct( my_perl );
            perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
            PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
            perl_run(my_perl);
            dSP ;
            perl_call_argv("PrintListNew",  G_DISCARD, wor) ;
    PL_perl_destruct_level = 1;
      //      perl_destruct(my_perl);
      //      perl_free(my_perl);
       //     PERL_SYS_TERM();
    void callNew()
    call_PrintListNew();
    void call ( )
    call_PrintList();
    //char *wor[] = {"hello","sudha",NULL};
    /*   char *my_argv[] = { "", "string.pl" };
          PERL_SYS_INIT3(&argc,&argv,&env);
          my_perl = perl_alloc();
          perl_construct( my_perl );
          perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
         PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
          perl_run(my_perl);*/
       //   call_PrintList();                      /*** Compute 3 ** 4 ***/
    /*      perl_destruct(my_perl);
          perl_free(my_perl);
          PERL_SYS_TERM();*/
        }And Finally the perl code
    sub PrintList
                my(@list) = @_ ;
                foreach (@list) { print "$_\n" }
    sub PrintListNew
                my(@list) = @_ ;
                foreach (@list) { print "$_\n" }
            }Please help me in this regard

    Dear Friends,
    I have one severe problem regarding calling perl modules from java
    I had to call two perl modules simultaneously (i.e.) from two threads,,, but jvm crashes when one of the perl calls is exiting earlier
    I am unable to spot out why ....
    For calling perl from java ...., We are first calling C code from java using JNI and then Perl code from C
    All works fine if we call only one perl call at a time.... If we call them in a synchronized manner the JVM is not crashing .... But we don't want blocking..
    The following is the code snippet
    <JAVA FILE>
    class Sample
         static {
              System.loadLibrary("xyz");  // Here xyz is the library file generated by compiling c code
         public native void call_PrintList();
         public native void call_PrintListNew();
         Sample()
              new Thread1(this).start();     
         public static void main(String args[])
              System.out.println("In the main Method");
              new Sample().call_PrintList();
         class Thread1 extends Thread
              Sample sample;
              Thread1(Sample sam)
                   sample=sam;
              public void run()
                   sample.call_PrintListNew();     
    }<C FILE>
    #include <EXTERN.h>
    #include <perl.h>
    static PerlInterpreter *my_perl;
    static char * words[] = {"alpha", "beta", "gamma", "delta", NULL } ;
    static void
    call_PrintList(){
         printf("\nIn the Call method of string.c\n");
            char *wor[] = {"hello", "sudha", NULL } ;
               char *my_argv[] = { "", "string.pl" };
               PERL_SYS_INIT3(&argc,&argv,&env);
               my_perl = perl_alloc();
                   PL_perl_destruct_level = 1; //// We have mentioned this also and tried removing destruct call
               perl_construct( my_perl );
               perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
              PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
               perl_run(my_perl);
         dSP ;
            perl_call_argv("PrintList",  G_DISCARD, wor) ;
    PL_perl_destruct_level = 1;
    //     perl_destruct(my_perl);
    //          perl_free(my_perl);
    //           PERL_SYS_TERM();
    static void
    call_PrintListNew(){
    printf("In the new call method\n");
    char *wor[] = {"Hiiiiiiiiiiiiiii", "Satyam123333", NULL } ;
            char *my_argv[] = { "", "string.pl" };
            PERL_SYS_INIT3(&argc,&argv,&env);
            my_perl = perl_alloc();
    PL_perl_destruct_level = 1;
            perl_construct( my_perl );
            perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
            PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
            perl_run(my_perl);
            dSP ;
            perl_call_argv("PrintListNew",  G_DISCARD, wor) ;
    PL_perl_destruct_level = 1;
      //      perl_destruct(my_perl);
      //      perl_free(my_perl);
       //     PERL_SYS_TERM();
    void callNew()
    call_PrintListNew();
    void call ( )
    call_PrintList();
    //char *wor[] = {"hello","sudha",NULL};
    /*   char *my_argv[] = { "", "string.pl" };
          PERL_SYS_INIT3(&argc,&argv,&env);
          my_perl = perl_alloc();
          perl_construct( my_perl );
          perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
         PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
          perl_run(my_perl);*/
       //   call_PrintList();                      /*** Compute 3 ** 4 ***/
    /*      perl_destruct(my_perl);
          perl_free(my_perl);
          PERL_SYS_TERM();*/
        }And Finally the perl code
    sub PrintList
                my(@list) = @_ ;
                foreach (@list) { print "$_\n" }
    sub PrintListNew
                my(@list) = @_ ;
                foreach (@list) { print "$_\n" }
            }Please help me in this regard

  • Mesures simultanées fréquences (labview 2010)

    Bonjour, 
    je développe un programme dans le but de faire de l'analyse vibratoire. J'utilise le matériel suivant:
    -châssis NI-cDaQ 9188
    -une carte NI 9234 pour l'acquisition des données provenant des accéléromètres (4 accéléro)
    -une carte NI 9401 pour la mesure de fréquences (2 fréquences). Je récupère mes fréquences à l'aide de compteurs.
    Pour l'acquisition des données provenant des accéléro, aucun soucis.
    En revanche, pour les mesures des fréquences, ça va moins bien.
    J'ai testé 2 solutions:
    -la première, je crée 2 tâches dans le MAX que j'appelle sous labview (cf. vib 5.jpg), dans ce cas, j'ai le message d'erreur suivant pour la 2ème tâche: "Le périphérique ne peut pas être configuré en entrée ou en sortie car des lignes ou des terminaux qui lui sont connectés sont utilisés par une autre tâche ou une autre connexion. Cette opération nécessite que toutes les lignes et tous les terminaux soient temporairement réservés à la communication, ce qui interfère avec l'autre tâche ou connexion."
    -la seconde, je crée les tâches directement dans labview (cf. vib 5.jpg), ce qui semble fonctionner. Mais dans ce cas-ci, c'est à l'analyse des résultats que je constate le problème.
    je voudrais faire un enregistrement simultané des données provenant des accéléro, et de mes 2 fréquences. L'enregistrement des données provenant des accéléro prend en moyenne 2 secondes. Je voudrais donc pour mes fréquences (NH et NL) enregistrer 200 points, répartis sur 2 secondes pour que l'analyse soit cohérente. Or, j'enregistre bien mes 200 points, mais a priori très rapidement, ce qui fait que lorsque je trace mes courbes, j'observe des paliers et non une évolution continue. De plus, je suppose que les acquisitions de mes 2 fréquences se font successivement.
    Y a-t'il une solution pour que je puisse faire tous ces enregistrements simultanément?
    En vous remerciant d'avance pour votre aide.
    Galega
    Pièces jointes :
    vib 4.jpg ‏330 KB
    vib 5.jpg ‏266 KB

    Bonjour, 
    et merci pour votre réponse. 
    j'ai fait le test que vous m'avez suggéré, mais malheureusement ça ne fonctionne pas.
    De plus je n'arrive toujours pas à obtenir une acquisition continue de mes fréquences, il me manque des valeurs (cf pièce jointe).
    En espérant trouver rapidement la solution.
    Merci
    Pièces jointes :
    courbe fréquence.jpg ‏33 KB

  • Plusieurs apple tv en simultané

    nous avons créer différentes zones de musique dans la maison (ex. haut-parleur dans le bureau, à l'extérieur, dans le salon) et chaque zone est reliée à sa propre Apple TV.Est-ce que je peux à partir de un appareil IOS envoyer ma musique à toutes les apple tv simultanément pour que les 3 zones jouent la meme musique en meme temps?

    Probablemente debas revisar en Ajustes si tu Apple TV esta conectado a la tienda de estados unidos y no a la de tu pais.

Maybe you are looking for