scapy.contrib.automotive.kwp

class scapy.contrib.automotive.kwp.KWP(_pkt, /, *, service=0)[source]

Bases: ISOTP

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP'>, <class 'scapy.contrib.isotp.isotp_packet.ISOTP'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) bool[source]
classmethod dispatch_hook(_pkt: bytes = b'', *args: Any, **kwargs: Any) type[source]

Dispatch to the correct KWP service class in single layer mode.

fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<XByteEnumField (KWP).service>]
hashret() bytes[source]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'service': 16}, <class 'scapy.contrib.automotive.kwp.KWP_SDS'>), ({'service': 80}, <class 'scapy.contrib.automotive.kwp.KWP_SDSPR'>), ({'service': 17}, <class 'scapy.contrib.automotive.kwp.KWP_ER'>), ({'service': 81}, <class 'scapy.contrib.automotive.kwp.KWP_ERPR'>), ({'service': 39}, <class 'scapy.contrib.automotive.kwp.KWP_SA'>), ({'service': 103}, <class 'scapy.contrib.automotive.kwp.KWP_SAPR'>), ({'service': 48}, <class 'scapy.contrib.automotive.kwp.KWP_IOCBLI'>), ({'service': 112}, <class 'scapy.contrib.automotive.kwp.KWP_IOCBLIPR'>), ({'service': 40}, <class 'scapy.contrib.automotive.kwp.KWP_DNMT'>), ({'service': 104}, <class 'scapy.contrib.automotive.kwp.KWP_DNMTPR'>), ({'service': 41}, <class 'scapy.contrib.automotive.kwp.KWP_ENMT'>), ({'service': 105}, <class 'scapy.contrib.automotive.kwp.KWP_ENMTPR'>), ({'service': 62}, <class 'scapy.contrib.automotive.kwp.KWP_TP'>), ({'service': 126}, <class 'scapy.contrib.automotive.kwp.KWP_TPPR'>), ({'service': 133}, <class 'scapy.contrib.automotive.kwp.KWP_CDTCS'>), ({'service': 197}, <class 'scapy.contrib.automotive.kwp.KWP_CDTCSPR'>), ({'service': 134}, <class 'scapy.contrib.automotive.kwp.KWP_ROE'>), ({'service': 198}, <class 'scapy.contrib.automotive.kwp.KWP_ROEPR'>), ({'service': 33}, <class 'scapy.contrib.automotive.kwp.KWP_RDBLI'>), ({'service': 97}, <class 'scapy.contrib.automotive.kwp.KWP_RDBLIPR'>), ({'service': 59}, <class 'scapy.contrib.automotive.kwp.KWP_WDBLI'>), ({'service': 123}, <class 'scapy.contrib.automotive.kwp.KWP_WDBLIPR'>), ({'service': 34}, <class 'scapy.contrib.automotive.kwp.KWP_RDBI'>), ({'service': 98}, <class 'scapy.contrib.automotive.kwp.KWP_RDBIPR'>), ({'service': 35}, <class 'scapy.contrib.automotive.kwp.KWP_RMBA'>), ({'service': 99}, <class 'scapy.contrib.automotive.kwp.KWP_RMBAPR'>), ({'service': 44}, <class 'scapy.contrib.automotive.kwp.KWP_DDLI'>), ({'service': 108}, <class 'scapy.contrib.automotive.kwp.KWP_DDLIPR'>), ({'service': 46}, <class 'scapy.contrib.automotive.kwp.KWP_WDBI'>), ({'service': 110}, <class 'scapy.contrib.automotive.kwp.KWP_WDBIPR'>), ({'service': 61}, <class 'scapy.contrib.automotive.kwp.KWP_WMBA'>), ({'service': 125}, <class 'scapy.contrib.automotive.kwp.KWP_WMBAPR'>), ({'service': 20}, <class 'scapy.contrib.automotive.kwp.KWP_CDI'>), ({'service': 84}, <class 'scapy.contrib.automotive.kwp.KWP_CDIPR'>), ({'service': 23}, <class 'scapy.contrib.automotive.kwp.KWP_RSODTC'>), ({'service': 87}, <class 'scapy.contrib.automotive.kwp.KWP_RSODTCPR'>), ({'service': 26}, <class 'scapy.contrib.automotive.kwp.KWP_RECUI'>), ({'service': 90}, <class 'scapy.contrib.automotive.kwp.KWP_RECUIPR'>), ({'service': 49}, <class 'scapy.contrib.automotive.kwp.KWP_SRBLI'>), ({'service': 113}, <class 'scapy.contrib.automotive.kwp.KWP_SRBLIPR'>), ({'service': 50}, <class 'scapy.contrib.automotive.kwp.KWP_STRBLI'>), ({'service': 114}, <class 'scapy.contrib.automotive.kwp.KWP_STRBLIPR'>), ({'service': 51}, <class 'scapy.contrib.automotive.kwp.KWP_RRRBLI'>), ({'service': 115}, <class 'scapy.contrib.automotive.kwp.KWP_RRRBLIPR'>), ({'service': 52}, <class 'scapy.contrib.automotive.kwp.KWP_RD'>), ({'service': 116}, <class 'scapy.contrib.automotive.kwp.KWP_RDPR'>), ({'service': 53}, <class 'scapy.contrib.automotive.kwp.KWP_RU'>), ({'service': 117}, <class 'scapy.contrib.automotive.kwp.KWP_RUPR'>), ({'service': 54}, <class 'scapy.contrib.automotive.kwp.KWP_TD'>), ({'service': 118}, <class 'scapy.contrib.automotive.kwp.KWP_TDPR'>), ({'service': 55}, <class 'scapy.contrib.automotive.kwp.KWP_RTE'>), ({'service': 119}, <class 'scapy.contrib.automotive.kwp.KWP_RTEPR'>), ({'service': 127}, <class 'scapy.contrib.automotive.kwp.KWP_NR'>)]
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, /, *, service=20, groupOfDTC=0)[source]

Bases: Packet

DTCGroups = {0: 'allPowertrainDTCs', 16384: 'allChassisDTCs', 32768: 'allBodyDTCs', 49152: 'allNetworkDTCs', 65280: 'allDTCs'}
aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_CDI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XShortEnumField (KWP_CDI).groupOfDTC>]
class scapy.contrib.automotive.kwp.KWP_CDIPR(_pkt, /, *, service=84, groupOfDTC=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_CDIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XShortEnumField (KWP_CDIPR).groupOfDTC>]
class scapy.contrib.automotive.kwp.KWP_CDTCS(_pkt, /, *, service=133, 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 = [<class 'scapy.contrib.automotive.kwp.KWP_CDTCS'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteEnumField (KWP_CDTCS).responseRequired>, <XShortEnumField (KWP_CDTCS).groupOfDTC>, <ByteEnumField (KWP_CDTCS).DTCSettingMode>]
responseTypes = {1: 'responseRequired', 2: 'noResponse'}
class scapy.contrib.automotive.kwp.KWP_CDTCSPR(_pkt, /, *, service=197)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_CDTCSPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>]
class scapy.contrib.automotive.kwp.KWP_DDLI(_pkt, /, *, service=44, dynamicallyDefineLocalIdentifier=0, definitionMode=0, dataRecord=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_DDLI'>, <class 'scapy.packet.Packet'>]
definitionModes = {1: 'defineByLocalIdentifier', 2: 'defineByMemoryAddress', 3: 'defineByIdentifier', 4: 'clearDynamicallyDefinedLocalIdentifier'}
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteField (KWP_DDLI).dynamicallyDefineLocalIdentifier>, <ByteEnumField (KWP_DDLI).definitionMode>, <StrField (KWP_DDLI).dataRecord>]
class scapy.contrib.automotive.kwp.KWP_DDLIPR(_pkt, /, *, service=108, dynamicallyDefineLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_DDLIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteField (KWP_DDLIPR).dynamicallyDefineLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_DNMT(_pkt, /, *, service=40, responseRequired=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_DNMT'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteEnumField (KWP_DNMT).responseRequired>]
responseTypes = {1: 'responseRequired', 2: 'noResponse'}
class scapy.contrib.automotive.kwp.KWP_DNMTPR(_pkt, /, *, service=104)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_DNMTPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>]
class scapy.contrib.automotive.kwp.KWP_ENMT(_pkt, /, *, service=41, responseRequired=1)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_ENMT'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteEnumField (KWP_ENMT).responseRequired>]
responseTypes = {1: 'responseRequired', 2: 'noResponse'}
class scapy.contrib.automotive.kwp.KWP_ENMTPR(_pkt, /, *, service=105)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_ENMTPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>]
class scapy.contrib.automotive.kwp.KWP_ER(_pkt, /, *, service=17, resetMode=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_ER'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteEnumField (KWP_ER).resetMode>]
resetModes = {0: 'reserved', 1: 'powerOnReset', 130: 'nonvolatileMemoryReset'}
class scapy.contrib.automotive.kwp.KWP_ERPR(_pkt, /, *, service=81)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_ERPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>]
class scapy.contrib.automotive.kwp.KWP_IOCBLI(_pkt, /, *, service=48, localIdentifier=0, inputOutputControlParameter=0, controlState=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_IOCBLI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteField (KWP_IOCBLI).localIdentifier>, <XByteEnumField (KWP_IOCBLI).inputOutputControlParameter>, <StrField (KWP_IOCBLI).controlState>]
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, /, *, service=112, localIdentifier=0, inputOutputControlParameter=0, controlState=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_IOCBLIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteField (KWP_IOCBLIPR).localIdentifier>, <XByteEnumField (KWP_IOCBLIPR).inputOutputControlParameter>, <StrField (KWP_IOCBLIPR).controlState>]
class scapy.contrib.automotive.kwp.KWP_NR(_pkt, /, *, service=127, requestServiceId=0, negativeResponseCode=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_NR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <scapy.fields.MayEnd object>, <ByteEnumField (KWP_NR).negativeResponseCode>]
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, /, *, service=52, memoryAddress=0, compression=0, encryption=0, uncompressedMemorySize=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RD'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <X3BytesField (KWP_RD).memoryAddress>, <BitField (KWP_RD).compression>, <BitField (KWP_RD).encryption>, <X3BytesField (KWP_RD).uncompressedMemorySize>]
class scapy.contrib.automotive.kwp.KWP_RDBI(_pkt, /, *, service=34, identifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RDBI'>, <class 'scapy.packet.Packet'>]
dataIdentifiers = {}
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XShortEnumField (KWP_RDBI).identifier>]
class scapy.contrib.automotive.kwp.KWP_RDBIPR(_pkt, /, *, service=98, identifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RDBIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XShortEnumField (KWP_RDBIPR).identifier>]
class scapy.contrib.automotive.kwp.KWP_RDBLI(_pkt, /, *, service=33, recordLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RDBLI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_RDBLI).recordLocalIdentifier>]
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, /, *, service=97, recordLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RDBLIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_RDBLIPR).recordLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_RDPR(_pkt, /, *, service=116, maxNumberOfBlockLength=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RDPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <StrField (KWP_RDPR).maxNumberOfBlockLength>]
class scapy.contrib.automotive.kwp.KWP_RECUI(_pkt, /, *, service=26, localIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RECUI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_RECUI).localIdentifier>]
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, /, *, service=90, localIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RECUIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_RECUIPR).localIdentifier>]
class scapy.contrib.automotive.kwp.KWP_RMBA(_pkt, /, *, service=35, memoryAddress=0, memorySize=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RMBA'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <X3BytesField (KWP_RMBA).memoryAddress>, <ByteField (KWP_RMBA).memorySize>]
class scapy.contrib.automotive.kwp.KWP_RMBAPR(_pkt, /, *, service=99, dataRecord=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RMBAPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <StrField (KWP_RMBAPR).dataRecord>]
class scapy.contrib.automotive.kwp.KWP_ROE(_pkt, /, *, service=134, responseRequired=1, eventWindowTime=0, eventType=0, eventParameter=0, serviceToRespond=0, serviceParameter=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_ROE'>, <class 'scapy.packet.Packet'>]
eventTypes = {128: 'reportActivatedEvents', 129: 'stopResponseOnEvent', 130: 'onNewDTC', 131: 'onTimerInterrupt', 132: 'onChangeOfRecordValue', 160: 'onComparisonOfValues'}
eventWindowTimes = {0: 'reserved', 1: 'testerPresentRequired', 2: 'infiniteTimeToResponse', 128: 'noEventWindow'}
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteEnumField (KWP_ROE).responseRequired>, <ByteEnumField (KWP_ROE).eventWindowTime>, <scapy.fields.MayEnd object>, <ByteField (KWP_ROE).eventParameter>, <ByteEnumField (KWP_ROE).serviceToRespond>, <ByteField (KWP_ROE).serviceParameter>]
responseTypes = {1: 'responseRequired', 2: 'noResponse'}
class scapy.contrib.automotive.kwp.KWP_ROEPR(_pkt, /, *, service=198, numberOfActivatedEvents=0, eventWindowTime=0, eventType=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_ROEPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteField (KWP_ROEPR).numberOfActivatedEvents>, <scapy.fields.MayEnd object>, <ByteEnumField (KWP_ROEPR).eventType>]
class scapy.contrib.automotive.kwp.KWP_RRRBLI(_pkt, /, *, service=51, routineLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RRRBLI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_RRRBLI).routineLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_RRRBLIPR(_pkt, /, *, service=115, routineLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RRRBLIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_RRRBLIPR).routineLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_RSODTC(_pkt, /, *, service=23, groupOfDTC=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RSODTC'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XShortEnumField (KWP_RSODTC).groupOfDTC>]
class scapy.contrib.automotive.kwp.KWP_RSODTCPR(_pkt, /, *, service=87, numberOfDTC=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RSODTCPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteField (KWP_RSODTCPR).numberOfDTC>]
class scapy.contrib.automotive.kwp.KWP_RTE(_pkt, /, *, service=55, transferDataRequestParameter=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RTE'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <StrField (KWP_RTE).transferDataRequestParameter>]
class scapy.contrib.automotive.kwp.KWP_RTEPR(_pkt, /, *, service=119, transferDataRequestParameter=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RTEPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <StrField (KWP_RTEPR).transferDataRequestParameter>]
class scapy.contrib.automotive.kwp.KWP_RU(_pkt, /, *, service=53, memoryAddress=0, compression=0, encryption=0, uncompressedMemorySize=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RU'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <X3BytesField (KWP_RU).memoryAddress>, <BitField (KWP_RU).compression>, <BitField (KWP_RU).encryption>, <X3BytesField (KWP_RU).uncompressedMemorySize>]
class scapy.contrib.automotive.kwp.KWP_RUPR(_pkt, /, *, service=117, maxNumberOfBlockLength=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_RUPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <StrField (KWP_RUPR).maxNumberOfBlockLength>]
class scapy.contrib.automotive.kwp.KWP_SA(_pkt, /, *, service=39, accessMode=0, key=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_SA'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteField (KWP_SA).accessMode>, <scapy.fields.ConditionalField object>]
class scapy.contrib.automotive.kwp.KWP_SAPR(_pkt, /, *, service=103, accessMode=0, seed=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_SAPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteField (KWP_SAPR).accessMode>, <scapy.fields.ConditionalField object>]
class scapy.contrib.automotive.kwp.KWP_SDS(_pkt, /, *, service=16, diagnosticSession=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_SDS'>, <class 'scapy.packet.Packet'>]
diagnosticSessionTypes = {129: 'defaultSession', 133: 'programmingSession', 137: 'standBySession', 144: 'EcuPassiveSession', 146: 'extendedDiagnosticSession'}
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteEnumField (KWP_SDS).diagnosticSession>]
class scapy.contrib.automotive.kwp.KWP_SDSPR(_pkt, /, *, service=80, diagnosticSession=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_SDSPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteEnumField (KWP_SDSPR).diagnosticSession>]
class scapy.contrib.automotive.kwp.KWP_SRBLI(_pkt, /, *, service=49, routineLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_SRBLI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_SRBLI).routineLocalIdentifier>]
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, /, *, service=113, routineLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_SRBLIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_SRBLIPR).routineLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_STRBLI(_pkt, /, *, service=50, routineLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_STRBLI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_STRBLI).routineLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_STRBLIPR(_pkt, /, *, service=114, routineLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_STRBLIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_STRBLIPR).routineLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_TD(_pkt, /, *, service=54, blockSequenceCounter=0, transferDataRequestParameter=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_TD'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteField (KWP_TD).blockSequenceCounter>, <StrField (KWP_TD).transferDataRequestParameter>]
class scapy.contrib.automotive.kwp.KWP_TDPR(_pkt, /, *, service=118, blockSequenceCounter=0, transferDataRequestParameter=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_TDPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteField (KWP_TDPR).blockSequenceCounter>, <StrField (KWP_TDPR).transferDataRequestParameter>]
class scapy.contrib.automotive.kwp.KWP_TP(_pkt, /, *, service=62, responseRequired=1)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_TP'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <ByteEnumField (KWP_TP).responseRequired>]
responseTypes = {1: 'responseRequired', 2: 'noResponse'}
class scapy.contrib.automotive.kwp.KWP_TPPR(_pkt, /, *, service=126)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_TPPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>]
class scapy.contrib.automotive.kwp.KWP_TesterPresentSender(sock: Any, pkt: Sequence[Packet] | Packet | SetGen[Packet] | _PacketList[Packet] = <KWP  service=TesterPresent |<KWP_TP  responseRequired=noResponse |>>, interval: float = 2)[source]

Bases: PeriodicSenderThread

run() None[source]
class scapy.contrib.automotive.kwp.KWP_WDBI(_pkt, /, *, service=46, identifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_WDBI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XShortEnumField (KWP_WDBI).identifier>]
class scapy.contrib.automotive.kwp.KWP_WDBIPR(_pkt, /, *, service=110, identifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_WDBIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XShortEnumField (KWP_WDBIPR).identifier>]
class scapy.contrib.automotive.kwp.KWP_WDBLI(_pkt, /, *, service=59, recordLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_WDBLI'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_WDBLI).recordLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_WDBLIPR(_pkt, /, *, service=123, recordLocalIdentifier=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_WDBLIPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <XByteEnumField (KWP_WDBLIPR).recordLocalIdentifier>]
class scapy.contrib.automotive.kwp.KWP_WMBA(_pkt, /, *, service=61, memoryAddress=0, memorySize=0, dataRecord=b'')[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_WMBA'>, <class 'scapy.packet.Packet'>]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <X3BytesField (KWP_WMBA).memoryAddress>, <ByteField (KWP_WMBA).memorySize>, <StrField (KWP_WMBA).dataRecord>]
class scapy.contrib.automotive.kwp.KWP_WMBAPR(_pkt, /, *, service=125, memoryAddress=0)[source]

Bases: Packet

aliastypes = [<class 'scapy.contrib.automotive.kwp.KWP_WMBAPR'>, <class 'scapy.packet.Packet'>]
answers(other: Packet) int[source]
fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.fields.ConditionalField object>, <X3BytesField (KWP_WMBAPR).memoryAddress>]