Enum ecu_diagnostics::uds::UDSError
source · [−]#[repr(C)]
pub enum UDSError {
Show 43 variants
GeneralReject,
ServiceNotSupported,
SubFunctionNotSupported,
IncorrectMessageLengthOrInvalidFormat,
ResponseTooLong,
BusyRepeatRequest,
ConditionsNotCorrect,
RequestSequenceError,
NoResponseFromSubnetComponent,
FailurePreventsExecutionOfRequestedAction,
RequestOutOfRange,
SecurityAccessDenied,
InvalidKey,
ExceedNumberOfAttempts,
RequiredTimeDelayNotExpired,
UploadDownloadNotAccepted,
TransferDataSuspended,
GeneralProgrammingFailure,
WrongBlockSequenceCounter,
RequestCorrectlyReceivedResponsePending,
SubFunctionNotSupportedInActiveSession,
ServiceNotSupportedInActiveSession,
RpmTooHigh,
RpmTooLow,
EngineIsRunning,
EngineIsNotRunning,
EngineRunTimeTooLow,
TemperatureTooHigh,
TemperatureTooLow,
VehicleSpeedTooHigh,
VehicleSpeedTooLow,
ThrottleTooHigh,
ThrottleTooLow,
TransmissionRangeNotInNeutral,
TransmissionRangeNotInGear,
BrakeSwitchNotClosed,
ShifterLeverNotInPark,
TorqueConverterClutchLocked,
VoltageTooHigh,
VoltageTooLow,
ReserverdForSpecificConditionsNotCorrect,
ReservedByExtendedDataLinkSecurityDocumentation,
IsoSAEReserved(u8),
}
Expand description
UDS Error definitions
Variants
GeneralReject
ECU rejected the request (No specific error)
ServiceNotSupported
Service is not supported by the ECU
SubFunctionNotSupported
Sub function is not supported by the ECU
IncorrectMessageLengthOrInvalidFormat
Request message was an invalid length, or the format of the request was incorrect
ResponseTooLong
The response message is too long for the transport protocol
BusyRepeatRequest
The ECU is too busy to perform this request. Therefore, the request Should be sent again if this error occurs
ConditionsNotCorrect
The requested action could not be preformed due to the prerequisite conditions not being correct
RequestSequenceError
The ECU cannot perform the request as the request has been sent in the incorrect order. For example, if UdsDiagnosticServer::send_key is used before UdsDiagnosticServer::request_seed, then the ECU will respond with this error.
NoResponseFromSubnetComponent
The ECU cannot perform the request as it has timed out trying to communicate with another component within the vehicle.
FailurePreventsExecutionOfRequestedAction
The ECU cannot perform the requested action as there is currently a DTC or failure of a component that is preventing the execution of the request.
RequestOutOfRange
The request message contains data outside of a valid range
SecurityAccessDenied
The request could not be completed due to security access being denied.
InvalidKey
The key sent from UdsDiagnosticServer::send_key was invalid
ExceedNumberOfAttempts
The client has tried to obtain security access to the ECU too many times with incorrect keys
RequiredTimeDelayNotExpired
The client has tried to request seed_key’s too quickly, before the ECU timeout’s period has expired
UploadDownloadNotAccepted
The ECU cannot accept the requested upload/download request due to a fault condition
TransferDataSuspended
The ECU has halted data transfer due to a fault condition
GeneralProgrammingFailure
The ECU has encountered an error during reprogramming (erasing / flashing)
WrongBlockSequenceCounter
The ECU has detected the reprogramming error as the blockSequenceCounter is incorrect.
RequestCorrectlyReceivedResponsePending
The ECU has accepted the request, but cannot reply right now. If this error occurs, the UdsDiagnosticServer will automatically stop sending tester present messages and will wait for the ECUs response. If after 2000ms, the ECU did not respond, then this error will get returned back to the function call.
SubFunctionNotSupportedInActiveSession
The sub function is not supported in the current diagnostic session mode
ServiceNotSupportedInActiveSession
The service is not supported in the current diagnostic session mode
RpmTooHigh
Engine RPM is too high
RpmTooLow
Engine RPM is too low
EngineIsRunning
Engine is running
EngineIsNotRunning
Engine is not running
EngineRunTimeTooLow
Engine has not been running for long enough
TemperatureTooHigh
Engine temperature (coolant) is too high
TemperatureTooLow
Engine temperature (coolant) is too low
VehicleSpeedTooHigh
Vehicle speed is too high
VehicleSpeedTooLow
Vehicle speed is too low
ThrottleTooHigh
Throttle or pedal value is too high
ThrottleTooLow
Throttle or pedal value is too low
TransmissionRangeNotInNeutral
Transmission is not in neutral
TransmissionRangeNotInGear
Transmission is not in gear
BrakeSwitchNotClosed
Brake is not applied
ShifterLeverNotInPark
Shifter lever is not in park
TorqueConverterClutchLocked
Automatic/CVT transmission torque convert is locked
VoltageTooHigh
Voltage is too high
VoltageTooLow
Voltage is too low
ReserverdForSpecificConditionsNotCorrect
(0x94-0xFE) This range is reserved for future definition.
ReservedByExtendedDataLinkSecurityDocumentation
(0x38-0x4F) This range of values is reserved for ISO-15765 data link security
IsoSAEReserved(u8)
Other reserved error code
Trait Implementations
sourceimpl Ord for UDSError
impl Ord for UDSError
sourceimpl PartialOrd<UDSError> for UDSError
impl PartialOrd<UDSError> for UDSError
sourcefn partial_cmp(&self, other: &UDSError) -> Option<Ordering>
fn partial_cmp(&self, other: &UDSError) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Copy for UDSError
impl Eq for UDSError
impl StructuralEq for UDSError
impl StructuralPartialEq for UDSError
Auto Trait Implementations
impl RefUnwindSafe for UDSError
impl Send for UDSError
impl Sync for UDSError
impl Unpin for UDSError
impl UnwindSafe for UDSError
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more