scapy.contrib.automotive.xcp.cto_commands_master
- class scapy.contrib.automotive.xcp.cto_commands_master.AllocDaq(_pkt, /, *, reserved=0, daq_count=0)[source]
Bases:
PacketAllocate DAQ lists
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.AllocDaq'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.AllocOdt(_pkt, /, *, reserved=0, daq_list_num=0, odt_count=0)[source]
Bases:
PacketAllocate ODTs to a DAQ list
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.AllocOdt'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.AllocOdtEntry(_pkt, /, *, reserved=0, daq_list_num=0, odt_num=0, odt_entries_count=0)[source]
Bases:
PacketAllocate ODT entries to an ODT
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.AllocOdtEntry'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.BuildChecksum(_pkt, /, *, reserved=0, block_size=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.BuildChecksum'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ClearDaqList(_pkt, /, *, reserved=0, daq_list_num=0)[source]
Bases:
PacketClear DAQ list configuration
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ClearDaqList'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.Connect(_pkt, /, *, connection_mode=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.Connect'>, <class 'scapy.packet.Packet'>]
- commands = {0: 'NORMAL', 1: 'USER_DEFINED'}
- class scapy.contrib.automotive.xcp.cto_commands_master.CopyCalPage(_pkt, /, *, segment_num_src=0, page_num_src=0, segment_num_dst=0, page_num_dst=0)[source]
Bases:
PacketThis command forces the slave to copy one calibration page to another. This command is only available if more than one calibration page is defined
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.CopyCalPage'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.Disconnect(_pkt, /)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.Disconnect'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.Download(_pkt, /, *, nr_of_data_elements=0, alignment=b'', data_elements=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.Download'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.DownloadMax(_pkt, /, *, alignment=b'', data_elements=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.DownloadMax'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.DownloadNext(_pkt, /, *, nr_of_data_elements=0, alignment=b'', data_elements=b'')[source]
Bases:
Download- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.DownloadNext'>, <class 'scapy.contrib.automotive.xcp.cto_commands_master.Download'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.FreeDaq(_pkt, /)[source]
Bases:
PacketClear dynamic DAQ configuration
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.FreeDaq'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetCalPage(_pkt, /, *, access_mode=0, data_segment_num=0)[source]
Bases:
PacketGet calibration page
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetCalPage'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetCommModeInfo(_pkt, /)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetCommModeInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetDaqClock(_pkt, /)[source]
Bases:
PacketGet DAQ clock from slave
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetDaqClock'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetDaqEventInfo(_pkt, /, *, reserved=0, event_channel_num=0)[source]
Bases:
PacketGet specific information for an event channel
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetDaqEventInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetDaqListInfo(_pkt, /, *, reserved=0, daq_list_num=0)[source]
Bases:
PacketGet specific information for a DAQ list
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetDaqListInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetDaqListMode(_pkt, /, *, reserved=0, daq_list_number=0)[source]
Bases:
PacketGet mode from DAQ list
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetDaqListMode'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetDaqProcessorInfo(_pkt, /)[source]
Bases:
PacketGet general information on DAQ processor
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetDaqProcessorInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetDaqResolutionInfo(_pkt, /)[source]
Bases:
PacketGet general information on DAQ processing resolutioin
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetDaqResolutionInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetId(_pkt, /, *, identification_type=0)[source]
Bases:
PacketGet identification from slave
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetId'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (GetId).identification_type>]
- types = {0: 'ASCII', 1: 'file_name_without_path_and_extension', 2: 'file_name_with_path_and_extension', 3: 'URL', 4: 'File'}
- class scapy.contrib.automotive.xcp.cto_commands_master.GetPagProcessorInfo(_pkt, /)[source]
Bases:
PacketGet general information on PAG processor
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetPagProcessorInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetPageInfo(_pkt, /, *, reserved=0, segment_number=0, page_number=0)[source]
Bases:
PacketGet specific information for a PAGE
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetPageInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetPgmProcessorInfo(_pkt, /)[source]
Bases:
PacketGet general information on PGM processor
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetPgmProcessorInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetSectorInfo(_pkt, /, *, mode=0, sector_number=0)[source]
Bases:
PacketGet specific information for a SECTOR
- address_mode = {0: 'get_address', 1: 'get_length'}
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetSectorInfo'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetSeed(_pkt, /, *, mode=0, resource=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetSeed'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (GetSeed).mode>, <ByteEnumField (GetSeed).resource>]
- res = {0: 'resource', 1: 'ignore'}
- seed_mode = {0: 'first', 1: 'remaining'}
- class scapy.contrib.automotive.xcp.cto_commands_master.GetSegmentInfo(_pkt, /, *, mode=0, segment_number=0, segment_info=0, mapping_index=0)[source]
Bases:
PacketGet specific information for a SEGMENT
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetSegmentInfo'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (GetSegmentInfo).mode>, <ByteField (GetSegmentInfo).segment_number>, <ByteField (GetSegmentInfo).segment_info>, <ByteField (GetSegmentInfo).mapping_index>]
- info_mode = {0: 'get_basic_address_info', 1: 'get_standard_info', 2: 'get_address_mapping_info'}
- class scapy.contrib.automotive.xcp.cto_commands_master.GetSegmentMode(_pkt, /, *, reserved=0, segment_number=0)[source]
Bases:
PacketGet mode for a SEGMENT
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetSegmentMode'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.GetStatus(_pkt, /)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.GetStatus'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ModifyBits(_pkt, /, *, shift_value=0, and_mask=0, xor_mask=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ModifyBits'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.Program(_pkt, /, *, nr_of_data_elements=0, alignment=b'', data_elements=b'')[source]
Bases:
DownloadProgram a non-volatile memory segment
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.Program'>, <class 'scapy.contrib.automotive.xcp.cto_commands_master.Download'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ProgramClear(_pkt, /, *, mode=0, reserved=0, clear_range=0)[source]
Bases:
PacketClear a part of non-volatile memory
- access_mode = {0: 'absolute_access', 1: 'functional_access'}
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ProgramClear'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ProgramFormat(_pkt, /, *, compression_method=0, encryption_mode=0, programming_method=0, access_method=0)[source]
Bases:
PacketSet data format before programming
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ProgramFormat'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ProgramMax(_pkt, /, *, alignment=b'', data_elements=b'')[source]
Bases:
DownloadMaxProgram a non-volatile memory segment (fixed size)
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ProgramMax'>, <class 'scapy.contrib.automotive.xcp.cto_commands_master.DownloadMax'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ProgramNext(_pkt, /, *, nr_of_data_elements=0, alignment=b'', data_elements=b'')[source]
Bases:
DownloadProgram a non-volatile memory segment (Block Mode)
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ProgramNext'>, <class 'scapy.contrib.automotive.xcp.cto_commands_master.Download'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ProgramPrepare(_pkt, /, *, not_used=0, code_size=0)[source]
Bases:
PacketPrepare non-volatile memory programming
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ProgramPrepare'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ProgramReset(_pkt, /)[source]
Bases:
PacketIndicate the end of a programming sequence
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ProgramReset'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ProgramStart(_pkt, /)[source]
Bases:
PacketIndicate the beginning of a programming sequence
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ProgramStart'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ProgramVerify(_pkt, /, *, verification_mode=0, verification_type=0, verification_value=0)[source]
Bases:
PacketProgram Verify
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ProgramVerify'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (ProgramVerify).verification_mode>, <scapy.contrib.automotive.xcp.utils.XCPEndiannessField object>, <scapy.contrib.automotive.xcp.utils.XCPEndiannessField object>]
- start_mode = {0: 'request_to_start_internal_routine', 1: 'sending_verification_value'}
- class scapy.contrib.automotive.xcp.cto_commands_master.ReadDaq(_pkt, /)[source]
Bases:
PacketRead element from ODT entry
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ReadDaq'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.SetCalPage(_pkt, /, *, mode=<Flag 0 ()>, data_segment_num=0, data_page_num=0)[source]
Bases:
PacketSet calibration page
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.SetCalPage'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.SetDaqListMode(_pkt, /, *, mode=<Flag 0 ()>, daq_list_num=0, event_channel_num=0, transmission_rate_prescaler=0, daq_list_prio=0)[source]
Bases:
PacketSet mode for DAQ list
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.SetDaqListMode'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FlagsField (SetDaqListMode).mode>, <scapy.contrib.automotive.xcp.utils.XCPEndiannessField object>, <scapy.contrib.automotive.xcp.utils.XCPEndiannessField object>, <ByteField (SetDaqListMode).transmission_rate_prescaler>, <ByteField (SetDaqListMode).daq_list_prio>]
- class scapy.contrib.automotive.xcp.cto_commands_master.SetDaqPtr(_pkt, /, *, reserved=0, daq_list_num=0, odt_num=0, odt_entry_num=0)[source]
Bases:
PacketData acquisition and stimulation, static, mandatory
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.SetDaqPtr'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.SetMta(_pkt, /, *, reserved=0, address_extension=0, address=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.SetMta'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.SetRequest(_pkt, /, *, mode=<Flag 0 ()>, session_configuration_id=0)[source]
Bases:
PacketRequest to save to non-volatile memory
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.SetRequest'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.SetSegmentMode(_pkt, /, *, mode=<Flag 0 ()>, segment_number=0)[source]
Bases:
PacketSet mode for a SEGMENT
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.SetSegmentMode'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ShortDownload(_pkt, /, *, len=None, reserved=0, address_extension=0, address=0, data_elements=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ShortDownload'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<FieldLenField (ShortDownload).len>, <ByteField (ShortDownload).reserved>, <ByteField (ShortDownload).address_extension>, <scapy.contrib.automotive.xcp.utils.XCPEndiannessField object>, <StrVarLenField (ShortDownload).data_elements>]
- class scapy.contrib.automotive.xcp.cto_commands_master.ShortUpload(_pkt, /, *, nr_of_data_elements=0, reserved=0, address_extension=0, address=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.ShortUpload'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.StartStopDaqList(_pkt, /, *, mode=0, daq_list_number=0)[source]
Bases:
PacketStart/stop/select DAQ list
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.StartStopDaqList'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (StartStopDaqList).mode>, <scapy.contrib.automotive.xcp.utils.XCPEndiannessField object>]
- mode_enum = {0: 'stop', 1: 'start', 2: 'select'}
- class scapy.contrib.automotive.xcp.cto_commands_master.StartStopSynch(_pkt, /, *, mode=0)[source]
Bases:
PacketStart/stop DAQ lists (synchronously)
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.StartStopSynch'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (StartStopSynch).mode>]
- mode_enum = {0: 'stop', 1: 'start', 2: 'select'}
- class scapy.contrib.automotive.xcp.cto_commands_master.Synch(_pkt, /)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.Synch'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmd(_pkt, /, *, sub_command_code=255)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmd'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (TransportLayerCmd).sub_command_code>]
- payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'sub_command_code': 255}, <class 'scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdGetSlaveId'>), ({'sub_command_code': 254}, <class 'scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdGetDAQId'>), ({'sub_command_code': 253}, <class 'scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdSetDAQId'>)]
- sub_commands = {253: 'SET_DAQ_ID', 254: 'GET_DAQ_ID', 255: 'GET_SLAVE_ID'}
- class scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdGetDAQId(_pkt, /, *, daq_list_number=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdGetDAQId'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdGetSlaveId(_pkt, /, *, x=88, c=67, p=80, mode=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdGetSlaveId'>, <class 'scapy.packet.Packet'>]
- echo_mode = {0: 'identify_by_echo', 1: 'confirm_by_inverse_echo'}
- class scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdSetDAQId(_pkt, /, *, daq_list_number=0, can_identifier=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.TransportLayerCmdSetDAQId'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.contrib.automotive.xcp.utils.XCPEndiannessField object>, <scapy.contrib.automotive.xcp.utils.XCPEndiannessField object>]
- sub_command = {253: 'SET_DAQ_ID'}
- class scapy.contrib.automotive.xcp.cto_commands_master.Unlock(_pkt, /, *, len=None, seed=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.Unlock'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.Upload(_pkt, /, *, nr_of_data_elements=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.Upload'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.UserCmd(_pkt, /, *, sub_command_code=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.UserCmd'>, <class 'scapy.packet.Packet'>]
- class scapy.contrib.automotive.xcp.cto_commands_master.WriteDaq(_pkt, /, *, bit_offset=0, size_of_daq_element=0, address_extension=0, address=0)[source]
Bases:
PacketData acquisition and stimulation, static, mandatory
- aliastypes = [<class 'scapy.contrib.automotive.xcp.cto_commands_master.WriteDaq'>, <class 'scapy.packet.Packet'>]