#[repr(i32)]pub enum ErrorCode {
Show 40 variants
OK = 0,
CAN_MSG_STALE = 1,
TxFailed = -1,
InvalidParamValue = -2,
RxTimeout = -3,
TxTimeout = -4,
UnexpectedArbId = -5,
BufferFull = 6,
CAN_OVERFLOW = -6,
SensorNotPresent = -7,
FirmwareTooOld = -8,
CouldNotChangePeriod = -9,
GeneralError = -100,
SigNotUpdated = -200,
NotAllPIDValuesUpdated = -201,
GEN_PORT_ERROR = -300,
PORT_MODULE_TYPE_MISMATCH = -301,
GEN_MODULE_ERROR = -400,
MODULE_NOT_INIT_SET_ERROR = -401,
MODULE_NOT_INIT_GET_ERROR = -402,
WheelRadiusTooSmall = -500,
TicksPerRevZero = -501,
DistanceBetweenWheelsTooSmall = -502,
GainsAreNotSet = -503,
IncompatibleMode = -600,
InvalidHandle = -601,
FeatureRequiresHigherFirm = -700,
TalonFeatureRequiresHigherFirm = -701,
PulseWidthSensorNotPresent = 10,
GeneralWarning = 100,
FeatureNotSupported = 101,
NotImplemented = 102,
FirmVersionCouldNotBeRetrieved = 103,
FeaturesNotAvailableYet = 104,
ControlModeNotValid = 105,
ControlModeNotSupportedYet = 106,
AuxiliaryPIDNotSupportedYet = 107,
RemoteSensorsNotSupportedYet = 108,
MotProfFirmThreshold = 109,
MotProfFirmThreshold2 = 110,
}
Variants§
OK = 0
No Error - Function executed as expected
CAN_MSG_STALE = 1
TxFailed = -1
Could not transmit the CAN frame.
InvalidParamValue = -2
Caller passed an invalid param
RxTimeout = -3
CAN frame has not been received within specified period of time.
TxTimeout = -4
Not used.
UnexpectedArbId = -5
Specified CAN Id is invalid.
BufferFull = 6
Caller attempted to insert data into a buffer that is full.
CAN_OVERFLOW = -6
SensorNotPresent = -7
Sensor is not present
FirmwareTooOld = -8
CouldNotChangePeriod = -9
GeneralError = -100
User Specified General Error
SigNotUpdated = -200
Have not received an value response for signal.
NotAllPIDValuesUpdated = -201
GEN_PORT_ERROR = -300
PORT_MODULE_TYPE_MISMATCH = -301
GEN_MODULE_ERROR = -400
MODULE_NOT_INIT_SET_ERROR = -401
MODULE_NOT_INIT_GET_ERROR = -402
WheelRadiusTooSmall = -500
TicksPerRevZero = -501
DistanceBetweenWheelsTooSmall = -502
GainsAreNotSet = -503
IncompatibleMode = -600
InvalidHandle = -601
Handle does not match stored map of handles
FeatureRequiresHigherFirm = -700
TalonFeatureRequiresHigherFirm = -701
PulseWidthSensorNotPresent = 10
Special Code for “isSensorPresent”
GeneralWarning = 100
FeatureNotSupported = 101
feature not implement in the API or firmware
NotImplemented = 102
feature not implement in the API
FirmVersionCouldNotBeRetrieved = 103
FeaturesNotAvailableYet = 104
feature will be release in an upcoming release
ControlModeNotValid = 105
Current control mode of motor controller not valid for this call
ControlModeNotSupportedYet = 106
AuxiliaryPIDNotSupportedYet = 107
RemoteSensorsNotSupportedYet = 108
MotProfFirmThreshold = 109
MotProfFirmThreshold2 = 110
Implementations§
Source§impl ErrorCode
impl ErrorCode
Sourcepub fn or(self, err: ErrorCode) -> ErrorCode
pub fn or(self, err: ErrorCode) -> ErrorCode
Returns err
if self
is OK
, otherwise returns self
.
Intended for use by the ctre
crate only.
Sourcepub fn into_res(self) -> Result<(), ErrorCode>
pub fn into_res(self) -> Result<(), ErrorCode>
Returns an Ok
if the error code is OK
, or an Err
otherwise.
Examples found in repository?
6fn main() -> ctre::Result<()> {
7 let talon = TalonSRX::new(0);
8 let delay = time::Duration::from_millis(20);
9 talon.config_forward_limit_switch_source(
10 LimitSwitchSource::FeedbackConnector,
11 LimitSwitchNormal::NormallyOpen,
12 10,
13 ).into_res()?;
14 loop {
15 talon.set(ControlMode::PercentOutput, 0.5, DemandType::Neutral, 0.0);
16 thread::sleep(delay);
17 talon.neutral_output();
18 thread::sleep(delay);
19 }
20}