Class StatusSignalValue<T>
- All Implemented Interfaces:
Cloneable
public class StatusSignalValue<T> extends BaseStatusSignalValue implements Cloneable
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
StatusSignalValue.SignalMeasurement<L>
-
Field Summary
Fields inherited from class com.ctre.phoenixpro.BaseStatusSignalValue
baseValue, deviceIdentifier, error, jni, signalName, spn, timestamps, units
-
Constructor Summary
Constructors Constructor Description StatusSignalValue(DeviceIdentifier deviceIdentifier, int spn, Runnable reportIfOldFunc, Class<T> classOfSignal, ParentDevice.MapGenerator<T> generator, String signalName)
StatusSignalValue(DeviceIdentifier deviceIdentifier, int spn, Runnable reportIfOldFunc, Class<T> classOfSignal, String signalName)
StatusSignalValue(Class<T> classOfSignal, StatusCode error)
-
Method Summary
Modifier and Type Method Description Supplier<T>
asSupplier()
Returns a lambda that calls Refresh and GetValue on this object.StatusSignalValue<T>
clone()
StatusSignalValue.SignalMeasurement<T>
getDataCopy()
Get a basic data-only container with this information, to be used for things such as data logging.Class<T>
getTypeClass()
T
getValue()
Gets the cached value from this status signal valueStatusSignalValue<T>
refresh()
Refreshes this status signal valueStatusSignalValue<T>
refresh(boolean reportError)
Refreshes this status signal valueStatusCode
setUpdateFrequency(double frequencyHz)
Sets the rate at which the device will publish this signal.StatusCode
setUpdateFrequency(double frequencyHz, double timeoutSeconds)
Sets the rate at which the device will publish this signal.String
toString()
StatusSignalValue<T>
waitForUpdate(double timeoutSec)
Waits up to timeoutSec to get the up-to-date status signal valueStatusSignalValue<T>
waitForUpdate(double timeoutSec, boolean reportError)
Waits up to timeoutSec to get the up-to-date status signal valueMethods inherited from class com.ctre.phoenixpro.BaseStatusSignalValue
copyFrom, getAllTimestamps, getError, getLatencyCompensatedValue, getTimestamp, getUnits, isAllGood, waitForAll
-
Constructor Details
-
StatusSignalValue
public StatusSignalValue(DeviceIdentifier deviceIdentifier, int spn, Runnable reportIfOldFunc, Class<T> classOfSignal, String signalName) -
StatusSignalValue
public StatusSignalValue(DeviceIdentifier deviceIdentifier, int spn, Runnable reportIfOldFunc, Class<T> classOfSignal, ParentDevice.MapGenerator<T> generator, String signalName) -
StatusSignalValue
-
-
Method Details
-
asSupplier
Returns a lambda that calls Refresh and GetValue on this object. This is useful for command-based programming.- Returns:
- Supplier that refreshes this signal and returns it
-
toString
-
clone
-
getTypeClass
-
getValue
Gets the cached value from this status signal valueGets the cached value. To make sure the value is up-to-date call
refresh()
orwaitForUpdate(double)
- Returns:
- Cached value
-
refresh
Refreshes this status signal valueIf the user application caches this StatusSignalValue object instead of periodically fetching it from the hardware device, this function must be called to fetch fresh data.
This performs a non-blocking refresh operation. If you want to wait until you receive the signal, call
waitForUpdate(double)
instead.- Parameters:
reportError
- Whether to report any errors to the Driver Station/stderr. Defaults true- Returns:
- Reference to itself
-
refresh
Refreshes this status signal valueIf the user application caches this StatusSignalValue object instead of periodically fetching it from the hardware device, this function must be called to fetch fresh data.
This performs a non-blocking refresh operation. If you want to wait until you receive the signal, call
waitForUpdate(double)
instead.- Returns:
- Reference to itself
-
waitForUpdate
Waits up to timeoutSec to get the up-to-date status signal valueThis performs a blocking refresh operation. If you want to non-blocking refresh the signal, call
refresh()
instead.- Parameters:
timeoutSec
- Maximum time to wait for the signal to come inreportError
- Whether to report any errors to the Driver Station/stderr. Defaults true- Returns:
- Reference to itself
-
waitForUpdate
Waits up to timeoutSec to get the up-to-date status signal valueThis performs a blocking refresh operation. If you want to non-blocking refresh the signal, call
refresh()
instead.- Parameters:
timeoutSec
- Maximum time to wait for the signal to come in- Returns:
- Reference to itself
-
setUpdateFrequency
Sets the rate at which the device will publish this signal.The minimum supported signal frequency is 4 Hz, and the maximum is 1000 Hz.
This will wait up to 0.050 seconds (50ms) by default.
- Parameters:
frequencyHz
- Rate to publish the signal in Hz.- Returns:
- Status code of setting the update frequency
-
setUpdateFrequency
Sets the rate at which the device will publish this signal.The minimum supported signal frequency is 4 Hz, and the maximum is 1000 Hz.
- Parameters:
frequencyHz
- Rate to publish the signal in Hz.timeoutSeconds
- Maximum amount of time to wait when performing the action- Returns:
- Status code of setting the update frequency
-
getDataCopy
Get a basic data-only container with this information, to be used for things such as data logging.- Returns:
- Basic structure with all relevant information
-