From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Propriété dynamique TS 2017 / CVI 2017

Bonjour,

 

Je voudrais récupérer un certain nombre de propriétés dynamiques 'RunState' tel que "RunState.CallingStep.Name", "RunState.CallingStep.ResultStatus", etc. à partir de CVI.

J'ai créé une DLL avec le prototype suivant ' DLL_42496_function (tTestData *tsdata, tTestError *tserror)' que j'appelle dans TS.

J'utilise la fonction 'TS_PropertyGetValString (tsdata->seqContextCVI, &error_info, "RunState.CallingStep.Name", 0, &name)' mais d'après le message d'erreur retourné, la propriété n'existe pas.

J'imagine donc que je n'utilise pas le bon contexte.

 

 

Quelle est la bonne manière de récupérer de telle propriété?

 

Merci d'avance pour votre support,

0 Kudos
Message 1 of 3
(1,672 Views)

je crois la raison pour laquelle cela doit fonctionner de cette façon: La fonction TS_PropertyGetValString allocate un nouveau buffer et y met la valeur de String. Ce n'est pas le buffer allocaté par TestStand, vous devez donc copier la valeur du buffer local dans le buffer TestStand, puis libérer à nouveau la mémoire une fois la fonction terminée.

 

LabWindows/CVI:
    char *stringVal = NULL;

    TS_PropertyGetValString(propObj, &errorInfo, "Step.Limits.String",
                            0, &stringVal);
    CA_FreeMemory(stringVal);

 

 

0 Kudos
Message 2 of 3
(1,525 Views)

Bonjour,

 

Dans TS, j'ai créé une variable locale 'Locals.nameof_caller' dans laquelle je viens copier la valeur de la propriété "RunState.CallingStep.Name".

Je lis ensuite la valeur dans CVI avec 'TS_PropertyGetValString' avec le chemin 'RunState.Sequence.Locals.nameof_caller'.

 

 

0 Kudos
Message 3 of 3
(1,515 Views)