Discussions au sujet de NI LabVIEW

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

Utilisation d'une Fonction Win32 pour établir une communication avec un ANum LFRF

Résolu !
Accéder à la solution

Bonjour à tous,

 

Je suis stagiaire et je mène un projet d'hyperfréquence. Donc pour cela, je dois établir la communication avec l'ANum LFRF (Appareil développer par Microtec) via Labview.

Et je dois utiliser les fonction Win32 pour le paramètrage et l'affichage des résultats.

 

Pour créer de la shared memory, il faut utiliser les fonctions Win32 suivantes :

CreateFileMapping et MapViewOfFile

 

Est ce vous avez des aides au sujet de ça voir des tutos? Et est ce avec cette fonction Win32, ça va générer des VIs pour le pilotage de l'appareil?

 

Merci d'avance.

 

 

Tout télécharger
0 Compliments
Message 1 sur 17
5 017 Visites

salut sur le forum NI il me semble qu'il existe des liens vers Memory Mapped Files (MMF)

http://forums.ni.com/t5/LabVIEW/memory-mapped-file-access-problem/td-p/1213533

A+

 

 

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 2 sur 17
4 980 Visites

Salut mais ça m'aide pas beaucoup. 

merci 🙂

0 Compliments
Message 3 sur 17
4 943 Visites

Salut, tu peux développer ton retour ? merci

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 4 sur 17
4 937 Visites

Conti01 a écrit :

Et je dois utiliser les fonction Win32 pour le paramètrage et l'affichage des résultats.

 

Pour créer de la shared memory, il faut utiliser les fonctions Win32 suivantes :

CreateFileMapping et MapViewOfFile

 

Est ce vous avez des aides au sujet de ça voir des tutos? Et est ce avec cette fonction Win32, ça va générer des VIs pour le pilotage de l'appareil?

 

Merci d'avance.

 

 


c'est ton post : « Pour créer de la shared memory, il faut utiliser les fonctions Win32 suivantes : CreateFileMapping et MapViewOfFile ».

 

Le texte est assez énigmatique, mais il laisse penser que tu veux utiliser le « CreateFileMapping » et « MapViewOfFile » (? non ?)

 

or le lien indiqué permet d’utiliser la dll kernel32 pour faire CreateFileMapping en mode FILE_MAP_READ = 4; soit   PAGE_READWRITE = 0x04;

puis MapViewOfFile

le code est moche, mais c'est un vi qui utilise les fonctions évoquées

A+

 

OpenFileMappingA.png

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 5 sur 17
4 935 Visites

Bonjour,

 

Le but de ma demande est de pouvoir communiquer avec l'appareil via Labview.

Mais le fournisseur m'a fait savoir qu'il faudrait utilisé le shared memory pour le pilotage de l'appareil.

Voici le mail du fournisseur:

 

La DLL actuelle lance un process ANumLFRF dans un mode Remote, et non affiché à l'écran.

Puis il y a des échanges d'information via une mémoire partagée.

 

Pour créer de la shared memory, il faut utiliser les fonctions Win32 suivantes :

CreateFileMapping et MapViewOfFile

uniquement celles-ci.

 

Tout le travail de décodage est fait par le process ANumLFRF.

Les fonctions Win32 citées sont indispensables pour pouvoir communiquer. Tout le reste, est simple.

 

Je suis bloqué et je ne connais pas du tout ce protocole là. J'ai fait plusieurs recherches 

 

0 Compliments
Message 6 sur 17
4 911 Visites

 

 

Salut. Je ne suis pas "persuadé" ou « convaincu » par les arguments invoqués par ton fournisseur, en fonction des éléments que tu nous donnes.

 

Je m’explique.

je viens de lire la documentation que tu as posté sur le forum

  • la recherche « CreateFileMapping » ne retourne rien
  • la recherhce « MapViewOfFile » ne retourne rien

 

Cette documentation indique : The IPC.dll allows to control ANumLFRF.exe program from a host program.

 

même si la phrase « When the DLL is loaded, a specific process for ANumLFRF.exe is created, and the dialog between DLL and ANumLFRF is done through Inter Process Communication. » peut laisser penser à un IPC de type « shared memory » avec « Mapping File »

 

rien dans la documentation ne va dans ce sens ?

 

alors pourquoi le fournissuer pense que


Conti01 a écrit :

Pour créer de la shared memory, il faut utiliser les fonctions Win32 suivantes :

CreateFileMapping et MapViewOfFile

uniquement celles-ci.

 

Les fonctions Win32 citées sont indispensables pour pouvoir communiquer. Tout le reste, est simple.

 

 

 


Peut-il argumenter?

 

Toute la documentation me semble encapsuler la dll : IPC.dll

 

Commands available in the DLL ANumLFRF In indicates Parameters the host program must send to the DLL.

Out indicates Parameters the DLL returns to the host program.

 

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 7 sur 17
4 899 Visites
Solution
Accepté par Conti01

queques infos : File Mapping

 (https://msdn.microsoft.com/fr-fr/library/windows/desktop/aa366556(v=vs.85).aspx

 

Classiquement cela est utilisé pour échanger des données entre exe.

Dans l'exemple donné sur le forum NI, une première application (dans ton cas cela devrait être ANUM LFRF) publie à une adresse "IpName" (le nom est étrange mais c'est le nom de la variable partagée).

La donnée à récuprer est de taille dimension size, et à l'adresse Offset.

 

Pour récuprer une donnée, il faut donc connaître uniquement "son nom" + "offser" + "Taille"

 

 

Je ne vois rien dans ta documentation ?? non?

 

 

OpenFileMappingA.png

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 8 sur 17
4 897 Visites

j'ai le sentiment qu'il faut encapsuler la dll : IPC.dll

donc faire le driver à partir de cette dll.

 

il y a peut-être une confusion entre "importer code de la dll (considérer comme Shared Library File) et mapping File (shared file?)

 

regarde vers le lien suivant : http://digital.ni.com/public.nsf/allkb/DCB90714981A1F148625731E00797C33

How Do I Call a Dynamic Link Library (DLL) from LabVIEW?

 

Example: Importing Functions from a Shared Library File (Windows)

http://zone.ni.com/reference/en-XX/help/371361J-01/lvhowto/example_import_shared_library/

 

A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS

0 Compliments
Message 9 sur 17
4 896 Visites

D'accord. Merci pour toutes vos informations.

Je vais essayer avec ces exemples. 

 

- Et comment est ce qu'il faire le driver a partir de la dll?

- Est ce que je peux vous envoyé le dossier .dll par mail? Par le forum, c'est pas possible.

 

Mahana

 

 

 

0 Compliments
Message 10 sur 17
4 888 Visites