Skip to main content

ace_uds/message/services/
negative_response.rs

1use crate::{message::ServiceIdentifier, UdsError};
2use ace_macros::FrameCodec;
3
4#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, FrameCodec)]
5#[frame(error = UdsError)]
6pub struct NegativeResponse {
7    pub request_sid: ServiceIdentifier,
8    pub response_code: NegativeResponseCode,
9}
10
11#[repr(u8)]
12#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, FrameCodec)]
13#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
14#[frame(error = UdsError)]
15pub enum NegativeResponseCode {
16    #[frame(id = 0x00)]
17    PositiveResponse,
18    #[frame(id = 0x10)]
19    GeneralReject,
20    #[frame(id = 0x11)]
21    ServiceNotSupported,
22    #[frame(id = 0x12)]
23    SubFunctionNotSupported,
24    #[frame(id = 0x13)]
25    IncorrectMessageLengthOrInvalidFormat,
26    #[frame(id = 0x14)]
27    ReponseTooLong,
28    #[frame(id = 0x21)]
29    BusyRepeatRequest,
30    #[frame(id = 0x22)]
31    ConditionsNotCorrect,
32    #[frame(id = 0x24)]
33    RequestSequenceError,
34    #[frame(id = 0x25)]
35    NoResponseFromSubnetComponent,
36    #[frame(id = 0x26)]
37    FailurePreventsExecutionOfRequestedAction,
38    #[frame(id = 0x31)]
39    RequestOutOfRange,
40    #[frame(id = 0x33)]
41    SecurityAccessDenied,
42    #[frame(id = 0x34)]
43    AuthenticationRequired,
44    #[frame(id = 0x35)]
45    InvalidKey,
46    #[frame(id = 0x36)]
47    ExceedNumberOfAttempts,
48    #[frame(id = 0x37)]
49    RequiredTimeDelayNotExpired,
50    #[frame(id = 0x38)]
51    SecureDataTransmissionRequired,
52    #[frame(id = 0x39)]
53    SecureDataTransmissionNotAllowed,
54    #[frame(id = 0x3A)]
55    SecureDataVerificationFailed,
56    #[frame(id = 0x50)]
57    CertificateVerificationFailedInvalidTimePeriod,
58    #[frame(id = 0x51)]
59    CertificateVerificationFailedInvalidSignature,
60    #[frame(id = 0x52)]
61    CertificateVerificationFailedInvalidChainOfTrust,
62    #[frame(id = 0x53)]
63    CertificateVerificationFailedInvalidType,
64    #[frame(id = 0x54)]
65    CertificateVerificationFailedInvalidFormat,
66    #[frame(id = 0x55)]
67    CertificateVerificationFailedInvalidContent,
68    #[frame(id = 0x56)]
69    CertificateVerificationFailedInvalidScope,
70    #[frame(id = 0x57)]
71    CertificateVerificationFailedInvalidCertificateRevoked,
72    #[frame(id = 0x58)]
73    OwnershipVerificationFailed,
74    #[frame(id = 0x59)]
75    ChallengeCalculationFailed,
76    #[frame(id = 0x5A)]
77    SettingAccessRightsFailed,
78    #[frame(id = 0x5B)]
79    SessionKeyCreationDerivationFailed,
80    #[frame(id = 0x5C)]
81    ConfigurationDataUsageFailed,
82    #[frame(id = 0x5D)]
83    DeAuthenticationFailed,
84    #[frame(id = 0x70)]
85    UploadDownloadNotAccepted,
86    #[frame(id = 0x71)]
87    TransferDataSuspended,
88    #[frame(id = 0x72)]
89    GeneralProgrammingFailure,
90    #[frame(id = 0x73)]
91    WrongBlockSequenceCounter,
92    #[frame(id = 0x78)]
93    RequestCorrectlyReceivedResponsePending,
94    #[frame(id = 0x7E)]
95    SubFunctionNotSupportedInActiveSession,
96    #[frame(id = 0x7F)]
97    ServiceNotSupportedInActiveSession,
98    #[frame(id = 0x81)]
99    RPMTooHigh,
100    #[frame(id = 0x82)]
101    RPMTooLow,
102    #[frame(id = 0x83)]
103    EngineIsRunning,
104    #[frame(id = 0x84)]
105    EngineIsNotRunning,
106    #[frame(id = 0x85)]
107    EngineRunTimeTooLow,
108    #[frame(id = 0x86)]
109    TemperatureTooHigh,
110    #[frame(id = 0x87)]
111    TemperatureTooLow,
112    #[frame(id = 0x88)]
113    VehicleSpeedTooHigh,
114    #[frame(id = 0x89)]
115    VehicleSpeedTooLow,
116    #[frame(id = 0x8A)]
117    ThrottlePedalTooHigh,
118    #[frame(id = 0x8B)]
119    ThrottlePedalTooLow,
120    #[frame(id = 0x8C)]
121    TransmissionRangeNotInNeutral,
122    #[frame(id = 0x8D)]
123    TransmissionRangeNotInGear,
124    #[frame(id = 0x8F)]
125    BrakeSwitchesNotClosed,
126    #[frame(id = 0x90)]
127    ShifterLeverNotInPark,
128    #[frame(id = 0x91)]
129    TorqueConverterClutchLocked,
130    #[frame(id = 0x92)]
131    VoltageTooHigh,
132    #[frame(id = 0x93)]
133    VoltageTooLow,
134    #[frame(id = 0x94)]
135    ResourceTemporarilyNotAvailable,
136}