Discussions au sujet de NI LabVIEW

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

Intégrer un toolkit Report Generation customisé au versioning Git

Résolu !
Accéder à la solution

Bonjour,

 

j'ai dû customiser des VI du toolkit de génération de rapports. J'utilise Git pour mon contrôle de code source.

Mais du coup je ne sais pas comment faire pour intégrer ces VI modifiés dans les fichiers versionnés...

Forcément quand je clone mon dépot sur une autre machine, les VI utilisés sont ceux d'origine et non les customisés...

 

J'ai un peu creusé et j'ai vu qu'il faudrait peut-être se pencher sur une distribution des sources (galère à paramétrer et je ne gère plus le versioning) ou alors utiliser des sub-modules dans Git.

 

Quelqu'un pourrait-il m'aider?

0 Compliments
Message 1 sur 10
4 170 Visites

tu peux créer un dépôt avec le contenu du toolkit, c'est la solution que j'ai adoptée pour la user.lib

 

0 Compliments
Message 2 sur 10
4 128 Visites
Solution
Accepté par l'auteur du sujet JFI

salut à vous,

je me permets quelques remarques .

  • La vi.lib est réservée à du code de National Instruments.
  • La user.lib est destinée à du code personnalisé.

 

La conséquence est que sur un changement de version de LabVIEW ou de réinstallation d'un toolkit ou driver ou autres, le code de la vi.lib va être écrasé ou modifié ou perdu. Le dossier vi.lib est sous le contrôle de NI.

 

Donc (pour moi) un code de National Instruments peut être modifié (évidement) mais il faut lui changer de nom et le mettre dans la user.lib ou dans le projet.

 

Dans l'exemple du report generation toolkit, j'ai déjà modifier certaines fonctions (de NI et donc dans la user.lib). Pour faire cela :

  • je lui donne un nouveau nom
  • je le sauvegarde dans mon projet (il est donc sous le contrôle du Source Code Control)

Pour l'histoire c'est la raison du VI "Excel Get ActiveX References" : Le report generation étant une classe, seulement les membres de la classe peuvent manipuler un objet de la classe. La conséquence est qu'un VI qui n'est pas dans la classe ne peut pas manipuler une référence au "report" du toolkit report generation. National Instrument a donc insérer dans la classe, un vi qui permet à un vi extérieur dans la classe d'avoir accès aux références. Donc un VI du projet peut accéder aux références.

set active reference.png

 

Donc ma réponse est : ton code est dans le dossier de ton projet, et donc gérer par le contrôle de code source.

non?

 

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Message 3 sur 10
4 116 Visites

@thib_fr  a écrit :

tu peux créer un dépôt avec le contenu du toolkit, c'est la solution que j'ai adoptée pour la user.lib

 


C'est plutôt simple effectivement mais après si tu dois passer d'un projet à un autre, tu es obligé de pull ton user.lib correspondant à chaque fois?

0 Compliments
Message 4 sur 10
4 105 Visites
  a écrit :

salut à vous,

je me permets quelques remarques .

  • La vi.lib est réservée à du code de National Instruments.
  • La user.lib est destinée à du code personnalisé.

 

La conséquence est que sur un changement de version de LabVIEW ou de réinstallation d'un toolkit ou driver ou autres, le code de la vi.lib va être écrasé ou modifié ou perdu. Le dossier vi.lib est sous le contrôle de NI.

 

Donc (pour moi) un code de National Instruments peut être modifié (évidement) mais il faut lui changer de nom et le mettre dans la user.lib ou dans le projet.

 

Dans l'exemple du report generation toolkit, j'ai déjà modifier certaines fonctions (de NI et donc dans la user.lib). Pour faire cela :

  • je lui donne un nouveau nom
  • je le sauvegarde dans mon projet (il est donc sous le contrôle du Source Code Control)

Pour l'histoire c'est la raison du VI "Excel Get ActiveX References" : Le report generation étant une classe, seulement les membres de la classe peuvent manipuler un objet de la classe. La conséquence est qu'un VI qui n'est pas dans la classe ne peut pas manipuler une référence au "report" du toolkit report generation. National Instrument a donc insérer dans la classe, un vi qui permet à un vi extérieur dans la classe d'avoir accès aux références. Donc un VI du projet peut accéder aux références.

set active reference.png

 

Donc ma réponse est : ton code est dans le dossier de ton projet, et donc gérer par le contrôle de code source.

non?

 


Merci pour ta réponse Luc. Du coup je pense effectivement que je vais procéder de la même manière:

sauver ma version du NI_ReportGenerationToolkit.lvlib dans mon dossier projet, comme ça je profite du versioning. Mais par contre je tire un trait sur une possible mise à jour (facile) de ce toolkit customisé.

 

Ah, petite question subsidiaire, du coup pour distribuer les sources tu procèdes de la même façon pour les drivers d'instrumentation (copie des lvlib dans ton dossier projet) ou tu crées plutôt des packages avec VIPM, ou autre?

0 Compliments
Message 5 sur 10
4 097 Visites

Salut, pour préciser, de mon côté j'ai :

  • le code standard "LabVIEW" : Program Files\National Instruments\LabVIEW : la distribution standard de LabVIEW. Donc dans la vi.lib j'ai le report generation toolkit avec NI_ReportGenerationToolkit.lvlib. Le dossier Program Files\National Instruments\LabVIEW est sous le contrôle des installeurs de National Instruments. Il est standard entre les PC.
  • le code "projet" : /monprojet/source/ qui mon dossier projet. Il contient l'ensemble de mon code "source",  et il est sous le contrôle de mon SCC (j'utilise SVN)
  • A la fin du projet, je distribue le code de ma user.lib (utilisé dans le projet) dans le dossier Windows du projet : /monprojet/source/common/user. Donc à la fin sous le contrôle de mon SCC. Il n'y a pas toute ma user.lib, mais uniquement le code utilisé.

 

Par exemple,

  • un vi "spécifique" à notre projet, qui utilise la classe du report generation, va être sauvegardé sous  /monprojet/source/common/user/lib/Excel
  • le code de NI est "standard" et il est dans la vi.lib : NI_ReportGenerationToolkit.lvlib car il est

je suis plus claire? A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Message 6 sur 10
4 090 Visites

oui c'est assez clair 🙂

C'est juste que de mon côté j'avais juste bêtement modifié des vi du toolkit. Pour faire plus propre il faudrait que je sauve ces vi dans les user.lib pour y accéder via les palettes, et faire la manip que tu décris de distribution.

 

Par contre si quelqu'un récupère ton code via SVN, il va devoir copier manuellement le contenu de /monprojet/source/common/ dans les dossiers correspondants?

0 Compliments
Message 7 sur 10
4 085 Visites

salut

non


Par contre si quelqu'un récupère ton code via SVN, il va devoir copier manuellement le contenu de /monprojet/source/common/ dans les dossiers correspondants?


car : /monprojet/source/ qui mon dossier projet, et qui contient l'ensemble de mon code "source",  est sous le contrôle de mon SCC. Donc il va exporter le dépôt SVN, et il aura le code dans le dossier et les sous-dossiers (donc common et autres)

plus claire?

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 8 sur 10
4 065 Visites

oui ok, au temps pour moi, j'avais cru comprendre que tu distribuais les dossiers de /monprojet/source/common/user/lib dans la user.lib...

Message 9 sur 10
4 027 Visites

ok, content de voir que c'est plus claire pour toi, bonne journée A+

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

0 Compliments
Message 10 sur 10
4 011 Visites