Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated the TestStand sequence of measurement examples to make it simpler (DMM, FGEN, SCOPE, SWITCH, VISA DMM) #254

Merged
merged 8 commits into from
May 2, 2023
1 change: 1 addition & 0 deletions examples/nidcpower_source_dc_voltage/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ This is a MeasurementLink example that sources and measures a DC voltage with an
`ui_file_paths` array in `measurement.py`
- Includes a TestStand sequence showing how to configure the pin map, register
instrument sessions with the session management service, and run a measurement
- For the sake of simplicity, the TestStand sequence handles pin map and session registration and unregistration in the `Setup` and `Cleanup` sections of the main sequence. For **Test UUTs** and batch process model use cases, these steps should be moved to the `ProcessSetup` and `ProcessCleanup` callbacks.
- Uses the NI gRPC Device Server to allow sharing instrument sessions with other
measurement services when running measurements from TestStand

Expand Down
248 changes: 58 additions & 190 deletions examples/nidmm_measurement/NIDmmMeasurement.seq
Original file line number Diff line number Diff line change
Expand Up @@ -4237,7 +4237,7 @@
<Data classname='SequenceFileData' valueflags='4194304'>
<subprops>
<Seq classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[2]'>
<value lbound='[0]' ubound='[0]'>
<value>
<Sequence name='MainSequence'>
<subprops>
Expand Down Expand Up @@ -4801,93 +4801,6 @@
</value>
</Main>
<Setup classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[]'/>
</Setup>
<Cleanup classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[]'/>
</Cleanup>
<RecordResults classname='Bool' valueflags='4194312'>
<value>true</value>
</RecordResults>
<RTS classname='Obj' valueflags='4456456'>
<subprops>
<Type classname='Num' valueflags='4194304'>
<value>0</value>
</Type>
<OptimizeNonReentrantCalls classname='Bool' valueflags='4194304'>
<value>true</value>
</OptimizeNonReentrantCalls>
<EPNameExpr classname='Str' valueflags='4194304'>
<value>"Unnamed Entry Point"</value>
</EPNameExpr>
<EPEnabledExpr classname='Str' valueflags='4194304'>
<value>True</value>
</EPEnabledExpr>
<EPMenuHint classname='Str' valueflags='4194304'>
<value/>
</EPMenuHint>
<EPIgnoreClient classname='Bool' valueflags='4194304'>
<value>false</value>
</EPIgnoreClient>
<EPInitiallyHidden classname='Bool' valueflags='4194304'>
<value>false</value>
</EPInitiallyHidden>
<EPCheckToSaveTitledFile classname='Bool' valueflags='4194304'>
<value>true</value>
</EPCheckToSaveTitledFile>
<ShowEPAlways classname='Bool' valueflags='4194304'>
<value>false</value>
</ShowEPAlways>
<ShowEPForFileWin classname='Bool' valueflags='4194304'>
<value>true</value>
</ShowEPForFileWin>
<ShowEPForExeWin classname='Bool' valueflags='4194304'>
<value>false</value>
</ShowEPForExeWin>
<ShowEPForEditorOnly classname='Bool' valueflags='4194304'>
<value>false</value>
</ShowEPForEditorOnly>
<AllowIntExeOfEP classname='Bool' valueflags='4194304'>
<value>false</value>
</AllowIntExeOfEP>
<CopyStepsOnOverriding classname='Bool' valueflags='4194304'>
<value>true</value>
</CopyStepsOnOverriding>
<Priority classname='Num' valueflags='4194304'>
<value>2953567917</value>
</Priority>
</subprops>
</RTS>
<Requirements classname='Obj' valueflags='4456456'>
<subprops>
<Links classname='Strs' valueflags='71303168'>
<value lbound='[0]' ubound='[]'/>
</Links>
</subprops>
</Requirements>
<FailureAction classname='Num' valueflags='4194312'>
<value>2</value>
</FailureAction>
</subprops>
</Sequence>
</value>
<value>
<Sequence name='ProcessSetup'>
<comment>Test UUTs and Single Pass call this callback in their setup step group. It is empty in the model file. Override this in the client file to perform an action before any code in the model executes.</comment>
<subprops>
<Parameters classname='Obj' valueflags='4456448'/>
<Locals classname='Obj' valueflags='4194304'>
<subprops>
<ResultList classname='Objs'>
<value lbound='[0]' ubound='[]'>
<elemproto>
<_NAME_IN_ATTRIBUTE_ name='' classname='TEResult'/>
</elemproto>
</value>
</ResultList>
</subprops>
</Locals>
<Main classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[3]'>
<value>
<Step typename='Statement' xsi:type='Statement' name='Get absolute path to pinmap file'>
Expand Down Expand Up @@ -5236,7 +5149,7 @@
<value>update_pin_map</value>
</FunctionOrAttributeName>
<Parameters classname='Objs'>
<value lbound='[0]' ubound='[1]'>
<value lbound='[0]' ubound='[2]'>
<elemproto>
<_NAME_IN_ATTRIBUTE_ name='' classname='CPythonParameter' structureflags='0'/>
</elemproto>
Expand Down Expand Up @@ -5292,7 +5205,7 @@
<CPythonParameter typename='NI_PythonParameter' xsi:type='NI_PythonParameter' name=''>
<subprops>
<Name classname='Str'>
<value>pin_map_id</value>
<value>pin_map_path</value>
</Name>
<Type classname='Num'>
<value>7</value>
Expand All @@ -5314,9 +5227,57 @@
<value>8192</value>
</Flags>
<CheckedState classname='Num'>
<value>2</value>
</CheckedState>
</subprops>
</Input>
<Output classname='PythonParameterResult'>
<subprops>
<Condition classname='ExprValue'>
<value/>
</Condition>
<Flags classname='Num'>
<value>8192</value>
</Flags>
<CheckedState classname='Num'>
<value>1</value>
</CheckedState>
</subprops>
</Output>
</subprops>
</AdditionalResults>
</subprops>
</CPythonParameter>
</value>
<value>
<CPythonParameter typename='NI_PythonParameter' xsi:type='NI_PythonParameter' name=''>
<subprops>
<Name classname='Str'>
<value>sequence_context</value>
</Name>
<Type classname='Num'>
<value>7</value>
</Type>
<ArgumentValue classname='ExprValue'>
<value>ThisContext</value>
</ArgumentValue>
<ArgumentDisplayValue classname='ExprValue'>
<value/>
</ArgumentDisplayValue>
<AdditionalResults classname='Obj'>
<subprops>
<Input classname='PythonParameterResult'>
<subprops>
<Condition classname='ExprValue'>
<value/>
</Condition>
<Flags classname='Num'>
<value>8192</value>
</Flags>
<CheckedState classname='Num'>
<value>2</value>
</CheckedState>
</subprops>
</Input>
<Output classname='PythonParameterResult'>
<subprops>
Expand Down Expand Up @@ -5737,13 +5698,13 @@
<CPythonParameter typename='NI_PythonParameter' xsi:type='NI_PythonParameter' name=''>
<subprops>
<Name classname='Str'>
<value>pin_map_id</value>
<value>sequence_context</value>
</Name>
<Type classname='Num'>
<value>7</value>
</Type>
<ArgumentValue classname='ExprValue'>
<value>FileGlobals.MeasurementLink.PinMapPath</value>
<value>ThisContext</value>
</ArgumentValue>
<ArgumentDisplayValue classname='ExprValue'>
<value/>
Expand All @@ -5759,7 +5720,7 @@
<value>8192</value>
</Flags>
<CheckedState classname='Num'>
<value>1</value>
<value>2</value>
</CheckedState>
</subprops>
</Input>
Expand Down Expand Up @@ -6370,95 +6331,8 @@
</Step>
</value>
</value>
</Main>
<Setup classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[]'/>
</Setup>
<Cleanup classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[]'/>
</Cleanup>
<RecordResults classname='Bool' valueflags='4194312'>
<value>false</value>
</RecordResults>
<RTS classname='Obj' valueflags='4456456'>
<subprops>
<Type classname='Num' valueflags='4194304'>
<value>0</value>
</Type>
<OptimizeNonReentrantCalls classname='Bool' valueflags='4194304'>
<value>true</value>
</OptimizeNonReentrantCalls>
<EPNameExpr classname='Str' valueflags='4194304'>
<value>"Unnamed Entry Point"</value>
</EPNameExpr>
<EPEnabledExpr classname='Str' valueflags='4194304'>
<value>True</value>
</EPEnabledExpr>
<EPMenuHint classname='Str' valueflags='4194304'>
<value/>
</EPMenuHint>
<EPIgnoreClient classname='Bool' valueflags='4194304'>
<value>false</value>
</EPIgnoreClient>
<EPInitiallyHidden classname='Bool' valueflags='4194304'>
<value>false</value>
</EPInitiallyHidden>
<EPCheckToSaveTitledFile classname='Bool' valueflags='4194304'>
<value>true</value>
</EPCheckToSaveTitledFile>
<ShowEPAlways classname='Bool' valueflags='4194304'>
<value>false</value>
</ShowEPAlways>
<ShowEPForFileWin classname='Bool' valueflags='4194304'>
<value>true</value>
</ShowEPForFileWin>
<ShowEPForExeWin classname='Bool' valueflags='4194304'>
<value>false</value>
</ShowEPForExeWin>
<ShowEPForEditorOnly classname='Bool' valueflags='4194304'>
<value>false</value>
</ShowEPForEditorOnly>
<CopyStepsOnOverriding classname='Bool' valueflags='4194304'>
<value>true</value>
</CopyStepsOnOverriding>
<Priority classname='Num' valueflags='4194304'>
<value>2953567917</value>
</Priority>
<AllowIntExeOfEP classname='Bool' valueflags='4194304'>
<value>false</value>
</AllowIntExeOfEP>
</subprops>
</RTS>
<Requirements classname='Obj' valueflags='4456456'>
<subprops>
<Links classname='Strs' valueflags='71303168'>
<value lbound='[0]' ubound='[]'/>
</Links>
</subprops>
</Requirements>
<FailureAction classname='Num' valueflags='4194312'>
<value>2</value>
</FailureAction>
</subprops>
</Sequence>
</value>
<value>
<Sequence name='ProcessCleanup'>
<comment>Test UUTs and Single Pass call this callback in their cleanup step group. It is empty in the model file. Override this in the client file to perform an action after all code in the model executes and just before the execution completes.</comment>
<subprops>
<Parameters classname='Obj' valueflags='4456448'/>
<Locals classname='Obj' valueflags='4194304'>
<subprops>
<ResultList classname='Objs'>
<value lbound='[0]' ubound='[]'>
<elemproto>
<_NAME_IN_ATTRIBUTE_ name='' classname='TEResult'/>
</elemproto>
</value>
</ResultList>
</subprops>
</Locals>
<Main classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[1]'>
<value>
<Step typename='Statement' xsi:type='Statement' name='Unregister active PinMapId'>
Expand Down Expand Up @@ -7153,15 +7027,9 @@
</Step>
</value>
</value>
</Main>
<Setup classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[]'/>
</Setup>
<Cleanup classname='Objs' valueflags='4194304'>
<value lbound='[0]' ubound='[]'/>
</Cleanup>
<RecordResults classname='Bool' valueflags='4194312'>
<value>false</value>
<value>true</value>
</RecordResults>
<RTS classname='Obj' valueflags='4456456'>
<subprops>
Expand Down Expand Up @@ -7201,15 +7069,15 @@
<ShowEPForEditorOnly classname='Bool' valueflags='4194304'>
<value>false</value>
</ShowEPForEditorOnly>
<AllowIntExeOfEP classname='Bool' valueflags='4194304'>
<value>false</value>
</AllowIntExeOfEP>
<CopyStepsOnOverriding classname='Bool' valueflags='4194304'>
<value>true</value>
</CopyStepsOnOverriding>
<Priority classname='Num' valueflags='4194304'>
<value>2953567917</value>
</Priority>
<AllowIntExeOfEP classname='Bool' valueflags='4194304'>
<value>false</value>
</AllowIntExeOfEP>
</subprops>
</RTS>
<Requirements classname='Obj' valueflags='4456456'>
Expand Down
1 change: 1 addition & 0 deletions examples/nidmm_measurement/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ This is a MeasurementLink example that performs a measurement using an NI DMM.
- Includes InstrumentStudio and MeasurementLink UI Editor project files
- Includes a TestStand sequence showing how to configure the pin map, register
instrument sessions with the session management service, and run a measurement
- For the sake of simplicity, the TestStand sequence handles pin map and session registration and unregistration in the `Setup` and `Cleanup` sections of the main sequence. For **Test UUTs** and batch process model use cases, these steps should be moved to the `ProcessSetup` and `ProcessCleanup` callbacks.
- Uses the NI gRPC Device Server to allow sharing instrument sessions with other
measurement services when running measurements from TestStand

Expand Down
Loading