Class SensorCollection
-
Constructor Summary
ConstructorDescriptionSensorCollection
(BaseTalon motorController) Constructor for SensorCollection -
Method Summary
Modifier and TypeMethodDescriptionint
Get the position of whatever is in the analog pin of the Talon, regardless of whether it is actually being used for feedback.int
Get the position of whatever is in the analog pin of the Talon, regardless of whether it is actually being used for feedback.int
Get the velocity of whatever is in the analog pin of the Talon, regardless of whether it is actually being used for feedback.boolean
Gets pin state quad a.boolean
Gets pin state quad b.boolean
Gets pin state quad index.int
Gets pulse width position, regardless of whether it is actually being used for feedback.int
Gets pulse width rise to fall time.int
Gets pulse width rise to rise time.int
Gets pulse width velocity, regardless of whether it is actually being used for feedback.int
Get the quadrature position of the Talon, regardless of whether it is actually being used for feedback.int
Get the quadrature velocity, regardless of whether it is actually being used for feedback.boolean
Is forward limit switch closed.boolean
Is reverse limit switch closed.setAnalogPosition
(int newPosition, int timeoutMs) Sets analog position.setPulseWidthPosition
(int newPosition, int timeoutMs) Sets pulse width position.setQuadraturePosition
(int newPosition, int timeoutMs) Change the quadrature reported position.syncQuadratureWithPulseWidth
(int bookend0, int bookend1, boolean bCrossZeroOnInterval) Change the quadrature reported position based on pulse width.syncQuadratureWithPulseWidth
(int bookend0, int bookend1, boolean bCrossZeroOnInterval, int offset, int timeoutMs) Change the quadrature reported position based on pulse width.
-
Constructor Details
-
SensorCollection
Constructor for SensorCollection- Parameters:
motorController
- Motor Controller to connect Collection to
-
-
Method Details
-
getAnalogIn
Get the position of whatever is in the analog pin of the Talon, regardless of whether it is actually being used for feedback.This method relies on the Status 4 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the 24bit analog value. The bottom ten bits is the ADC (0 - 1023) on the analog pin of the Talon. The upper 14 bits tracks the overflows and underflows (continuous sensor).
-
setAnalogPosition
Sets analog position.- Parameters:
newPosition
- The new position.timeoutMs
- Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed.- Returns:
- an ErrorCode.
-
getAnalogInRaw
Get the position of whatever is in the analog pin of the Talon, regardless of whether it is actually being used for feedback.This method relies on the Status 4 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the ADC (0 - 1023) on analog pin of the Talon.
-
getAnalogInVel
Get the velocity of whatever is in the analog pin of the Talon, regardless of whether it is actually being used for feedback.This method relies on the Status 4 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the speed in units per 100ms where 1024 units is one rotation.
-
getQuadraturePosition
Get the quadrature position of the Talon, regardless of whether it is actually being used for feedback.This method relies on the Status 3 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the quadrature position.
-
setQuadraturePosition
Change the quadrature reported position. Typically this is used to "zero" the sensor. This only works with Quadrature sensor. To set the selected sensor position regardless of what type it is, see SetSelectedSensorPosition in the motor controller class.- Parameters:
newPosition
- The position value to apply to the sensor.timeoutMs
- Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed.- Returns:
- error code.
-
syncQuadratureWithPulseWidth
public ErrorCode syncQuadratureWithPulseWidth(int bookend0, int bookend1, boolean bCrossZeroOnInterval, int offset, int timeoutMs) Change the quadrature reported position based on pulse width. This can be used to effectively make quadrature absolute. For rotary mechanisms with >360 movement (such as typical swerve modules) bookend0 and bookend1 can be both set to 0 and bCrossZeroOnInterval can be set to true. For mechanisms with less than 360 travel (such as arms), bookend0 and bookend1 should be set to the pulse width values at the two extremes. If the interval crosses over the pulse width value of 0 (or any multiple of 4096), bCrossZeroOnInterval should be true and otherwise should be false. An offset can also be set.- Parameters:
bookend0
- value at extreme 0bookend1
- value at extreme 1bCrossZeroOnInterval
- True iff zero/wrap-around cross occurs as mechanism moves from bookend0 to bookend1.offset
- (Optional) Value to add to pulse widthtimeoutMs
- (Optional) How long to wait for confirmation. Pass zero so that call does not block.- Returns:
- error code.
-
syncQuadratureWithPulseWidth
public ErrorCode syncQuadratureWithPulseWidth(int bookend0, int bookend1, boolean bCrossZeroOnInterval) Change the quadrature reported position based on pulse width. This can be used to effectively make quadrature absolute. For rotary mechanisms with >360 movement (such as typical swerve modules) bookend0 and bookend1 can be both set to 0 and bCrossZeroOnInterval can be set to true. For mechanisms with less than 360 travel (such as arms), bookend0 and bookend1 should be set to the pulse width values at the two extremes. If the interval crosses over the pulse width value of 0 (or any multiple of 4096), bCrossZeroOnInterval should be true and otherwise should be false. An offset can also be set.- Parameters:
bookend0
- value at extreme 0bookend1
- value at extreme 1bCrossZeroOnInterval
- True iff zero/wrap-around cross occurs as mechanism moves from bookend0 to bookend1.- Returns:
- error code.
-
getQuadratureVelocity
Get the quadrature velocity, regardless of whether it is actually being used for feedback.This method relies on the Status 3 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the quadrature velocity in units per 100ms.
-
getPulseWidthPosition
Gets pulse width position, regardless of whether it is actually being used for feedback.This method relies on the Status 8 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the pulse width position.
-
setPulseWidthPosition
Sets pulse width position.- Parameters:
newPosition
- The position value to apply to the sensor.timeoutMs
- Timeout value in ms. If nonzero, function will wait for config success and report an error if it times out. If zero, no blocking or checking is performed.- Returns:
- an ErrErrorCode
-
getPulseWidthVelocity
Gets pulse width velocity, regardless of whether it is actually being used for feedback.This method relies on the Status 8 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the pulse width velocity in units per 100ms (where 4096 units is 1 rotation).
-
getPulseWidthRiseToFallUs
Gets pulse width rise to fall time.This method relies on the Status 8 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the pulse width rise to fall time in microseconds.
-
getPulseWidthRiseToRiseUs
Gets pulse width rise to rise time.This method relies on the Status 8 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the pulse width rise to rise time in microseconds.
-
getPinStateQuadA
Gets pin state quad a.This method relies on the Status 3 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- the pin state of quad a (1 if asserted, 0 if not asserted).
-
getPinStateQuadB
Gets pin state quad b.This method relies on the Status 3 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- Digital level of QUADB pin (1 if asserted, 0 if not asserted).
-
getPinStateQuadIdx
Gets pin state quad index.This method relies on the Status 3 message, which has a default period of 150ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- Digital level of QUAD Index pin (1 if asserted, 0 if not asserted).
-
isFwdLimitSwitchClosed
Is forward limit switch closed.This method relies on the Status 1 message, which has a default period of 10ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- '1' iff forward limit switch is closed, 0 iff switch is open. This function works regardless if limit switch feature is enabled. Remote limit features do not impact this routine.
-
isRevLimitSwitchClosed
Is reverse limit switch closed.This method relies on the Status 1 message, which has a default period of 10ms. For more information, see: https://phoenix-documentation.readthedocs.io/en/latest/ch18_CommonAPI.html
- Returns:
- '1' iff reverse limit switch is closed, 0 iff switch is open. This function works regardless if limit switch feature is enabled. Remote limit features do not impact this routine.
-