| module UnifiedDiagnosticServices { |
| |
| import from General_Types all |
| |
| external function encode_TopLevelMessage_UDS_requests(in TopLevelMessage_UDS_requests pdu) return octetstring |
| with { extension "prototype(convert) encode(RAW)" } |
| external function decode_TopLevelMessage_UDS_requests(in octetstring data) return TopLevelMessage_UDS_requests |
| with { extension "prototype(convert) decode(RAW)" } |
| |
| external function encode_TopLevelMessage_UDS_responses(in TopLevelMessage_UDS_responses pdu) return octetstring |
| with { extension "prototype(convert) encode(RAW)" } |
| external function decode_TopLevelMessage_UDS_responses(in octetstring data) return TopLevelMessage_UDS_responses |
| with { extension "prototype(convert) decode(RAW)" } |
| |
| |
| type OCT1 SID |
| |
| type enumerated SuppressPosRspMsgIndicationBitType { |
| doNotsuppresssPos (0), |
| suppresssPos (1) |
| } with {variant "FIELDLENGTH(1)"} |
| |
| type BIT7 DiagnosticSessionType |
| |
| type record DefaultSessionRequest { |
| DiagnosticSessionType diagnosticSessionType ('0000001'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record ProgrammingSessionRequest { |
| DiagnosticSessionType diagnosticSessionType ('0000010'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record ExtendedDiagnosticSessionRequest { |
| DiagnosticSessionType diagnosticSessionType ('0000011'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record SafetySystemDiagnosticSessionRequest { |
| DiagnosticSessionType diagnosticSessionType ('0000100'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type union DiagnosticSessionRequestType |
| { |
| DefaultSessionRequest defaultSession, |
| ProgrammingSessionRequest programmingSession, |
| ExtendedDiagnosticSessionRequest extendedDiagnosticSession, |
| SafetySystemDiagnosticSessionRequest safetySystemDiagnosticSession |
| } |
| with {variant "TAG ( |
| defaultSession, diagnosticSessionType = '0000001'B; |
| programmingSession, diagnosticSessionType = '0000010'B; |
| extendedDiagnosticSession, diagnosticSessionType = '0000011'B; |
| safetySystemDiagnosticSession, diagnosticSessionType = '0000100'B)"; |
| variant "FIELDLENGTH(7)" |
| } |
| |
| type record DiagnosticSessionControlRequestSID |
| { |
| SID sid ('10'O), |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| DiagnosticSessionRequestType diagnosticSessionType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record DiagnosticSessionControlResponseSID |
| { |
| SID sid ('50'O), |
| BIT1 reserved ('0'B), |
| DiagnosticSessionResponseType diagnosticSessionType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| |
| type record DefaultSessionResponse { |
| DiagnosticSessionType diagnosticSessionType ('0000001'B), |
| OCT2 p2ServerMax, |
| OCT2 p2StarServerMax |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record ProgrammingSessionResponse { |
| DiagnosticSessionType diagnosticSessionType ('0000010'B), |
| OCT2 p2ServerMax, |
| OCT2 p2StarServerMax |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record ExtendedDiagnosticSessionResponse { |
| DiagnosticSessionType diagnosticSessionType ('0000011'B), |
| OCT2 p2ServerMax, |
| OCT2 p2StarServerMax |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record SafetySystemDiagnosticSessionResponse { |
| DiagnosticSessionType diagnosticSessionType ('0000100'B), |
| OCT2 p2ServerMax, |
| OCT2 p2StarServerMax |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type union DiagnosticSessionResponseType |
| { |
| DefaultSessionResponse defaultSession, |
| ProgrammingSessionResponse programmingSession, |
| ExtendedDiagnosticSessionResponse extendedDiagnosticSession, |
| SafetySystemDiagnosticSessionResponse safetySystemDiagnosticSession |
| } |
| with {variant "TAG ( |
| defaultSession, diagnosticSessionType = '0000001'B; |
| programmingSession, diagnosticSessionType = '0000010'B; |
| extendedDiagnosticSession, diagnosticSessionType = '0000011'B; |
| safetySystemDiagnosticSession, diagnosticSessionType = '0000100'B)" |
| } |
| |
| type BIT7 ResetType |
| |
| type record HardResetRequest { |
| ResetType resetType ('0000001'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record KeyOffOnResetRequest { |
| ResetType resetType ('0000010'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record SoftResetRequest { |
| ResetType resetType ('0000011'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record EnableRapidPowerShutDownRequest { |
| ResetType resetType ('0000100'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record DisableRapidPowerShutDownRequest { |
| ResetType resetType ('0000101'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type union ECUResetRequestType |
| { |
| HardResetRequest hardReset, |
| KeyOffOnResetRequest keyOffOnReset, |
| SoftResetRequest softReset, |
| EnableRapidPowerShutDownRequest enableRapidPowerShutDown, |
| DisableRapidPowerShutDownRequest disableRapidPowerShutDown |
| } |
| with {variant "TAG ( |
| hardReset, resetType = '0000001'B; |
| keyOffOnReset, resetType = '0000010'B; |
| softReset, resetType = '0000011'B; |
| enableRapidPowerShutDown, resetType = '0000100'B; |
| disableRapidPowerShutDown, resetType = '0000101'B)"; |
| variant "FIELDLENGTH(7)" |
| } |
| |
| type record HardResetResponse { |
| ResetType resetType ('0000001'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record KeyOffOnResetResponse { |
| ResetType resetType ('0000010'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record SoftResetResponse { |
| ResetType resetType ('0000011'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type OCT1 PowerDownTime |
| |
| type record EnableRapidPowerShutDownResponse { |
| ResetType resetType ('0000100'B), |
| PowerDownTime powerDownTime |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record DisableRapidPowerShutDownResponse { |
| ResetType resetType ('0000101'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type union ECUResetResponseType |
| { |
| HardResetResponse hardReset, |
| KeyOffOnResetResponse keyOffOnReset, |
| SoftResetResponse softReset, |
| EnableRapidPowerShutDownResponse enableRapidPowerShutDown, |
| DisableRapidPowerShutDownResponse disableRapidPowerShutDown |
| } |
| with {variant "TAG ( |
| hardReset, resetType = '0000001'B; |
| keyOffOnReset, resetType = '0000010'B; |
| softReset, resetType = '0000011'B; |
| enableRapidPowerShutDown, resetType = '0000100'B; |
| disableRapidPowerShutDown, resetType = '0000101'B)"; |
| variant "FIELDLENGTH(7)" |
| } |
| |
| type record ECUResetRequestSID |
| { |
| SID sid ('11'O), |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| ECUResetRequestType resetType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| |
| type record ECUResetResponseSID |
| { |
| SID sid ('51'O), |
| BIT1 reserved ('0'B), |
| ECUResetResponseType resetType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| // Security Access |
| type BIT7 SecurityAccessType |
| |
| type record RequestSeedRequest0 { |
| SecurityAccessType securityAccessType ('0000001'B), |
| octetstring securityAccessDataRecord |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record SendKeyRequest0 { |
| SecurityAccessType securityAccessType ('0000010'B), |
| octetstring securityKey |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record RequestSeedRequest1 { |
| SecurityAccessType securityAccessType ('0000011'B), |
| octetstring securityAccessDataRecord |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record SendKeyRequest1 { |
| SecurityAccessType securityAccessType ('0000100'B), |
| octetstring securityKey |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type union SecurityAccessRequestType |
| { |
| RequestSeedRequest0 requestSeed0, |
| SendKeyRequest0 sendKey0, |
| RequestSeedRequest1 requestSeed1, |
| SendKeyRequest1 sendKey1 |
| } |
| with {variant "TAG ( |
| requestSeed0, securityAccessType = '0000001'B; |
| sendKey0, securityAccessType = '0000010'B; |
| requestSeed1, securityAccessType = '0000011'B; |
| sendKey1, securityAccessType = '0000100'B)"; |
| variant "FIELDLENGTH(7)" |
| } |
| |
| type record SecurityAccessRequestSID |
| { |
| SID sid ('27'O), |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| SecurityAccessRequestType securityAccessType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record RequestSeedResponse0 { |
| SecurityAccessType securityAccessType ('0000001'B), |
| octetstring securitySeed |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record SendKeyResponse0 { |
| SecurityAccessType securityAccessType ('0000010'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record RequestSeedResponse1 { |
| SecurityAccessType securityAccessType ('0000011'B), |
| octetstring securitySeed |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record SendKeyResponse1 { |
| SecurityAccessType securityAccessType ('0000100'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type union SecurityAccessResponseType |
| { |
| RequestSeedResponse0 requestSeed0, |
| SendKeyResponse0 sendKey0, |
| RequestSeedResponse1 requestSeed1, |
| SendKeyResponse1 sendKey1 |
| } |
| with {variant "TAG ( |
| requestSeed0, securityAccessType = '0000001'B; |
| sendKey0, securityAccessType = '0000010'B; |
| requestSeed1, securityAccessType = '0000011'B; |
| sendKey1, securityAccessType = '0000100'B)" ; |
| variant "FIELDLENGTH(7)" |
| } |
| |
| type record SecurityAccessResponseSID |
| { |
| SID sid ('67'O), |
| BIT1 reserved ('0'B), |
| SecurityAccessResponseType securityAccessType |
| |
| } with { variant "FIELDORDER(msb)" }; |
| |
| //Communication Control |
| type BIT7 ControlType |
| |
| type enumerated e_ControlType{ |
| EnableRxAndTx (0), |
| EnableRxAndDisableTx (1), |
| DisableRxAndEnableTx (2), |
| DisableRxAndTx (3), |
| EnableRxAndDisableTxWithEnhancedAddressInformation (4), |
| EnableRxAndTxWithEnhancedAddressInformation (5) |
| } with {variant "FIELDLENGTH(7)"} |
| |
| type enumerated e_DisableEnable{ |
| DisableEnableSpecifiedCommunicationType (0), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber1 (1), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber2 (2), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber3 (3), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber4 (4), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber5 (5), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber6 (6), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber7 (7), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber8 (8), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber9 (9), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber10 (10), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber11 (11), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber12 (12), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber13 (13), |
| DisableEnableSpecificSubnetIdentifiedBySubnetNumber14 (14), |
| DisableEnableNetworkWhichRequestIsReceivedOn (15) |
| } with {variant "FIELDLENGTH(4)"} |
| |
| type enumerated e_CommunicationMessages{ |
| normalMessages (1), |
| networkManagement (2) |
| } with {variant "FIELDLENGTH(2)"} |
| |
| type record CommunicationType { |
| e_DisableEnable disableEnable, |
| BIT2 reserved ('00'B), |
| e_CommunicationMessages communicationMessages |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record EnableRxAndTxRequest { |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| ControlType controlType ('0000000'B), |
| CommunicationType communicationType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record EnableRxAndDisableTxRequest { |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| ControlType controlType ('0000001'B), |
| CommunicationType communicationType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record DisableRxAndEnableTxRequest { |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| ControlType controlType ('0000010'B), |
| CommunicationType communicationType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record DisableRxAndTxRequest { |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| ControlType controlType ('0000011'B), |
| CommunicationType communicationType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type OCT2 NodeIdentificationNumber |
| |
| type record EnableRxAndDisableTxWithEnhancedAddressInformationRequest { |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| ControlType controlType ('0000100'B), |
| CommunicationType communicationType, |
| NodeIdentificationNumber nodeIdentificationNumber |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type record EnableRxAndTxWithEnhancedAddressInformationRequest { |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| ControlType controlType ('0000101'B), |
| CommunicationType communicationType, |
| NodeIdentificationNumber nodeIdentificationNumber |
| } with { variant "FIELDORDER(msb)" }; |
| |
| |
| type union CommunicationControlRequestType |
| { |
| EnableRxAndTxRequest enableRxAndTxRequest, |
| EnableRxAndDisableTxRequest enableRxAndDisableTxRequest, |
| DisableRxAndEnableTxRequest disableRxAndEnableTxRequest, |
| DisableRxAndTxRequest disableRxAndTxRequest, |
| EnableRxAndDisableTxWithEnhancedAddressInformationRequest enableRxAndDisableTxWithEnhancedAddressInformationRequest, |
| EnableRxAndTxWithEnhancedAddressInformationRequest enableRxAndTxWithEnhancedAddressInformationRequest |
| } |
| with {variant "TAG ( |
| enableRxAndTxRequest, controlType = '0000000'B; |
| enableRxAndDisableTxRequest, controlType = '0000001'B; |
| disableRxAndEnableTxRequest, controlType = '0000010'B; |
| disableRxAndTxRequest, controlType = '0000011'B; |
| enableRxAndDisableTxWithEnhancedAddressInformationRequest, controlType = '0000100'B; |
| enableRxAndTxWithEnhancedAddressInformationRequest, controlType = '0000101'B)" |
| } |
| |
| type record CommunicationControlRequestSID |
| { |
| SID sid ('28'O), |
| CommunicationControlRequestType communicationControlRequestType |
| } with { variant "FIELDORDER(msb)" }; |
| |
| |
| type record CommunicationControlResponseSID |
| { |
| SID sid ('68'O), |
| BIT1 reserved ('0'B), |
| e_ControlType controlType |
| |
| } with { variant "FIELDORDER(msb)" }; |
| |
| |
| // Tester Present |
| |
| type record TesterPresentRequestSID |
| { |
| SID sid ('3E'O), |
| SuppressPosRspMsgIndicationBitType suppressPosRspMsgIndicationBit, |
| BIT7 zero ('0000000'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| |
| |
| type record TesterPresentResponseSID |
| { |
| SID sid ('7E'O), |
| BIT1 reserved ('0'B), |
| BIT7 zero ('0000000'B) |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type OCT2 ServiceIdentifier |
| |
| // here are examples of ReadDataByIdentifier services |
| |
| type record ReadDataByIdentifierRequest1 |
| { |
| ServiceIdentifier identifier ('8000'O) |
| } with { variant "" }; |
| |
| type record ReadDataByIdentifierRequest2 |
| { |
| ServiceIdentifier identifier ('8001'O) |
| } with { variant "" }; |
| |
| type record ReadDataByIdentifierRequest3 |
| { |
| ServiceIdentifier identifier ('8002'O) |
| } with { variant "" }; |
| |
| type record ReadDataByIdentifierRequestSID |
| { |
| SID sid ('22'O), |
| ReadDataByIdentifierRequest readDataByIdentifierRequest |
| } with { variant "" }; |
| |
| type union ReadDataByIdentifierRequest |
| { |
| ReadDataByIdentifierRequest1 readDataByIdentifier1, |
| ReadDataByIdentifierRequest2 readDataByIdentifier2, |
| ReadDataByIdentifierRequest3 readDataByIdentifier3 |
| } |
| with {variant "TAG ( |
| readDataByIdentifier1, identifier = '8000'O; |
| readDataByIdentifier2, identifier = '8001'O; |
| readDataByIdentifier3, identifier = '8002'O; |
| ) " |
| } |
| |
| type record ReadDataByIdentifierResponse1 |
| { |
| ServiceIdentifier identifier ('8000'O), |
| octetstring readDataByIdentifierResponse |
| } with { variant "" }; |
| |
| type record ReadDataByIdentifierResponse2 |
| { |
| ServiceIdentifier identifier ('8001'O), |
| octetstring readDataByIdentifierResponse |
| } with { variant "" }; |
| |
| type record ReadDataByIdentifierResponse3 |
| { |
| ServiceIdentifier identifier ('8002'O), |
| octetstring readDataByIdentifierResponse |
| } with { variant "" }; |
| |
| type record ReadDataByIdentifierResponseSID |
| { |
| SID sid ('62'O), |
| ReadDataByIdentifierResponse readDataByIdentifierResponse |
| } with { variant "" }; |
| |
| type union ReadDataByIdentifierResponse |
| |
| { |
| ReadDataByIdentifierResponse1 readDataByIdentifier1, |
| ReadDataByIdentifierResponse2 readDataByIdentifier2, |
| ReadDataByIdentifierResponse3 readDataByIdentifier3 |
| } |
| with {variant "TAG ( |
| readDataByIdentifier1, identifier = '8000'O; |
| readDataByIdentifier2, identifier = '8001'O; |
| readDataByIdentifier3, identifier = '8002'O |
| ) " |
| } |
| // here are examples of WriteDataByIdentifier services |
| |
| type record WriteDataByIdentifierRequest1 |
| { |
| ServiceIdentifier identifier ('8000'O), |
| octetstring dataRecord |
| } with { variant "" }; |
| |
| type record WriteDataByIdentifierRequest2 |
| { |
| ServiceIdentifier identifier ('8001'O), |
| octetstring dataRecord |
| } with { variant "" }; |
| |
| type record WriteDataByIdentifierRequest3 |
| { |
| ServiceIdentifier identifier ('8002'O), |
| octetstring dataRecord |
| } with { variant "" }; |
| |
| type union WriteDataByIdentifierRequest |
| { |
| WriteDataByIdentifierRequest1 writeDataByIdentifier1, |
| WriteDataByIdentifierRequest2 writeDataByIdentifier2, |
| WriteDataByIdentifierRequest3 writeDataByIdentifier3 |
| } |
| with {variant "TAG ( |
| writeDataByIdentifier1, identifier = '8000'O; |
| writeDataByIdentifier2, identifier = '8001'O; |
| writeDataByIdentifier3, identifier = '8002'O |
| ) " |
| } |
| |
| type record WriteDataByIdentifierRequestSID |
| { |
| SID sid ('2E'O), |
| WriteDataByIdentifierRequest writeDataByIdentifierRequest |
| } with { variant "" }; |
| |
| type record WriteDataByIdentifierResponse1 |
| { |
| ServiceIdentifier identifier ('8000'O) |
| } with { variant "" }; |
| |
| type record WriteDataByIdentifierResponse2 |
| { |
| ServiceIdentifier identifier ('8001'O) |
| } with { variant "" }; |
| |
| type record WriteDataByIdentifierResponse3 |
| { |
| ServiceIdentifier identifier ('8002'O) |
| } with { variant "" }; |
| |
| type record WriteDataByIdentifierResponseSID |
| { |
| SID sid ('6E'O), |
| WriteDataByIdentifierResponse writeDataByIdentifierResponse |
| } with { variant "" }; |
| |
| type union WriteDataByIdentifierResponse |
| { |
| WriteDataByIdentifierResponse1 writeDataByIdentifier1, |
| WriteDataByIdentifierResponse2 writeDataByIdentifier2, |
| WriteDataByIdentifierResponse3 writeDataByIdentifier3 |
| } |
| with {variant "TAG ( |
| writeDataByIdentifier1, identifier = '8000'O; |
| writeDataByIdentifier2, identifier = '8001'O; |
| writeDataByIdentifier3, identifier = '8002'O |
| ) " |
| } |
| |
| type enumerated e_RequestSID { |
| diagnosticSessionControl ('10'O), |
| ecuReset ('11'O), |
| clearDiagnosticInformation ('14'O), |
| readDTCInformation ('19'O), |
| readDataByIdentifier ('22'O), |
| readMemoryByAddress ('23'O), |
| readScalingDataByIdentifier ('24'O), |
| securityAccess ('27'O), |
| communicationControl ('28'O), |
| readDataByPeriodicIdentifier ('2A'O), |
| dynamicallyDefineDataIdentifier ('2C'O), |
| writeDataByIdentifier ('2E'O), |
| inputOutputControlByIdentifier ('2F'O), |
| routineControl ('31'O), |
| requestDownload ('34'O), |
| requestUpload ('35'O), |
| transferData ('36'O), |
| requestTransferExit ('37'O), |
| requestFileTransfer ('38'O), |
| writeMemoryByAddress ('3D'O), |
| testerPresent ('3E'O), |
| accessTimingParameter ('83'O), |
| securedDataTransmission ('84'O), |
| controlDTCSetting ('85'O), |
| responseOnEvent ('86'O), |
| linkControl ('87'O)} |
| with {variant "PADDING(octet)" }; |
| |
| type enumerated e_ResponseCode { |
| generalReject ('10'O), |
| serviceNotSupported ('11'O), |
| subfunctionNotSupported ('12'O), |
| incorrectMessageLengthOrInvalidFormat ('13'O), |
| responseTooLong ('14'O), |
| busyRepeatRequest ('21'O), |
| conditionsNotCorrect ('22'O), |
| isosarReserved35 ('23'O), |
| requestSequenceError ('24'O), |
| noResponseFromSubnetComponent ('25'O), |
| failurePreventsExecutionOfRequestedAction ('26'O), |
| requestOutOfRange ('31'O), |
| isosarReserved50 ('32'O), |
| securityAccessDenied ('33'O), |
| isosarReserved52 ('34'O), |
| invalidKey ('35'O), |
| exceededNumberOfAttempts ('36'O), |
| requiredTimeDelayNotExpired ('37'O), |
| uploadDownloadNotAccepted ('70'O), |
| transferDataSuspended ('71'O), |
| generalProgrammingFailure ('72'O), |
| wrongBlockSequenceCounter ('73'O), |
| requestCorrectlyReceivedResponsePending ('78'O), |
| subfunctionNotSupportedInActiveSession ('7E'O), |
| serviceNotSupportedInActiveSession ('7F'O), |
| rpmTooHigh ('81'O), |
| rpmTooLow ('82'O), |
| engineIsRunning ('83'O), |
| engineIsNotRunning ('84'O), |
| engineRunTimeTooLow ('85'O), |
| temperatureTooHigh ('86'O), |
| temperatureTooLow ('87'O), |
| vehicleSpeedTooHigh ('88'O), |
| vehicleSpeedTooLow ('89'O), |
| throttle_PedalTooHigh ('8A'O), |
| throttle_PedalTooLow ('8B'O), |
| transmissionRangeNotInNeutral ('8C'O), |
| transmissionRangeNotInGear ('8D'O), |
| brakeSwitchesNotClosed ('8F'O), |
| shifterLeverNotInPark ('90'O), |
| torqueConverterClutchLocked ('91'O), |
| voltageTooHigh ('92'O), |
| voltageTooLow ('93'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF0 ('F0'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF1 ('F1'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF2 ('F2'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF3 ('F3'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF4 ('F4'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF5 ('F5'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF6 ('F6'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF7 ('F7'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF8 ('F8'O), |
| vehicleManufacturerSpecificConditionsNotCorrectF9 ('F9'O), |
| vehicleManufacturerSpecificConditionsNotCorrectFA ('FA'O), |
| vehicleManufacturerSpecificConditionsNotCorrectFB ('FB'O), |
| vehicleManufacturerSpecificConditionsNotCorrectFC ('FC'O), |
| vehicleManufacturerSpecificConditionsNotCorrectFD ('FD'O), |
| vehicleManufacturerSpecificConditionsNotCorrectFE ('FE'O)} |
| with {variant "PADDING(octet)" }; |
| |
| type record NegativeResponseCodeSID |
| { |
| SID sid ('7F'O), |
| e_RequestSID requestSID, |
| e_ResponseCode responseCode |
| } with { variant "FIELDORDER(msb)" }; |
| |
| type union TopLevelMessage_UDS_requests |
| { |
| DiagnosticSessionControlRequestSID diagnosticSessionControlRequestSID, |
| ECUResetRequestSID ecuResetRequestSID, |
| SecurityAccessRequestSID securityAccessRequestSID, |
| CommunicationControlRequestSID communicationControlRequestSID, |
| TesterPresentRequestSID testerPresentRequestSID, |
| ReadDataByIdentifierRequestSID readDataByIdentifierRequestSID, |
| WriteDataByIdentifierRequestSID writeDataByIdentifierRequestSID |
| } |
| with {variant "TAG ( |
| diagnosticSessionControlRequestSID, sid = '10'O; |
| ecuResetRequestSID, sid = '11'O; |
| securityAccessRequestSID, sid = '27'O; |
| communicationControlRequestSID, sid = '28'O; |
| testerPresentRequestSID, sid = '3E'O; |
| readDataByIdentifierRequestSID, sid = '22'O; |
| writeDataByIdentifierRequestSID, sid = '2E'O |
| )" |
| } |
| |
| type union TopLevelMessage_UDS_responses |
| { |
| DiagnosticSessionControlResponseSID diagnosticSessionControlResponseSID, |
| ECUResetResponseSID ecuResetResponseSID, |
| SecurityAccessResponseSID securityAccessResponseSID, |
| CommunicationControlResponseSID communicationControlResponseSID, |
| TesterPresentResponseSID testerPresentResponseSID, |
| ReadDataByIdentifierResponseSID readDataByIdentifierResponseSID, |
| WriteDataByIdentifierResponseSID writeDataByIdentifierResponseSID, |
| NegativeResponseCodeSID negativeResponseCodeSID |
| |
| } |
| with {variant "TAG ( |
| diagnosticSessionControlResponseSID, sid = '50'O; |
| ecuResetResponseSID, sid = '51'O; |
| securityAccessResponseSID, sid = '67'O; |
| communicationControlResponseSID, sid = '68'O; |
| testerPresentResponseSID, sid = '7E'O; |
| readDataByIdentifierResponseSID, sid = '62'O; |
| writeDataByIdentifierResponseSID, sid = '6E'O; |
| negativeResponseCodeSID, sid = '7F'O |
| )" |
| } |
| |
| } with { encode "RAW" } |