Vogliamo realizzare un test sequencer semplice per testare la versatilità dei Variant Set/Get Attribute, utilizzati come lookup table e l’utilizzo delle classi come elementi.
1- Definizione delle classi
Classe Test: Rappresenta la classe astratta, ovvero il test come definizione. Per semplificare abbiamo creato un solo metodo che avrà il compito di contenere il codice di esecuzione del test.
Si crea quindi il lmetodo Test.VI che verrà riscritto (Override) nelle classi che ereditano da Test.
Procedimento: Andare su my computer e NEW/Class quindi spostarsi sulla classe Test appena creata e NEW/Vi from Dynamic Dispatch Template
Classe Test01: Eredita dalla classe Test e ne riscrive il metodo Test.vi
Procedura : Creare una nuova classe, quindi andare nelle property della classe appena creata, quindi in Inheritance , premere change inheritance e selezionare la classe test.

Ora eseguiamo l’override del metodo test selezionando la casse Test01 e New/vi from override, selezioniamo Test.vi
Classe Test 2 : identica procedura della classe Test01
Al termine della procedura avremo cliccando show hierarchy sulla classe Test, la seguente gerarchia che mostra la relazione Padre/Figli tra la classe astratta Test e le classi figlio Test01 e Test02.
Il progetto mostrerà come da figura le classi con i relativi metodi Test.vi.


Ora creiamo un vi (da myComputer, New VI) e trasciniamo le classi Test01 e Test02, quindi andiamo nella palette Variant e trasciniamo il Variant Set attribute(ne serviranno 2).
Colleghiamo la classe Test come ingresso del variant(non è obbligatorio, si può mettere anche un variant o altro).

2- Esempio Applicativo:
Completare inserendo un For Loop (per farlo eseguire in modo continuo ho messo un while) in cui eseguire i test come nell’immagine successiva.

Quindi eseguendo il vi, il Get Variant Attribute seleziona la classe associata alla chiave di testo che ho associato nel Set Attribute.
Utilizzare questo modello per creare delle lookup table ha il vantaggio di inserire direttamente diversi tipi di dato, diversamente dei modelli basati sugli array è dinamico diversamente dall’utilizzo dei cluster e soprattutto come potrete trovare googlando sul tema, ha un algoritmo di ricerca non lineare che lo rende estremamente piu veloce.
3- Approfondimenti e ispirazioni:
ftp://ftp.ni.com/pub/events/webcasts/variant_attribute_lookup_table.pdf