NI SWITCH Relay Functions - ni/grpc-device GitHub Wiki
ViStatus niSwitch_GetRelayName (ViSession vi, ViInt32 index, ViInt32 relayNameBufferSize, ViChar[] relayNameBuffer);
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.
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. |
- niSwitch_GetChannelName
- niSwitch_GetRelayCount
ViStatus niSwitch_GetRelayCount (ViSession vi, ViConstString relayName, ViInt32* relayCount);
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.
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. |
- niSwitch_GetRelayName
ViStatus niSwitch_GetRelayPosition (ViSession vi, ViConstString relayName, ViInt32* relayPosition);
Returns the relay position for the relay specified in the relayName parameter.
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) |
- niSwitch_RelayControl
- Relay Forms
ViStatus niSwitch_RelayControl (ViSession vi, ViConstString relayNames, ViInt32 relayAction);
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).
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). |
- niSwitch_GetRelayPosition
- niSwitch_ResetWithDefaults
- Relay Forms