Discussions au sujet de NI LabVIEW

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

Classe et Objet (1ere tentative)

J'essaye de faire clignoter une Led avec une Classe et une méthode.

(je ne sais pas si cela à "un sens" en terme de Classe/Objet ... j'essaye...)

(je ne suis pas certain d'utiliser les bons termes)

 

J'ai donc créé une Classe ... le Cluster comprend un I32 et une Led.


J'ai créé un VI associé à cette Classe ... est cela que l'on appelle une méthode (concernant une Classe)  ???

J'ai appris qu'il était impossible de "Unbundle" directement un Objet appartenant à une Classe.

donc, J'ai créé un VI_lecture ... pour lire ma Led.

 

Ma Led ne clignote pas.

 

Elle prend juste la valeur de sortie en fin de boucle,

comme si j'avais placé mon Objet_indicateur en dehors de celle-ci ... alors qu'il est à l'intérieur. (MyC_out)

 

Je me doute qu'il y a une "monstruosité" de ma part dans tout ceci ... mais où ?

 

Voici le VI associé à la Classe.

impossible de présenter un Snippet, les cables sont "broken",alors que sur l'écran ils ne le sont pas

 

Bench_1.png

 

et voici le VI utilisateur

 

Le carré marqué <1> est une instance du VI ci-dessus.

Comment appeler cela (je parle de ce carré <1>) ?...  est-ce une méthode ? (je ne sais pas)

 

Bench_2.png

 

à l'avance merci pour votre aide.

 

0 Compliments
Message 1 sur 7
5 195 Visites

                 up

 

Cela n'inspire personne ?

 

smiley triste.jpg

0 Compliments
Message 2 sur 7
5 162 Visites

Le carré marqué <1> est une méthode : oui.

 

Dans le VI utilisateur les VI (méthodes) <1> et lecture de la led sexécutent en séquence. Donc normal qu'il ny ait pas de clignotement.

 

Il faudrait en savoir plus sur la spécification. S'il s'agit au final d'obtenir un indicateur qui clignote je pense qu'il serait mieux d'implémenter cela sous la forme d'une classe (ici l'état serait état clignotant ou non) et d'ajouter un Xcontrol qui soit ami de la classe (pour pouvoir accéder aux méthodes de la classe). Le Xcontrol serait alors chargé de gérer l'aspect visuel du clignotement.

Message 3 sur 7
5 156 Visites

"je pense qu'il serait mieux d'implémenter cela sous la forme d'une classe"

 

mais ... Ce n'est pas ce que j'ai fait (??) j'ai créé une Classe pourtant (?)

 

A une Classe, on peut attribuer des propriétés et des méthodes ... C'est bien cela ?

l'état serait état "clignotant ou non" ... ici ... on parle de "propriétés" ? (pas de méthode)

et la méthode sera le fait d'utiliser la propriété ... c'est bon ce que je viens de dire ??

 

Une Classe ... c'est un Cluster (je "n'explique pas ... je montre "où" j'en suis ...  c'est à dire pas loin)

Comment attribuer des propriétés à une Classe ... (dans ce cas on attribue des propriétés à un Cluster alors ?)

 

un Xcontrol ami de la classe ... my god ! comment faire ce genre de chose ?

Je ne vois rien qui permette de faire cela dans les différents menus et options de LV.

 

Jihef ... un grand merci.

Je ne suis pas totalement idiot en programmation, mais "ici", c'est tellement nouveau !

J'ai besoin des "cléfs" de départ.

 

Le top du top ce serait ...

un exemple basic (cette led qui clignote peut être)

avec une propriété, une méthode, un ami ... que je puisse "voir".

Mais bon ... c'est peut être beaucoup demander (je peux comprendre)

 

Je comprends cette notion d'objet (entité avec propriétés et méthodes .... caractéristiques statiques et dynamiques)

Mais de là à implémenter ... ce n'est pas la même chose que de simplement comprendre un concept.

Merci ton aide.

 

0 Compliments
Message 4 sur 7
5 150 Visites

J'ai juste essayé de donner quelques pistes, mais je découvre aussi et je ne pourrais te faire un exemple concret rapidement.

Désolé.

 

 

 

0 Compliments
Message 5 sur 7
5 145 Visites

Bonjour à tous,

Premièrement je me permets de renvoyer sur ce post http://forums.ni.com/t5/Discussions-de-produit-de-NI/Formation-Programmation-Orient%C3%A9e-Objet/td-....

Ce n'est pas une réponse directe, mais ça me permet de m'excuser d'avance sur ma réponse --> difficile d'expliquer dans un forum ce qui tient (difficilement) en 2 jours de formation 😉

 

Sinon pour répondre à tes questions ouadji je pense qu'avant de te lancer dans la création d'une classe en LabVIEW il va te falloir apprendre dans un premier temps le concept d'encapsulation sur lequel repose la POO (tu comprendras beaucoup mieux la réponse de jihef) après.

Pour apprendre, le web regorge d'information, mais du coup il n'est pas évident de s'y retrouver.

Je te mets en attachement une présentation que j'avais faite avec une collègue lors des derniers NI-Days à Paris dont le titre était "Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW". Note que la moitié de la présentation reposé sur une démonstration dans LabVIEW, mais les slides donne une bonne indications des choses à maitriser avant d'aller plus loin en OOP.

Sinon, il ne faut pas négliger la lecture de la documentation de LabVIEW et des exemples de code que l'on peut trouver dans la section Fondamentaux >> Programmation Orientée Objet.

 

Bon courage 😉


Olivier Jourdan

Wovalab founder | DQMH Consortium board member | LinkedIn |

Stop writing your LabVIEW code documentation, use Antidoc!
Message 6 sur 7
5 130 Visites

"Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW"

 

Merci Olivier.

Je vais regarder cette doc avec grand intérêt.

0 Compliments
Message 7 sur 7
5 115 Visites