Skip to content

NI DIGITAL PATTERN DRIVER Low Level Functions

Shantanu Shinde edited this page May 24, 2021 · 2 revisions

Low Level Functions

niDigital_CreatePinMap

Creates and loads a pin map. Use this function if you are not loading a pin map file using the niDigital_LoadPinMap function.

C Function Prototype: ViStatus niDigital_CreatePinMap (ViSession vi, ViConstString dutPinList, ViConstString systemPinList)

Parameter Description
vi The specified instrument session the niDigital_init or niDigital_InitWithOptions function returns.
dutPinList A list of device under test (DUT) pin names to include in the pin map. DUT pins are duplicated for all sites and are used in patterns.
systemPinList A list of system pins to include in the pin map. System pins do not scale with the number of sites and are not used with pattern functions.

Return value: Reports the status of the operation.

niDigital_CreatePinGroup

Creates a pin group, which is an alias for a list of pins.

C Function Prototype: ViStatus niDigital_CreatePinGroup (ViSession vi, ViConstString pinGroupName, ViConstString pinList)

Parameter Description
vi The specified instrument session the niDigital_init or niDigital_InitWithOptions function returns.
pinGroupName Name of the pin group.
pinList List of pins to include in the pin group.

Return value: Reports the status of the operation.

niDigital_CreateChannelMap

Creates a channel map, which specifies the number of sites and the connections of pins and sites to instrument channels. You must create the pin map using the niDigital_CreatePinMap function before calling this function. Use this function if you are not loading a pin map file using the niDigital_LoadPinMap function.

You cannot modify the channel map within an instrument session after you load patterns or waveforms on the digital pattern instrument.

C Function Prototype: ViSession niDigital_CreateChannelMap (ViSession vi, ViInt32 numSites)

Parameter Description
vi The specified instrument session the niDigital_init or niDigital_InitWithOptions function returns.
numSites How many sites to include in the channel map.

Return value: Reports the status of the operation.

niDigital_MapPinToChannel

Maps a pin to a digital pattern instrument channel. You must call the niDigital_CreateChannelMap function before you call this function and call the niDigital_EndChannelMap function after creating all connections. For DUT pins, you must call this function multiple times for each pin and once for each site. For system pins, call this function only once per pin because the function ignores the site input for system pins.

C Function Prototype: ViStatus niDigital_MapPinToChannel (ViSession vi, ViConstString pin, ViInt32 site, ViConstString channel)

Parameter Description
vi The specified instrument session the niDigital_init or niDigital_InitWithOptions function returns.
pin Name of the pin to map to the specified channel.
site Site number for the pin mapped to the specified channel. If the pin is a system pin, the function ignores this parameter.
channel Channel to map to the specified pin and site. Specify channel names using the channel number, for example, "0" or "31." To specify channels used in multi-instrument sessions, use the form PXI1Slot2/0 or PXI1Spot2/31.

Return value: Reports the status of the operation.

niDigital_EndChannelMap

Call this function to indicate that the channel map configuration is complete after you create channel map connections using the niDigital_MapPinToChannel function.

C Function Prototype: ViStatus niDigital_EndChannelMap (ViSession vi)

Parameter Description
vi The specified instrument session the niDigital_init or niDigital_InitWithOptions function returns.

Return value: Reports the status of the operation.

niDigital_GetPinName

Returns the name of the pin at the index you specify.

You must provide a ViChar array to serve as a buffer for the value. You pass the number of bytes in the buffer as the nameBufferSize. If the current value of the attribute, including the terminating NULL byte, is larger than the size you indicate in the buffer size, the function copies (buffer size - 1) bytes into the buffer, places an ASCII NULL byte at the end of the buffer, and returns the buffer size you must pass to get the entire value. For example, if the value is "123456" and the buffer size is 4, the function places "123" into the buffer and returns 7. If you want to call this function just to get the required buffer size, you can pass 0 for nameBufferSize and VI_NULL for the name.

C Function Prototype: ViStatus niDigital_GetPinName (ViSession vi, ViInt32 pinIndex, ViInt32 nameBufferSize, ViChar[] name)

Parameter Description
vi The specified instrument session the niDigital_init or niDigital_InitWithOptions function returns.
pinIndex Index of pin to query. Pin indexes begin at 0.
nameBufferSize The number of elements in the ViChar array you specify for name.
Output
name Returns the pin name at the specified pinIndex.

Return value: Reports the status of the operation.

niDigital_GetChannelName

Returns the channel name that corresponds to the index you specify. Channel indexes are one-based.

You must provide a ViChar array to serve as a buffer for the value. You pass the number of bytes in the buffer as the nameBufferSize. If the current value of the attribute, including the terminating NULL byte, is larger than the size you indicate in the buffer size, the function copies (buffer size - 1) bytes into the buffer, places an ASCII NULL byte at the end of the buffer, and returns the buffer size you must pass to get the entire value. For example, if the value is "123456" and the buffer size is 4, the function places "123" into the buffer and returns 7. If you want to call this function just to get the required buffer size, you can pass 0 for nameBufferSize and VI_NULL for the name.

C Function Prototype: ViStatus niDigital_GetChannelName (ViSession vi, ViInt32 index, ViInt32 nameBufferSize, DataType VarName[])

Parameter Description
vi The specified instrument session the niDigital_init or niDigital_InitWithOptions function returns.
index Specifies a one-based index for the desired channel in the session. Valid values are from one to the total number of channels in the session.
nameBufferSize The number of elements in the ViChar array you specify for name.
Output
name The returned channel name(s) at the specified index.

Return value: Reports the status of the operation. If the buffer size is 0 or too small for the error description, the buffer size needed for the full description is returned.

niDigital_GetChannelNameFromString

Returns a comma-separated list of channel names from a string index list.

C Function Prototype: ViStatus niDigital_GetChannelNameFromString (ViSession vi, ViConstString index, ViInt32 nameBufferSize, ViChar name[] )

Parameter Description
vi The specified instrument session the niDigital_init or niDigital_InitWithOptions function returns.
index

Index list for the channels in the session. Valid values are from zero to the total number of channels in the session minus one. The index string can be one of the following formats:

- A comma-separated list—for example, "0,2,3,1"

- A range using a hyphen—for example, "0-3"

- A range using a colon—for example, "0:3 "

You can combine comma-separated lists and ranges that use a hyphen or colon. Both out-of-order and repeated indices are supported ("2,3,0," "1,2,2,3"). White space characters, including spaces, tabs, feeds, and carriage returns, are allowed between characters. Ranges can be incrementing or decrementing.

nameBufferSize The number of elements in the ViChar array you specify for name.
Output
name The returned channel name(s) at the specified index.

Return value: Reports the status of the operation. If the buffer size is 0 or too small for the error description, the buffer size needed for the full description is returned.

Table of Contents

Internal Development

Creating and Setting Up a gRPC Server

Server Security Support

Creating a gRPC Client

gRPC Client Examples

Session Utilities API Reference

Driver Documentation

gRPC API Differences From C API

Sharing Driver Sessions Between Clients

C API Docs
NI-DAQmx
NI-DCPOWER
NI-DIGITAL PATTERN DRIVER
NI-DMM
NI-FGEN
NI-FPGA
NI-RFmx Bluetooth
NI-RFmx NR
NI-RFmx WCDMA
NI-RFmx GSM
NI-RFmx CDMA2k
NI-RFmx Instr
NI-RFmx LTE
NI-RFmx SpecAn
NI-RFmx TD-SCDMA
NI-RFmx WLAN
NI-RFSA
NI-RFSG
NI-SCOPE
NI-SWITCH
NI-TCLK
NI-XNET
Clone this wiki locally