IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

LabVIEW Discussion :

Interface C++ vers LabView


Sujet :

LabVIEW

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Points : 69
    Points
    69
    Par défaut Interface C++ vers LabView
    Bonsoir à tous,
    comme j'ai décrit dans une discussion précédente, j'ai conçu une carte de commande liée par le port USB. cette carte est gérée par une interface développé en C++ et qui définit exactement à chaque action( bouton, checkbox..) le type de trame que je doit envoyé au port.
    sincèrement je vois pas comment je doit reformuler tout ça sur LABVIEW.
    Merci de me donner une méthodologie simplifié pour résoudre ce problème ou m'aider avec un exemple( même s'il n'est pas pour l'USB mais juste pour savoir comment se passe les choses).
    Merci d'avance

  2. #2
    Membre éprouvé Avatar de BrunoIRM
    Homme Profil pro
    Ingénieur Instrumentation
    Inscrit en
    Juillet 2009
    Messages
    785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Instrumentation

    Informations forums :
    Inscription : Juillet 2009
    Messages : 785
    Points : 1 160
    Points
    1 160
    Par défaut Re: Interface C++ vers LabView
    Salut,

    Que veux-tu faire : Traduire ton code C++ et ton interface en LabVIEW ou réutiliser ton code C++ ?

    Dans le deuxième cas, tu peux créer une DLL qui rassemble les fonctions que tu as développées en C++ et tu peux appeler chacune de ces fonctions à partir d'une nouvelle interface que tu crées en LabVIEW...

    Cela répond-il à ta question ?

    B.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Points : 69
    Points
    69
    Par défaut
    Merci pour votre réponse
    si j'ai bien compris ce que vous avez expliqué, je peux construire une interface en labview qui fait appel a un DLL regroupant toutes les fonctions en C++ sans nécessité de les réécrires. Donc mon travail sera limité à la conception d'une nouvelle interface en labview au lieu de celle en C++.
    si c'est que vous voulez dire, est ce que vous pouvez me donner la manière dont je peut construire ce DLL et comment je peut y faire appel.

    Merci beaucoup pour votre aide

  4. #4
    Membre éprouvé Avatar de BrunoIRM
    Homme Profil pro
    Ingénieur Instrumentation
    Inscrit en
    Juillet 2009
    Messages
    785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Instrumentation

    Informations forums :
    Inscription : Juillet 2009
    Messages : 785
    Points : 1 160
    Points
    1 160
    Par défaut
    Bonjour,

    Pour générer une DLL (une bibliothèque de fonctions), cela dépend du compilateur que tu utilises. e te renvoie donc vers la doc de ton EDI C++ ou bien vers le forum C++ de ce site.

    Pour appeler une fonction d'une DLL depuis LabVIEW, tu dois passer par la palette "Connectivité" puis la sous-palette "Bibliothèques et exécutables" puis la fonction "Appeler une fonction d'une DLL".

    Comme souvent sous LabVIEW, cette fonction est assez bien documentée

    A

    B.

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Points : 69
    Points
    69
    Par défaut
    Merci pour votre réponse
    Mon interface C++ fait aussi appel a un DLL et voici la fonction d'appel au DLL en c++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    VOID LoadDLL(VOID)
    {
        libHandle = NULL;
        libHandle = LoadLibraryA("mpusbapi");
        if(libHandle == NULL)
        {
            MessageBox::Show("Error loading mpusbapi.dll","Function LoadDLL");
    		exit(1);
    	}
        else
        {
            MPUSBGetDLLVersion=(MPUSBGETDLLVERSION)GetProcAddress(libHandle,"_MPUSBGetDLLVersion");
            MPUSBGetDeviceCount=(MPUSBGETDEVICECOUNT)GetProcAddress(libHandle,"_MPUSBGetDeviceCount");
            MPUSBOpen=(MPUSBOPEN)GetProcAddress(libHandle,"_MPUSBOpen");
            MPUSBWrite=(MPUSBWRITE)GetProcAddress(libHandle,"_MPUSBWrite");
            MPUSBRead=(MPUSBREAD)GetProcAddress(libHandle,"_MPUSBRead");
            MPUSBReadInt=(MPUSBREADINT)GetProcAddress(libHandle,"_MPUSBReadInt");
            MPUSBClose=(MPUSBCLOSE)GetProcAddress(libHandle,"_MPUSBClose");
    
            if((MPUSBGetDeviceCount == NULL) || (MPUSBOpen == NULL) ||
                (MPUSBWrite == NULL) || (MPUSBRead == NULL) ||
                (MPUSBClose == NULL) || (MPUSBGetDLLVersion == NULL) ||
                (MPUSBReadInt == NULL))
    		{
    			MessageBox::Show("GetProcAddress Error","Function LoadDLL");
    			exit(1);
    		}
        }
    }
    mais aussi j'ai des autres fonctions pour l'envoi et la reception des paquets comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    VOID sortiesnumeriquesByteTAD(DWORD valor)
    {
    	RecvLength=1;
    	send_buf[0] = SORTI_NUMERIQUE_BYTE;	//Comando
    	send_buf[1] = (BYTE)valor;	//Dato
    	if(SendReceivePacket(send_buf,2,receive_buf,&RecvLength,1000,1000)==1)
    	{
    		if(RecvLength != 1 || receive_buf[0] != SORTI_NUMERIQUE_BYTE )
    		{
    			MessageBox::Show("USB Operation Failed","Function sortiesnumeriquesByteTAD");
    			exit(1);
    		}
    	}
    	else
    	{
    		MessageBox::Show("USB Operation Failed","Function sortiesnumeriquesByteTAD");
    		exit(1);
    	}
    }
    est ce que je doit programmer tout ça schématiquement avec LABVIEW ou il y a une autre méthode.

Discussions similaires

  1. Importer des données d'un fichier vers LabVIEW
    Par beluga18 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 02/06/2008, 15h18
  2. Interface conseillé vers mysql
    Par Pascail dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/03/2008, 08h19
  3. Importation de données Excel vers LabView
    Par alex_007 dans le forum LabVIEW
    Réponses: 2
    Dernier message: 26/03/2007, 20h38
  4. Réponses: 1
    Dernier message: 20/03/2007, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo