NI SWITCH Relay Functions - ni/grpc-device GitHub Wiki

Relay Functions

niSwitch_GetRelayName

Specific Function

C Function Prototype

ViStatus niSwitch_GetRelayName (ViSession vi, ViInt32 index, ViInt32 relayNameBufferSize, ViChar[] relayNameBuffer);

Purpose

Returns the relay name string that is in the relay list at the specified index.

Use niSwitch_GetRelayName in a For Loop to get a complete list of valid relay names for the switch. Use the NISWITCH_ATTR_NUMBER_OF_RELAYS attribute to determine the number of relays.

Parameters

Name Type Description
vi ViSession A particular NI-SWITCH session established with niSwitch_InitWithTopology, niSwitch_InitWithOptions, or niSwitch_init and used for all subsequent NI-SWITCH calls.
index ViInt32 A 1-based index into the channel table. The default value is 1. The maximum value is the value of the NISWITCH_ATTR_CHANNEL_COUNT attribute.
relayNameBufferSize ViInt32 Pass the number of bytes in the ViChar array you specify for the relayNameBuffer parameter. If the relay name string, including the terminating NUL byte, contains more bytes than you indicate in this parameter, 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 relayBufferSize is 4, the function places "123" into the buffer and returns 7. If you pass a negative number, the function copies the value to the buffer regardless of the number of bytes in the value. If you pass 0, you can pass VI_NULL for the Coercion Record buffer parameter.
relayNameBuffer ViChar[] Returns the relay name for the index you specify.

Related Information

  • niSwitch_GetChannelName
  • niSwitch_GetRelayCount

niSwitch_GetRelayCount

Specific Function

C Function Prototype

ViStatus niSwitch_GetRelayCount (ViSession vi, ViConstString relayName, ViInt32* relayCount);

Purpose

Returns the number of times the relay has changed from closed to open. Relay count is useful for tracking relay lifetime and usage. Call niSwitch_WaitForDebounce before niSwitch_GetRelayCount to ensure an accurate count.

Refer to Relay Count) to determine if the switch module supports relay counting.

Parameters

Name Type Description
vi ViSession A particular NI-SWITCH session established with niSwitch_InitWithTopology, niSwitch_InitWithOptions, or niSwitch_init and used for all subsequent NI-SWITCH calls.
relayName ViConstString Name of the relay. Refer to Devices) for a list of valid relay names for the switch module.

Examples of valid relay names:

ch0, ab0, 1wire, hlselect
relayCount ViInt32 The number of relay cycles.

Related Information

  • niSwitch_GetRelayName

niSwitch_GetRelayPosition

Specific Function

C Function Prototype

ViStatus niSwitch_GetRelayPosition (ViSession vi, ViConstString relayName, ViInt32* relayPosition);

Purpose

Returns the relay position for the relay specified in the relayName parameter.

Parameters

Name Type Description
vi ViSession A particular NI-SWITCH session established with niSwitch_InitWithTopology, niSwitch_InitWithOptions, or niSwitch_init and used for all subsequent NI-SWITCH calls.
relayName ViConstString Name of the relay. Refer to Devices) for a list of valid relay names for the switch module.

Examples of valid relay names:

ch0, ab0, 1wire, hlselect
relayPosition ViInt32 Indicates whether the relay is open or closed.

Valid Values:

NISWITCH_VAL_OPEN (10)
NISWITCH_VAL_CLOSED (11)

Related Information

  • niSwitch_RelayControl
  • Relay Forms

niSwitch_RelayControl

Specific Function

C Function Prototype

ViStatus niSwitch_RelayControl (ViSession vi, ViConstString relayNames, ViInt32 relayAction);

Purpose

Controls individual relays of the switch. When controlling individual relays, the protection offered by setting the usage of source channels and configuration channels, and by enabling or disabling analog bus sharing) on the NI SwitchBlock, does not apply.

Refer to Devices) to determine if the switch supports individual relay control).

Parameters

Name Type Description
vi ViSession A particular NI-SWITCH session established with niSwitch_InitWithTopology, niSwitch_InitWithOptions, or niSwitch_init and used for all subsequent NI-SWITCH calls.
relayNames ViConstString Name of the relay or set of relays to control. You can supply a single relay name or a comma-delimited list of relay names to control these relays. Refer to Devices) for a list of valid relay names for the switch module.



Examples of valid relay names:

ch0, ab0, 1wire, hlselect
relayAction ViInt32 Specifies whether to open or close a given relay.

Defined values:
NISWITCH_VAL_OPEN_RELAY
NISWITCH_VAL_CLOSE_RELAY (default).

Related Information

  • niSwitch_GetRelayPosition
  • niSwitch_ResetWithDefaults
  • Relay Forms
⚠️ **GitHub.com Fallback** ⚠️