NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

CVI Custom User Interface with TestStand

Good day community, I'm new in using TestStand with Labwindows/CVI. 

I've got an error using TestStand API triying to open a sequence file from an absolute path. 

Further I want to use some UI Teststand controls, what is the correct way to use thems, and what I need to do to use thems.

Thank you, best regards.

 

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

Hello,

 

The control that is visible needs to be connected to the Application Manager. I guess it is not connected to anything ? Do not hesitate to attach a code snippet with your post, that allow other users to reproduce your issue.

 

A good starting point are the Example User Interfaces that are shipped with TestStand. There are proposed for 5 differents developpement languages, C++, C#, LabVIEW, LabWindows/CVI and VB .Net.

 

There is also ressources on the NI website :

Hope this helps,

Message 2 of 3
(2,349 Views)

Hello Mathieu thanks for your repply, it was very helpul!.

Now I got a new error triying to shutdown the application manager, I attached my main code as you suggested to me:

/* Main code */
int main(int argc, char *argv[])
{
	int		error = 0;
	long	exitCode = 0;

	nullChk( InitCVIRTE(0, argv, 0));	// initialize CVI runtime engine

	// load the panel for the main window from the .UIR file
	errChk( gMainWindow.panel = LoadPanelEx (0, "TestExec.uir", MAINPANEL, __CVIUserHInst));
	
	// get ActiveX ctrl handles, register ActiveX event callbacks, and connect TestStand controls
	errChk( SetupActiveXControls());

	errChk( InstallMainCallback(MainCallback, 0, 0));	

	// make a handle to engine conveniently accessible
	tsErrChk( TSUI_ApplicationMgrGetEngine(gMainWindow.applicationMgr, &errorInfo, &gMainWindow.engine));

	// start up the TestStand User Interface Components. this also logs in the user
	tsErrChk( TSUI_ApplicationMgrStart(gMainWindow.applicationMgr, &errorInfo));
	
	// open sequence file
	tsErrChk( TSUI_ApplicationMgrOpenSequenceFile(gMainWindow.applicationMgr, &errorInfo, ".\\sequences\\callingStringStdOut.seq", &file));
	
	// entrypoint execution
	tsErrChk( TSUI_SequenceFileViewMgrGetExecutionEntryPoints(gMainWindow.sequenceFileViewMgr, &errorInfo, &EntryPoints));
	tsErrChk( TSUI_EntryPointsGetItem(EntryPoints, &errorInfo, CA_VariantULong(0), &EntryPoint));
	tsErrChk( TSUI_EntryPointRun(EntryPoint, &errorInfo, CA_DEFAULT_VAL, &EntryPointExecution));
	
	// display window and process user input until application exits
	errChk( DisplayPanel(gMainWindow.panel));
	errChk( RunUserInterface());

	errChk( TSUI_ApplicationMgrGetExitCode(gMainWindow.applicationMgr, &errorInfo, &exitCode));

Error: if (gMainWindow.panel > 0) DiscardPanel(gMainWindow.panel); DisplayError(error); return exitCode; } /*Close application */ static int ExitApplication(void) { int error = 0; VBOOL canExitNow; tsErrChk( TSUI_ApplicationMgrShutdown(gMainWindow.applicationMgr, &errorInfo, &canExitNow)); if (canExitNow) QuitUserInterface(0); Error: DisplayError(error); return canExitNow ? TRUE : FALSE; }

This message occurs when I close my application: 

References to PropertyObjects were not released properly.
    Total number of objects: 4274
    Number of top-level objects: 91

    Note: Some top-level objects may be included if they are referenced by
    an incorrectly released top-level object. For example, an unreleased
    SequenceContext object references a SequenceFile object.

    The following top-level objects were not released:

        Executions [1 object(s) not released]


        Files [1 object(s) not released]
            SequenceFile #1:
                Path: c:\Users\Emmanuel.VECRANDD04\OneDrive\OneDrive - Vectralis\Escritorio\TestStand UI\sequences\callingStringStdOut.seq


        Type Definitions [27 object(s) not released]
            Type Definition #1:
                Name: NI_PythonParameter

            Type Definition #2:
                Name: NoneStepAdditions

            Type Definition #3:
                Name: StepTypeSubstepsArray

            Type Definition #4:
                Name: StepTypeNIData

            Type Definition #5:
                Name: NI_PropertyObjectType

            Type Definition #6:
                Name: NI_ArrayDimensions

            Type Definition #7:
                Name: PythonStepAdditions

            Type Definition #8:
                Name: NI_CustomResult

            Type Definition #9:
                Name: EditSubstep

            Type Definition #10:
                Name: CommonResults

            Type Definition #11:
                Name: Expression

            Type Definition #12:
                Name: FCParameter

            Type Definition #13:
                Name: Path

            Type Definition #14:
                Name: FlexCStepAdditions

            Type Definition #15:
                Name: PostSubstep

            Type Definition #16:
                Name: NI_MsgBoxFontData

            Type Definition #17:
                Name: NI_CommonCParameterResult

            Type Definition #18:
                Name: Error

            Type Definition #19:
                Name: Action

            Type Definition #20:
                Name: MessagePopup

            Type Definition #21:
                Name: NumericLimitTest

            Type Definition #22:
                Name: NI_PythonParameterResult

            Type Definition #23:
                Name: TEInf

            Type Definition #24:
                Name: NI_MsgBoxFileData

            Type Definition #25:
                Name: CallExecutable

            Type Definition #26:
                Name: StepTypeMenu

            Type Definition #27:
                Name: PassFailTest


        PropertyObjects [59 object(s) not released]
            PropertyObject #1:
                Type: Number
                Value: 0

            PropertyObject #2:
                Type: Array of Containers

            PropertyObject #3:
                Type: Number
                Value: 6

            PropertyObject #4:
                Type: Boolean
                Value: False

            PropertyObject #5:
                Type: String
                Value: "Passed"

            PropertyObject #6:
                Type: String
                Value: "Step.Result.PassFail"

            PropertyObject #7:
                Type: Obj

            PropertyObject #8:
                Type: String
                Value: ""

            PropertyObject #9:
                Type: String
                Value: "NUMERIC_LIMIT_DESCRIPTION_NAME"

            PropertyObject #10:
                Type: String
                Value: ""

            PropertyObject #11:
                Type: String
                Value: ",  "

            PropertyObject #12:
                Type: String
                Value: ""

            PropertyObject #13:
                Type: String
                Value: "NI_STEPTYPES"

            PropertyObject #14:
                Type: String
                Value: "NI_SUBSTEPS"

            PropertyObject #15:
                Type: String
                Value: "_EX"

            PropertyObject #16:
                Type: String
                Value: "%hs"

            PropertyObject #17:
                Type: String
                Value: ", numLimTest(Step.Result.Numeric)
[Module: c:\Users\Emmanuel.VE..."

            PropertyObject #18:
                Type: String
                Value: "NI_STEPTYPES"

            PropertyObject #19:
                Type: String
                Value: "PASSFAIL_DESCRIPTION_NAME"

            PropertyObject #20:
                Type: String
                Value: "%hi"

            PropertyObject #21:
                Type: String
                Value: "+"

            PropertyObject #22:
                Type: String
                Value: "%ls"

            PropertyObject #23:
                Type: Number
                Value: 0

            PropertyObject #24:
                Type: Number
                Value: 0

            PropertyObject #25:
                Type: String
                Value: "%low"

            PropertyObject #26:
                Type: String
                Value: ""

            PropertyObject #27:
                Type: String
                Value: "-"

            PropertyObject #28:
                Type: String
                Value: ""

            PropertyObject #29:
                Type: String
                Value: "percentage"

            PropertyObject #30:
                Type: String
                Value: ""

            PropertyObject #31:
                Type: String
                Value: "numLimTest(Step.Result.Numeric)
[Module: c:\Users\Emmanuel.VECR..."

            PropertyObject #32:
                Type: String
                Value: "%tre"

            PropertyObject #33:
                Type: String
                Value: "%nom"

            PropertyObject #34:
                Type: String
                Value: ""

            PropertyObject #35:
                Type: String
                Value: "%"

            PropertyObject #36:
                Type: String
                Value: ""

            PropertyObject #37:
                Type: String
                Value: ""

            PropertyObject #38:
                Type: Boolean
                Value: False

            PropertyObject #39:
                Type: Number
                Value: 0

            PropertyObject #40:
                Type: String
                Value: "Step.Result.Numeric"

            PropertyObject #41:
                Type: Boolean
                Value: True

            PropertyObject #42:
                Type: Boolean
                Value: False

            PropertyObject #43:
                Type: String
                Value: ""

            PropertyObject #44:
                Type: String
                Value: "passFailTest(Step.Result.PassFail)
[Module: c:\Users\Emmanuel.V..."

            PropertyObject #45:
                Type: String
                Value: ",  passFailTest(Step.Result.PassFail)
[Module: c:\Users\Emmanue..."

            PropertyObject #46:
                Type: Array of Containers

            PropertyObject #47:
                Type: String
                Value: ""

            PropertyObject #48:
                Type: String
                Value: ""

            PropertyObject #49:
                Type: String
                Value: """"

            PropertyObject #50:
                Type: String
                Value: "NI_STEPTYPES"

            PropertyObject #51:
                Type: String
                Value: "outString(Locals.getString)
[Module: c:\Users\Emmanuel.VECRANDD..."

            PropertyObject #52:
                Type: String
                Value: ""

            PropertyObject #53:
                Type: Boolean
                Value: False

            PropertyObject #54:
                Type: String
                Value: "ACTION_DESCRIPTION_NAME"

            PropertyObject #55:
                Type: String
                Value: ""

            PropertyObject #56:
                Type: String
                Value: ",  outString(Locals.getString)
[Module: c:\Users\Emmanuel.VECRA..."

            PropertyObject #57:
                Type: String
                Value: "{"

            PropertyObject #58:
                Type: String
                Value: "}, "

            PropertyObject #59:
                Type: Array of Containers


        And the following uncategorized objects:
            Report

            EditArgs

            TypeUsageList

Again, thank you very much.

Best Regards.

0 Kudos
Message 3 of 3
(2,302 Views)