le 04-11-2016 04:32 AM
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.
Résolu ! Accéder à la solution.
le 04-11-2016 03:34 PM
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+
Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS
le 04-14-2016 08:38 AM
Salut mais ça m'aide pas beaucoup.
merci 🙂
le 04-14-2016 09:36 AM
Salut, tu peux développer ton retour ? merci
Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS
le 04-14-2016 09:39 AM
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+
Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS
le 04-15-2016 02:16 AM
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
le 04-15-2016 05:59 AM
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
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.
Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS
le 04-15-2016 06:08 AM
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?
Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS
le 04-15-2016 06:13 AM
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+
Luc Desruelle | Mon profil | Mon blog LabVIEW |
LabVIEW Architect (CLA) & TestStand Developper (CTD) | LabVIEW Champion
MESULOG | NERYS
le 04-15-2016 07:57 AM
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