NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Globals API c# teststand

Solved!
Go to solution

hi everybody,

 

I'm trying to insert a Globals in variables panel of sequence. But I don't understand, because I can get FileGlobals and set.

 

Here my code :

 


            EngineClass myEngine = new EngineClass();
            SequenceFile mySequenceFile = myEngine.GetSequenceFileEx("C:\\seqSPE.seq", 0, TypeConflictHandlerTypes.ConflictHandler_Prompt);
           
            Sequence mySequence = mySequenceFile.GetSequenceByName("MainSequence");
           
                    
             PropertyObjectFile fileObj = mySequenceFile.AsPropertyObjectFile();
             PropertyObject machin = fileObj.AsPropertyObject().GetPropertyObject("FileGlobals", 1);
                    
             machin.SetValString("CB_Project_Name", 1, "blabli");
             MessageBox.Show(machin.GetValString("CB_Project_Name", 1));


            fileObj.SaveFileIfModified();
            mySequenceFile.Save("C:\\mysequence.seq");
            myEngine.ReleaseSequenceFileEx(mySequenceFile, 0)

 

 

Sorry for my English, I'm french

 

Thanks for your help.

0 Kudos
Message 1 of 16
(5,596 Views)

Bonjour Edwix,

 

Quel est le concept de ce code ? créer une ou plusieurs FileGlobal(s) et les enregistrer au sein du fichier ?

 

Qu'est-ce qui n'est pas fonctionnel dans votre code ?

 

Dernier point : appelez-vous l'API TestStand en .NET ou bien utilisez-vous le sequence Editor ?

 

Merci pour vos réponses.

0 Kudos
Message 2 of 16
(5,535 Views)
Bonjour, Mathieu_T. Le code devrait me permettre décrire dans la variable globale mais sa ne fait rien. Tout le code se passe bien, mais il ne modifie rien dans ma séquence. J'utilise lapi teststand grâce a du code C# donc cdonet.

En anglais maintenant pour mentrainer 🙂
In English
This code could write in a globals variables in a sequence. I am using dotnet toi call api teststand. This code work but it doesn't modify mu séquence, I want toi write a ne value in my globalsfiles.
Thanks for tour help
0 Kudos
Message 3 of 16
(5,531 Views)
Solution
Accepted by topic author Edwix

See the changes below:

 

           EngineClass myEngine = new EngineClass();
            SequenceFile mySequenceFile = myEngine.GetSequenceFileEx("C:\\seqSPE.seq", 0, TypeConflictHandlerTypes.ConflictHandler_Prompt);
           
            Sequence mySequence = mySequenceFile.GetSequenceByName("MainSequence");
           
                    
             PropertyObjectFile fileObj = mySequenceFile.AsPropertyObjectFile();
             PropertyObject machin = fileObj.AsPropertyObject().GetPropertyObject("File

Globals", 1);

             PropertObject machin = mySequenceFile.FileGlobalDefaults;
                    
             machin.SetValString("CB_Project_Name", 1, "blabli");
             MessageBox.Show(machin.GetValString("CB_Project_Name", 1));

 

            fileObj.IncChangeCount();

            fileObj.SaveFileIfModified();  <-- are you sure you want to save the changes to the original file like this?
            mySequenceFile.Save("C:\\mysequence.seq");
            myEngine.ReleaseSequenceFileEx(mySequenceFile, 0)

0 Kudos
Message 4 of 16
(5,475 Views)
Solution
Accepted by topic author Edwix

Thanks you very much dug9000 for your help.

 

My value has been changed.

 

I have modified the code :

 

             EngineClass myEngine = new EngineClass();
            SequenceFile mySequenceFile = myEngine.GetSequenceFileEx("C:\\seqSPE.seq", 0,  TypeConflictHandlerTypes.ConflictHandler_Prompt);           
                    
             PropertyObjectFile fileObj = mySequenceFile.AsPropertyObjectFile();

 

             PropertObject machin = mySequenceFile.FileGlobalDefaults;
             PropertyObject machin = mySequenceFile.FileGlobalsDefaultValues;
                    
             machin.SetValString("CB_Project_Name", 1, "blabli");
             MessageBox.Show(machin.GetValString("CB_Project_Name", 1));

 

            fileObj.IncChangeCount();

            fileObj.SaveFileIfModified();
            mySequenceFile.Save("C:\\mysequence.seq");
            myEngine.ReleaseSequenceFileEx(mySequenceFile, 0);

 

Thanks

0 Kudos
Message 5 of 16
(5,457 Views)

Bonjour, merci pour ce code que vous nous avons partager ,

je travail en c# je veut recepeer la version de test dans un textbox que j'ai develloper en c#

ce que je chrche a recuperer la version de test quant je charge le programme tant teststand , dans deux partie

1- je veut recuperer dans FilesGlobal

2- dans Edit sequenceFiles PropertiesGenal

 

si vous pouvez me donner la methode de recuperer en c#

 

merci d'avance.

0 Kudos
Message 6 of 16
(4,745 Views)

Hello,

 

I don't know whether you are french. But you can write your message in English. Because in French, I don"t understand your need.

 

Salut,

 

Je ne sais pas si tu es français. Mais pourrais tu écrire ton message en Anglais. Je ne comprend pas bien ton besoin.

0 Kudos
Message 7 of 16
(4,742 Views)

Hello , i am sorry

 

i am not good in english!!!!!!!

0 Kudos
Message 8 of 16
(4,710 Views)

Pourrais tu alors expliquer mieux ton soucis ? En montrant peut être un bout de code ?

 

Parce que là, je ne comprends pas bien ton soucis Smiley Sad

0 Kudos
Message 9 of 16
(4,707 Views)

Bonjour Edwix,

 mon prbleme je veut recuperer la version de test des sequences,

 cette cersion se trouve dans FileGlobals. je trouve pas un moyen pour recuperer FileGlobals et de tester si vraiment la variable que je cherche elle existe dans FileGlobals.

j'ai creer un objet siquence contexte mais quant je lance le debugage il me fait l'erreur la refence d'objet n'est pas definit à une instance d'un objet

 

PropertyObject  machin = myFileGlobals.FileGlobals;

 

 

 

cordiament

0 Kudos
Message 10 of 16
(4,693 Views)