scapy.contrib.automotive.kwp
- class scapy.contrib.automotive.kwp.KWP(_pkt, /, *, service=0)[source]
Bases:
ISOTP
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SERVICE | +-+-+-+-+-+-+-+-+ Fig. KWP
service
0
- payload_guess
Possible sublayers:
KWP_CDIPR
,KWP_CDI
,KWP_CDTCSPR
,KWP_CDTCS
,KWP_DDLIPR
,KWP_DDLI
,KWP_DNMTPR
,KWP_DNMT
,KWP_ENMTPR
,KWP_ENMT
,KWP_ERPR
,KWP_ER
,KWP_IOCBLIPR
,KWP_IOCBLI
,KWP_NR
,KWP_RDBIPR
,KWP_RDBI
,KWP_RDBLIPR
,KWP_RDBLI
,KWP_RDPR
,KWP_RD
,KWP_RECUIPR
,KWP_RECUI
,KWP_RMBAPR
,KWP_RMBA
,KWP_ROEPR
,KWP_ROE
,KWP_RRRBLIPR
,KWP_RRRBLI
,KWP_RSODTCPR
,KWP_RSODTC
,KWP_RTEPR
,KWP_RTE
,KWP_RUPR
,KWP_RU
,KWP_SAPR
,KWP_SA
,KWP_SDSPR
,KWP_SDS
,KWP_SRBLIPR
,KWP_SRBLI
,KWP_STRBLIPR
,KWP_STRBLI
,KWP_TDPR
,KWP_TD
,KWP_TPPR
,KWP_TP
,KWP_WDBIPR
,KWP_WDBI
,KWP_WDBLIPR
,KWP_WDBLI
,KWP_WMBAPR
,KWP_WMBA
- services: Dict[int, str] = {16: 'StartDiagnosticSession', 17: 'ECUReset', 20: 'ClearDiagnosticInformation', 23: 'ReadStatusOfDiagnosticTroubleCodes', 24: 'ReadDiagnosticTroubleCodesByStatus', 26: 'ReadECUIdentification', 33: 'ReadDataByLocalIdentifier', 34: 'ReadDataByIdentifier', 35: 'ReadMemoryByAddress', 39: 'SecurityAccess', 40: 'DisableNormalMessageTransmission', 41: 'EnableNormalMessageTransmission', 44: 'DynamicallyDefineLocalIdentifier', 46: 'WriteDataByIdentifier', 48: 'InputOutputControlByLocalIdentifier', 49: 'StartRoutineByLocalIdentifier', 50: 'StopRoutineByLocalIdentifier', 51: 'RequestRoutineResultsByLocalIdentifier', 52: 'RequestDownload', 53: 'RequestUpload', 54: 'TransferData', 55: 'RequestTransferExit', 59: 'WriteDataByLocalIdentifier', 61: 'WriteMemoryByAddress', 62: 'TesterPresent', 80: 'StartDiagnosticSessionPositiveResponse', 81: 'ECUResetPositiveResponse', 84: 'ClearDiagnosticInformationPositiveResponse', 87: 'ReadStatusOfDiagnosticTroubleCodesPositiveResponse', 88: 'ReadDiagnosticTroubleCodesByStatusPositiveResponse', 90: 'ReadECUIdentificationPositiveResponse', 97: 'ReadDataByLocalIdentifierPositiveResponse', 98: 'ReadDataByIdentifierPositiveResponse', 99: 'ReadMemoryByAddressPositiveResponse', 103: 'SecurityAccessPositiveResponse', 104: 'DisableNormalMessageTransmissionPositiveResponse', 105: 'EnableNormalMessageTransmissionPositiveResponse', 108: 'DynamicallyDefineLocalIdentifierPositiveResponse', 110: 'WriteDataByIdentifierPositiveResponse', 112: 'InputOutputControlByLocalIdentifierPositiveResponse', 113: 'StartRoutineByLocalIdentifierPositiveResponse', 114: 'StopRoutineByLocalIdentifierPositiveResponse', 115: 'RequestRoutineResultsByLocalIdentifierPositiveResponse', 116: 'RequestDownloadPositiveResponse', 117: 'RequestUploadPositiveResponse', 118: 'TransferDataPositiveResponse', 119: 'RequestTransferExitPositiveResponse', 123: 'WriteDataByLocalIdentifierPositiveResponse', 125: 'WriteMemoryByAddressPositiveResponse', 126: 'TesterPresentPositiveResponse', 127: 'NegativeResponse', 133: 'ControlDTCSetting', 134: 'ResponseOnEvent', 197: 'ControlDTCSettingPositiveResponse', 198: 'ResponseOnEventPositiveResponse'}
- class scapy.contrib.automotive.kwp.KWP_CDI(_pkt, /, *, groupOfDTC=0)[source]
Bases:
Packet
- DTCGroups = {0: 'allPowertrainDTCs', 16384: 'allChassisDTCs', 32768: 'allBodyDTCs', 49152: 'allNetworkDTCs', 65280: 'allDTCs'}
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_CDIPR(_pkt, /, *, groupOfDTC=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_CDTCS(_pkt, /, *, responseRequired=1, groupOfDTC=0, DTCSettingMode=0)[source]
Bases:
Packet
- DTCGroups = {0: 'allPowertrainDTCs', 16384: 'allChassisDTCs', 32768: 'allBodyDTCs', 49152: 'allNetworkDTCs', 65280: 'allDTCs'}
- DTCSettingModes = {0: 'Reserved', 1: 'on', 2: 'off'}
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |RESPONSEREQUIRE| GROUPOFDTC | DTCSETTINGMODE| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_CDTCS
responseRequired
1
groupOfDTC
0
DTCSettingMode
0
- responseTypes = {1: 'responseRequired', 2: 'noResponse'}
- class scapy.contrib.automotive.kwp.KWP_DDLI(_pkt, /, *, dynamicallyDefineLocalIdentifier=0, definitionMode=0, dataRecord=b'')[source]
Bases:
Packet
- aliastypes
- definitionModes = {1: 'defineByLocalIdentifier', 2: 'defineByMemoryAddress', 3: 'defineByIdentifier', 4: 'clearDynamicallyDefinedLocalIdentifier'}
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |DYNAMICALLYDEFI| DEFINITIONMODE| DATARECORD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_DDLI
dynamicallyDefineLocalIdentifier
0
definitionMode
0
dataRecord
b''
- class scapy.contrib.automotive.kwp.KWP_DDLIPR(_pkt, /, *, dynamicallyDefineLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_DNMT(_pkt, /, *, responseRequired=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |RESPONSEREQUIRE| +-+-+-+-+-+-+-+-+ Fig. KWP_DNMT
responseRequired
0
- responseTypes = {1: 'responseRequired', 2: 'noResponse'}
- class scapy.contrib.automotive.kwp.KWP_ENMT(_pkt, /, *, responseRequired=1)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |RESPONSEREQUIRE| +-+-+-+-+-+-+-+-+ Fig. KWP_ENMT
responseRequired
1
- responseTypes = {1: 'responseRequired', 2: 'noResponse'}
- class scapy.contrib.automotive.kwp.KWP_ER(_pkt, /, *, resetMode=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RESETMODE | +-+-+-+-+-+-+-+-+ Fig. KWP_ER
resetMode
0
- resetModes = {0: 'reserved', 1: 'powerOnReset', 130: 'nonvolatileMemoryReset'}
- class scapy.contrib.automotive.kwp.KWP_IOCBLI(_pkt, /, *, localIdentifier=0, inputOutputControlParameter=0, controlState=b'')[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |LOCALIDENTIFIER|INPUTOUTPUTCONT| CONTROLSTATE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_IOCBLI
localIdentifier
0
inputOutputControlParameter
0
controlState
b''
- inputOutputControlParameters = {0: 'Return Control to ECU', 1: 'Report Current State', 4: 'Reset to Default', 5: 'Freeze Current State', 7: 'Short Term Adjustment', 8: 'Long Term Adjustment'}
- class scapy.contrib.automotive.kwp.KWP_IOCBLIPR(_pkt, /, *, localIdentifier=0, inputOutputControlParameter=0, controlState=b'')[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |LOCALIDENTIFIER|INPUTOUTPUTCONT| CONTROLSTATE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_IOCBLIPR
localIdentifier
0
inputOutputControlParameter
0
controlState
b''
- class scapy.contrib.automotive.kwp.KWP_NR(_pkt, /, *, requestServiceId=0, negativeResponseCode=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |REQUESTSERVICEI|NEGATIVERESPONS| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_NR
requestServiceId
0
negativeResponseCode
0
- negativeResponseCodes = {0: 'positiveResponse', 16: 'generalReject', 17: 'serviceNotSupported', 18: 'subFunctionNotSupported-InvalidFormat', 33: 'busyRepeatRequest', 34: 'conditionsNotCorrect-RequestSequenceError', 35: 'routineNotComplete', 49: 'requestOutOfRange', 51: 'securityAccessDenied-SecurityAccessRequested', 53: 'invalidKey', 54: 'exceedNumberOfAttempts', 55: 'requiredTimeDelayNotExpired', 64: 'downloadNotAccepted', 80: 'uploadNotAccepted', 113: 'transferSuspended', 120: 'requestCorrectlyReceived-ResponsePending', 128: 'subFunctionNotSupportedInActiveDiagnosticSession', 154: 'dataDecompressionFailed', 155: 'dataDecryptionFailed', 160: 'EcuNotResponding', 161: 'EcuAddressUnknown'}
- class scapy.contrib.automotive.kwp.KWP_RD(_pkt, /, *, memoryAddress=0, compression=0, encryption=0, uncompressedMemorySize=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MEMORYADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |COMPRES|ENCRYPT| UNCOMPRESSEDMEMORYSIZE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. KWP_RD
memoryAddress
0
compression
BitField
(4 bits)0
encryption
BitField
(4 bits)0
uncompressedMemorySize
0
- class scapy.contrib.automotive.kwp.KWP_RDBI(_pkt, /, *, identifier=0)[source]
Bases:
Packet
- aliastypes
- dataIdentifiers = {}
- class scapy.contrib.automotive.kwp.KWP_RDBIPR(_pkt, /, *, identifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RDBLI(_pkt, /, *, recordLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |RECORDLOCALIDEN| +-+-+-+-+-+-+-+-+ Fig. KWP_RDBLI
recordLocalIdentifier
0
- localIdentifiers = {224: 'Development Data', 225: 'ECU Serial Number', 226: 'DBCom Data', 227: 'Operating System Version', 228: 'Ecu Reprogramming Identification', 229: 'Vehicle Information', 230: 'Flash Info 1', 231: 'Flash Info 2', 232: 'System Diagnostic general parameter data', 233: 'System Diagnostic global parameter data', 234: 'Ecu Configuration', 235: 'Diagnostic Protocol Information'}
- class scapy.contrib.automotive.kwp.KWP_RDBLIPR(_pkt, /, *, recordLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RDPR(_pkt, /, *, maxNumberOfBlockLength=b'')[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RECUI(_pkt, /, *, localIdentifier=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |LOCALIDENTIFIER| +-+-+-+-+-+-+-+-+ Fig. KWP_RECUI
localIdentifier
0
- localIdentifiers = {134: 'DCS ECU Identification', 135: 'DCX / MMC ECU Identification', 136: 'VIN (Original)', 137: 'Diagnostic Variant Code', 144: 'VIN (Current)', 150: 'Calibration Identification', 151: 'Calibration Verification Number', 152: 'ECU Data Fingerprint', 154: 'ECU Code Fingerprint', 156: 'ECU Code Software Identification', 157: 'ECU Data Software Identification', 158: 'ECU Boot Software Identification', 159: 'ECU Boot Fingerprint'}
- class scapy.contrib.automotive.kwp.KWP_RECUIPR(_pkt, /, *, localIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RMBA(_pkt, /, *, memoryAddress=0, memorySize=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MEMORYADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MEMORYSIZE | +-+-+-+-+-+-+-+-+ Fig. KWP_RMBA
memoryAddress
0
memorySize
0
- class scapy.contrib.automotive.kwp.KWP_RMBAPR(_pkt, /, *, dataRecord=b'')[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_ROE(_pkt, /, *, responseRequired=1, eventWindowTime=0, eventType=0, eventParameter=0, serviceToRespond=0, serviceParameter=0)[source]
Bases:
Packet
- aliastypes
- eventTypes = {128: 'reportActivatedEvents', 129: 'stopResponseOnEvent', 130: 'onNewDTC', 131: 'onTimerInterrupt', 132: 'onChangeOfRecordValue', 160: 'onComparisonOfValues'}
- eventWindowTimes = {0: 'reserved', 1: 'testerPresentRequired', 2: 'infiniteTimeToResponse', 128: 'noEventWindow'}
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |RESPONSEREQUIRE|EVENTWINDOWTIME| EVENTTYPE | EVENTPARAMETER| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |SERVICETORESPON|SERVICEPARAMETE| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_ROE
responseRequired
1
eventWindowTime
0
eventType
0
eventParameter
0
serviceToRespond
0
serviceParameter
0
- responseTypes = {1: 'responseRequired', 2: 'noResponse'}
- class scapy.contrib.automotive.kwp.KWP_ROEPR(_pkt, /, *, numberOfActivatedEvents=0, eventWindowTime=0, eventType=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |NUMBEROFACTIVAT|EVENTWINDOWTIME| EVENTTYPE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_ROEPR
numberOfActivatedEvents
0
eventWindowTime
0
eventType
0
- class scapy.contrib.automotive.kwp.KWP_RRRBLI(_pkt, /, *, routineLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RRRBLIPR(_pkt, /, *, routineLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RSODTC(_pkt, /, *, groupOfDTC=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RSODTCPR(_pkt, /, *, numberOfDTC=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RTE(_pkt, /, *, transferDataRequestParameter=b'')[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RTEPR(_pkt, /, *, transferDataRequestParameter=b'')[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_RU(_pkt, /, *, memoryAddress=0, compression=0, encryption=0, uncompressedMemorySize=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MEMORYADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |COMPRES|ENCRYPT| UNCOMPRESSEDMEMORYSIZE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+ Fig. KWP_RU
memoryAddress
0
compression
BitField
(4 bits)0
encryption
BitField
(4 bits)0
uncompressedMemorySize
0
- class scapy.contrib.automotive.kwp.KWP_RUPR(_pkt, /, *, maxNumberOfBlockLength=b'')[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_SA(_pkt, /, *, accessMode=0, key=b'')[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_SAPR(_pkt, /, *, accessMode=0, seed=b'')[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ACCESSMODE | SEED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_SAPR
accessMode
0
seed
StrField
(Cond)b''
- class scapy.contrib.automotive.kwp.KWP_SDS(_pkt, /, *, diagnosticSession=0)[source]
Bases:
Packet
- aliastypes
- diagnosticSessionTypes = {129: 'defaultSession', 133: 'programmingSession', 137: 'standBySession', 144: 'EcuPassiveSession', 146: 'extendedDiagnosticSession'}
- class scapy.contrib.automotive.kwp.KWP_SDSPR(_pkt, /, *, diagnosticSession=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_SRBLI(_pkt, /, *, routineLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |ROUTINELOCALIDE| +-+-+-+-+-+-+-+-+ Fig. KWP_SRBLI
routineLocalIdentifier
0
- routineLocalIdentifiers = {224: 'FlashEraseRoutine', 225: 'FlashCheckRoutine', 226: 'Tell-TaleRetentionStack', 227: 'RequestDTCsFromShadowErrorMemory', 228: 'RequestEnvironmentDataFromShadowErrorMemory', 229: 'RequestEventInformation', 230: 'RequestEventEnvironmentData', 231: 'RequestSoftwareModuleInformation', 232: 'ClearTell-TaleRetentionStack', 233: 'ClearEventInformation'}
- class scapy.contrib.automotive.kwp.KWP_SRBLIPR(_pkt, /, *, routineLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_STRBLI(_pkt, /, *, routineLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_STRBLIPR(_pkt, /, *, routineLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_TD(_pkt, /, *, blockSequenceCounter=0, transferDataRequestParameter=b'')[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCKSEQUENCECO|TRANSFERDATAREQ| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_TD
blockSequenceCounter
0
transferDataRequestParameter
b''
- class scapy.contrib.automotive.kwp.KWP_TDPR(_pkt, /, *, blockSequenceCounter=0, transferDataRequestParameter=b'')[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |BLOCKSEQUENCECO|TRANSFERDATAREQ| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_TDPR
blockSequenceCounter
0
transferDataRequestParameter
b''
- class scapy.contrib.automotive.kwp.KWP_TP(_pkt, /, *, responseRequired=1)[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |RESPONSEREQUIRE| +-+-+-+-+-+-+-+-+ Fig. KWP_TP
responseRequired
1
- responseTypes = {1: 'responseRequired', 2: 'noResponse'}
- class scapy.contrib.automotive.kwp.KWP_TesterPresentSender(sock: ~typing.Any, pkt: ~typing.Sequence[~scapy.packet.Packet] | ~scapy.packet.Packet | ~scapy.base_classes.SetGen[~scapy.packet.Packet] | ~scapy.plist._PacketList[~scapy.packet.Packet] = <KWP service=TesterPresent |<KWP_TP responseRequired=noResponse |>>, interval: float = 2)[source]
Bases:
PeriodicSenderThread
- class scapy.contrib.automotive.kwp.KWP_WDBI(_pkt, /, *, identifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_WDBIPR(_pkt, /, *, identifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_WDBLI(_pkt, /, *, recordLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_WDBLIPR(_pkt, /, *, recordLocalIdentifier=0)[source]
Bases:
Packet
- aliastypes
- class scapy.contrib.automotive.kwp.KWP_WMBA(_pkt, /, *, memoryAddress=0, memorySize=0, dataRecord=b'')[source]
Bases:
Packet
- aliastypes
- fields_desc
Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MEMORYADDRESS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MEMORYSIZE | DATARECORD | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. KWP_WMBA
memoryAddress
0
memorySize
0
dataRecord
b''
- class scapy.contrib.automotive.kwp.KWP_WMBAPR(_pkt, /, *, memoryAddress=0)[source]
Bases:
Packet
- aliastypes