BaseStatusSignalWaitForAll Method

Waits for new data on all provided signals up to timeout. This API is typically used with CANivore Bus signals as they will be synced using the CANivore Timesync feature and arrive simultaneously.Signals on a roboRIO bus cannot be synced and may require a significantly longer blocking call to receive all signals.

Note that CANivore Timesync requires Phoenix Pro.

This can also be used with a timeout of zero to refresh many signals at once, which is faster than calling Refresh(Boolean)on every signal. This is equivalent to calling RefreshAll(BaseStatusSignal).

Definition

Namespace: CTRE.Phoenix6
Assembly: Phoenix6 (in Phoenix6.dll) Version: 1.0.0
C#
public static StatusCode WaitForAll(
	double timeoutSeconds,
	params BaseStatusSignal[] signals
)

Parameters

timeoutSeconds  Double
Maximum time to wait for new data in seconds. Pass Zero to refresh all signals without blocking.
signals  BaseStatusSignal
Signals to wait for new data against.

Return Value

StatusCode
An InvalidParamValue if signals array is empty, InvalidNetwork if signals are on different CAN bus networks, RxTimeout if it took longer than timeoutSeconds to receive all signals, MultiSignalNotSupported if using a network that does not support more than one signal, OK if all signals arrived within timeoutSeconds and they are all OK,

Any other signal represents the StatusCode of the first failed signal. Call Status on each signal to determine which ones failed.

See Also