Class CoreCANcoder
- Direct Known Subclasses:
CANcoder
public class CoreCANcoder extends ParentDevice
// Constants used in CANcoder construction final int kCANcoderId = 0; final String kCANcoderCANbus = "canivore"; // Construct the CANcoder CANcoder cancoder = new CANcoder(kCANcoderId, kCANcoderCANbus); // Configure the CANcoder for basic use CANcoderConfiguration configs = new CANcoderConfiguration(); // This CANcoder should report absolute position from [-0.5, 0.5) rotations, // with a 0.26 rotation offset, with clockwise being positive configs.MagnetSensor.AbsoluteSensorRange = AbsoluteSensorRange.Signed_PlusMinusHalf; configs.MountPose.MagnetOffset = 0.26; configs.MountPose.SensorDirection = SensorDirectionValue.Clockwise_Positive; // Write these configs to the CANcoder cancoder.getConfigurator().apply(configs); // Set the position to 0 rotations for initial use cancoder.setPosition(0); // Get Position and Velocity var position = cancoder.getPosition(); var velocity = cancoder.getVelocity(); // Refresh and print these values System.out.println("Position is " + position.refresh().toString()); System.out.println("Velocity is " + velocity.refresh().toString());
-
Nested Class Summary
Nested classes/interfaces inherited from class com.ctre.phoenix6.hardware.ParentDevice
ParentDevice.MapGenerator<T>
-
Field Summary
-
Constructor Summary
Constructors Constructor Description CoreCANcoder(int deviceId)
Constructs a new CANcoder object.CoreCANcoder(int deviceId, String canbus)
Constructs a new CANcoder object. -
Method Summary
Modifier and Type Method Description StatusCode
clearStickyFault_BadMagnet()
Clear sticky fault: The magnet distance is not correct or magnet is missingStatusCode
clearStickyFault_BadMagnet(double timeoutSeconds)
Clear sticky fault: The magnet distance is not correct or magnet is missingStatusCode
clearStickyFault_BootDuringEnable()
Clear sticky fault: Device boot while detecting the enable signalStatusCode
clearStickyFault_BootDuringEnable(double timeoutSeconds)
Clear sticky fault: Device boot while detecting the enable signalStatusCode
clearStickyFault_Hardware()
Clear sticky fault: Hardware fault occurredStatusCode
clearStickyFault_Hardware(double timeoutSeconds)
Clear sticky fault: Hardware fault occurredStatusCode
clearStickyFault_Undervoltage()
Clear sticky fault: Device supply voltage dropped to near brownout levelsStatusCode
clearStickyFault_Undervoltage(double timeoutSeconds)
Clear sticky fault: Device supply voltage dropped to near brownout levelsStatusCode
clearStickyFaults()
Clear the sticky faults in the device.StatusCode
clearStickyFaults(double timeoutSeconds)
Clear the sticky faults in the device.StatusSignal<Double>
getAbsolutePosition()
Absolute Position of the device.CANcoderConfigurator
getConfigurator()
Gets the configurator to use with this device's configsStatusSignal<Boolean>
getFault_BadMagnet()
The magnet distance is not correct or magnet is missing Default Value: False Default Rates: CAN: 4.0 Hz This refreshes and returns a cached StatusSignal object.StatusSignal<Boolean>
getFault_BootDuringEnable()
Device boot while detecting the enable signal Default Value: False Default Rates: CAN: 4.0 Hz This refreshes and returns a cached StatusSignal object.StatusSignal<Boolean>
getFault_Hardware()
Hardware fault occurred Default Value: False Default Rates: CAN: 4.0 Hz This refreshes and returns a cached StatusSignal object.StatusSignal<Boolean>
getFault_Undervoltage()
Device supply voltage dropped to near brownout levels Default Value: False Default Rates: CAN: 4.0 Hz This refreshes and returns a cached StatusSignal object.StatusSignal<Boolean>
getFault_UnlicensedFeatureInUse()
An unlicensed feature is in use, device may not behave as expected.StatusSignal<Integer>
getFaultField()
Integer representing all faultsStatusSignal<Boolean>
getIsProLicensed()
Whether the device is Phoenix Pro licensed.StatusSignal<MagnetHealthValue>
getMagnetHealth()
Magnet health as measured by CANcoder.StatusSignal<Double>
getPosition()
Position of the device.StatusSignal<Double>
getPositionSinceBoot()
The relative position reported by the CANcoder since boot.CANcoderSimState
getSimState()
Get the simulation state for this device.StatusSignal<Boolean>
getStickyFault_BadMagnet()
The magnet distance is not correct or magnet is missing Default Value: False Default Rates: CAN: 4.0 Hz This refreshes and returns a cached StatusSignal object.StatusSignal<Boolean>
getStickyFault_BootDuringEnable()
Device boot while detecting the enable signal Default Value: False Default Rates: CAN: 4.0 Hz This refreshes and returns a cached StatusSignal object.StatusSignal<Boolean>
getStickyFault_Hardware()
Hardware fault occurred Default Value: False Default Rates: CAN: 4.0 Hz This refreshes and returns a cached StatusSignal object.StatusSignal<Boolean>
getStickyFault_Undervoltage()
Device supply voltage dropped to near brownout levels Default Value: False Default Rates: CAN: 4.0 Hz This refreshes and returns a cached StatusSignal object.StatusSignal<Boolean>
getStickyFault_UnlicensedFeatureInUse()
An unlicensed feature is in use, device may not behave as expected.StatusSignal<Integer>
getStickyFaultField()
Integer representing all sticky faultsStatusSignal<Double>
getSupplyVoltage()
Measured supply voltage to the CANcoder.StatusSignal<Double>
getUnfilteredVelocity()
The unfiltered velocity reported by CANcoder.StatusSignal<Double>
getVelocity()
Velocity of the device.StatusSignal<Integer>
getVersion()
Full Version.StatusSignal<Integer>
getVersionBugfix()
App Bugfix Version number.StatusSignal<Integer>
getVersionBuild()
App Build Version number.StatusSignal<Integer>
getVersionMajor()
App Major Version number.StatusSignal<Integer>
getVersionMinor()
App Minor Version number.StatusCode
setControl(ControlRequest request)
Control motor with generic control request object.StatusCode
setPosition(double newValue)
Sets the current position of the device.StatusCode
setPosition(double newValue, double timeoutSeconds)
Sets the current position of the device.Methods inherited from class com.ctre.phoenix6.hardware.ParentDevice
getAppliedControl, getDeviceHash, getDeviceID, getNetwork, getResetOccurredChecker, hasResetOccurred, lookupStatusSignal, lookupStatusSignal, optimizeBusUtilization, optimizeBusUtilization, optimizeBusUtilization, optimizeBusUtilizationForAll, optimizeBusUtilizationForAll, setControlPrivate
-
Constructor Details
-
CoreCANcoder
Constructs a new CANcoder object.Constructs the device using the default CAN bus for the system:
- "rio" on roboRIO
- "can0" on Linux
- "*" on Windows
- Parameters:
deviceId
- ID of the device, as configured in Phoenix Tuner.
-
CoreCANcoder
Constructs a new CANcoder object.- Parameters:
deviceId
- ID of the device, as configured in Phoenix Tuner.canbus
- Name of the CAN bus this device is on. Possible CAN bus strings are:- "rio" for the native roboRIO CAN bus
- CANivore name or serial number
- SocketCAN interface (non-FRC Linux only)
- "*" for any CANivore seen by the program
- empty string (default) to select the default for the system:
- "rio" on roboRIO
- "can0" on Linux
- "*" on Windows
-
-
Method Details
-
getConfigurator
Gets the configurator to use with this device's configs- Returns:
- Configurator for this object
-
getSimState
Get the simulation state for this device.This function reuses an allocated simulation state object, so it is safe to call this function multiple times in a robot loop.
- Returns:
- Simulation state
-
getVersionMajor
App Major Version number.- Minimum Value: 0
- Maximum Value: 255
- Default Value: 0
- Units:
- CAN: 4.0 Hz
- Returns:
- VersionMajor Status Signal Object
-
getVersionMinor
App Minor Version number.- Minimum Value: 0
- Maximum Value: 255
- Default Value: 0
- Units:
- CAN: 4.0 Hz
- Returns:
- VersionMinor Status Signal Object
-
getVersionBugfix
App Bugfix Version number.- Minimum Value: 0
- Maximum Value: 255
- Default Value: 0
- Units:
- CAN: 4.0 Hz
- Returns:
- VersionBugfix Status Signal Object
-
getVersionBuild
App Build Version number.- Minimum Value: 0
- Maximum Value: 255
- Default Value: 0
- Units:
- CAN: 4.0 Hz
- Returns:
- VersionBuild Status Signal Object
-
getVersion
Full Version. The format is a four byte value.Full Version of firmware in device. The format is a four byte value.
- Minimum Value: 0
- Maximum Value: 4294967295
- Default Value: 0
- Units:
- CAN: 4.0 Hz
- Returns:
- Version Status Signal Object
-
getFaultField
Integer representing all faultsThis returns the fault flags reported by the device. These are device specific and are not used directly in typical applications. Use the signal specific GetFault_*() methods instead.
- Minimum Value: 0
- Maximum Value: 16777215
- Default Value: 0
- Units:
- CAN: 4.0 Hz
- Returns:
- FaultField Status Signal Object
-
getStickyFaultField
Integer representing all sticky faultsThis returns the persistent "sticky" fault flags reported by the device. These are device specific and are not used directly in typical applications. Use the signal specific GetStickyFault_*() methods instead.
- Minimum Value: 0
- Maximum Value: 16777215
- Default Value: 0
- Units:
- CAN: 4.0 Hz
- Returns:
- StickyFaultField Status Signal Object
-
getVelocity
Velocity of the device.- Minimum Value: -512.0
- Maximum Value: 511.998046875
- Default Value: 0
- Units: rotations per second
- CAN 2.0: 100.0 Hz
- CAN FD: 100.0 Hz (TimeSynced with Pro)
- Returns:
- Velocity Status Signal Object
-
getPosition
Position of the device. This is initialized to the absolute position on boot.- Minimum Value: -16384.0
- Maximum Value: 16383.999755859375
- Default Value: 0
- Units: rotations
- CAN 2.0: 100.0 Hz
- CAN FD: 100.0 Hz (TimeSynced with Pro)
- Returns:
- Position Status Signal Object
-
getAbsolutePosition
Absolute Position of the device. The possible range is documented below; however, the exact expected range is determined by the AbsoluteSensorRange. This position is only affected by the MagnetSensor configs.- Minimum Value: -0.5
- Maximum Value: 0.999755859375
- Default Value: 0
- Units: rotations
- CAN 2.0: 100.0 Hz
- CAN FD: 100.0 Hz (TimeSynced with Pro)
- Returns:
- AbsolutePosition Status Signal Object
-
getUnfilteredVelocity
The unfiltered velocity reported by CANcoder.This is the unfiltered velocity reported by CANcoder. This signal does not use the fusing algorithm.
- Minimum Value: -8000.0
- Maximum Value: 7999.755859375
- Default Value: 0
- Units: rotations per second
- CAN 2.0: 4.0 Hz
- CAN FD: 100.0 Hz (TimeSynced with Pro)
- Returns:
- UnfilteredVelocity Status Signal Object
-
getPositionSinceBoot
The relative position reported by the CANcoder since boot.This is the total displacement reported by CANcoder since power up. This signal is relative and is not influenced by the fusing algorithm.
- Minimum Value: -16384.0
- Maximum Value: 16383.999755859375
- Default Value: 0
- Units: rotations
- CAN 2.0: 4.0 Hz
- CAN FD: 100.0 Hz (TimeSynced with Pro)
- Returns:
- PositionSinceBoot Status Signal Object
-
getSupplyVoltage
Measured supply voltage to the CANcoder.- Minimum Value: 4
- Maximum Value: 16.75
- Default Value: 4
- Units: V
- CAN 2.0: 4.0 Hz
- CAN FD: 100.0 Hz (TimeSynced with Pro)
- Returns:
- SupplyVoltage Status Signal Object
-
getMagnetHealth
Magnet health as measured by CANcoder.Magnet health as measured by CANcoder. Red indicates too close or too far, Orange is adequate but with reduced accuracy, green is ideal. Invalid means the accuracy cannot be determined. Default Rates:
- CAN 2.0: 4.0 Hz
- CAN FD: 100.0 Hz (TimeSynced with Pro)
- Returns:
- MagnetHealth Status Signal Object
-
getIsProLicensed
Whether the device is Phoenix Pro licensed.- Default Value: False
- CAN: 4.0 Hz
- Returns:
- IsProLicensed Status Signal Object
-
getFault_Hardware
Hardware fault occurred- Default Value: False
- CAN: 4.0 Hz
- Returns:
- Fault_Hardware Status Signal Object
-
getStickyFault_Hardware
Hardware fault occurred- Default Value: False
- CAN: 4.0 Hz
- Returns:
- StickyFault_Hardware Status Signal Object
-
getFault_Undervoltage
Device supply voltage dropped to near brownout levels- Default Value: False
- CAN: 4.0 Hz
- Returns:
- Fault_Undervoltage Status Signal Object
-
getStickyFault_Undervoltage
Device supply voltage dropped to near brownout levels- Default Value: False
- CAN: 4.0 Hz
- Returns:
- StickyFault_Undervoltage Status Signal Object
-
getFault_BootDuringEnable
Device boot while detecting the enable signal- Default Value: False
- CAN: 4.0 Hz
- Returns:
- Fault_BootDuringEnable Status Signal Object
-
getStickyFault_BootDuringEnable
Device boot while detecting the enable signal- Default Value: False
- CAN: 4.0 Hz
- Returns:
- StickyFault_BootDuringEnable Status Signal Object
-
getFault_UnlicensedFeatureInUse
An unlicensed feature is in use, device may not behave as expected.- Default Value: False
- CAN: 4.0 Hz
- Returns:
- Fault_UnlicensedFeatureInUse Status Signal Object
-
getStickyFault_UnlicensedFeatureInUse
An unlicensed feature is in use, device may not behave as expected.- Default Value: False
- CAN: 4.0 Hz
- Returns:
- StickyFault_UnlicensedFeatureInUse Status Signal Object
-
getFault_BadMagnet
The magnet distance is not correct or magnet is missing- Default Value: False
- CAN: 4.0 Hz
- Returns:
- Fault_BadMagnet Status Signal Object
-
getStickyFault_BadMagnet
The magnet distance is not correct or magnet is missing- Default Value: False
- CAN: 4.0 Hz
- Returns:
- StickyFault_BadMagnet Status Signal Object
-
setControl
Control motor with generic control request object.User must make sure the specified object is castable to a valid control request, otherwise this function will fail at run-time and return the NotSupported StatusCode
- Parameters:
request
- Control object to request of the device- Returns:
- Status Code of the request, 0 is OK
-
setPosition
Sets the current position of the device.- Parameters:
newValue
- Value to set to. Units are in rotations.timeoutSeconds
- Maximum time to wait up to in seconds.- Returns:
- StatusCode of the set command
-
setPosition
Sets the current position of the device.This will wait up to 0.050 seconds (50ms) by default.
- Parameters:
newValue
- Value to set to. Units are in rotations.- Returns:
- StatusCode of the set command
-
clearStickyFaults
Clear the sticky faults in the device.This typically has no impact on the device functionality. Instead, it just clears telemetry faults that are accessible via API and Tuner Self-Test.
- Parameters:
timeoutSeconds
- Maximum time to wait up to in seconds.- Returns:
- StatusCode of the set command
-
clearStickyFaults
Clear the sticky faults in the device.This typically has no impact on the device functionality. Instead, it just clears telemetry faults that are accessible via API and Tuner Self-Test.
This will wait up to 0.050 seconds (50ms) by default.
- Returns:
- StatusCode of the set command
-
clearStickyFault_Hardware
Clear sticky fault: Hardware fault occurred- Parameters:
timeoutSeconds
- Maximum time to wait up to in seconds.- Returns:
- StatusCode of the set command
-
clearStickyFault_Hardware
Clear sticky fault: Hardware fault occurredThis will wait up to 0.050 seconds (50ms) by default.
- Returns:
- StatusCode of the set command
-
clearStickyFault_Undervoltage
Clear sticky fault: Device supply voltage dropped to near brownout levels- Parameters:
timeoutSeconds
- Maximum time to wait up to in seconds.- Returns:
- StatusCode of the set command
-
clearStickyFault_Undervoltage
Clear sticky fault: Device supply voltage dropped to near brownout levelsThis will wait up to 0.050 seconds (50ms) by default.
- Returns:
- StatusCode of the set command
-
clearStickyFault_BootDuringEnable
Clear sticky fault: Device boot while detecting the enable signal- Parameters:
timeoutSeconds
- Maximum time to wait up to in seconds.- Returns:
- StatusCode of the set command
-
clearStickyFault_BootDuringEnable
Clear sticky fault: Device boot while detecting the enable signalThis will wait up to 0.050 seconds (50ms) by default.
- Returns:
- StatusCode of the set command
-
clearStickyFault_BadMagnet
Clear sticky fault: The magnet distance is not correct or magnet is missing- Parameters:
timeoutSeconds
- Maximum time to wait up to in seconds.- Returns:
- StatusCode of the set command
-
clearStickyFault_BadMagnet
Clear sticky fault: The magnet distance is not correct or magnet is missingThis will wait up to 0.050 seconds (50ms) by default.
- Returns:
- StatusCode of the set command
-