Trait Client

Source
pub trait Client {
    type Channel;
    type Error;

Show 33 methods // Required methods fn update_address( &mut self, channel: Self::Channel, address: Address, ) -> CanResult<(), Self::Error>; fn update_security_algo( &mut self, channel: Self::Channel, algo: SecurityAlgo, ) -> CanResult<(), Self::Error>; fn add_data_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, length: usize, ) -> CanResult<(), Self::Error>; fn remove_data_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, ) -> CanResult<(), Self::Error>; fn set_address_of_byte_order( &mut self, channel: Self::Channel, bo: ByteOrder, ) -> CanResult<(), Self::Error>; fn set_memory_size_of_byte_order( &mut self, channel: Self::Channel, bo: ByteOrder, ) -> CanResult<(), Self::Error>; fn session_ctrl( &mut self, channel: Self::Channel, type: SessionType, suppress_positive: bool, addr_type: AddressType, ) -> CanResult<(), Self::Error>; fn ecu_reset( &mut self, channel: Self::Channel, type: ECUResetType, suppress_positive: bool, addr_type: AddressType, ) -> CanResult<(), Self::Error>; fn security_access( &mut self, channel: Self::Channel, level: u8, params: Vec<u8>, ) -> CanResult<Vec<u8>, Self::Error>; fn unlock_security_access( &mut self, channel: Self::Channel, level: u8, params: Vec<u8>, salt: Vec<u8>, ) -> CanResult<(), Self::Error>; fn communication_control( &mut self, channel: Self::Channel, ctrl_type: CommunicationCtrlType, comm_type: CommunicationType, node_id: Option<NodeId>, suppress_positive: bool, addr_type: AddressType, ) -> CanResult<(), Self::Error>; fn authentication( &mut self, channel: Self::Channel, auth_task: AuthenticationTask, data: Authentication, ) -> CanResult<Authentication, Self::Error>; fn tester_present( &mut self, channel: Self::Channel, type: TesterPresentType, suppress_positive: bool, addr_type: AddressType, ) -> CanResult<(), Self::Error>; fn secured_data_transmit( &mut self, channel: Self::Channel, apar: AdministrativeParameter, signature: SignatureEncryptionCalculation, anti_replay_cnt: u16, service: u8, service_data: Vec<u8>, signature_data: Vec<u8>, ) -> CanResult<SecuredDataTrans, Self::Error>; fn control_dtc_setting( &mut self, channel: Self::Channel, type: DTCSettingType, parameter: Vec<u8>, suppress_positive: bool, ) -> CanResult<(), Self::Error>; fn response_on_event( &mut self, channel: Self::Channel, ) -> CanResult<(), Self::Error>; fn link_control( &mut self, channel: Self::Channel, type: LinkCtrlType, data: LinkCtrl, suppress_positive: bool, ) -> CanResult<(), Self::Error>; fn read_data_by_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, others: Vec<DataIdentifier>, ) -> CanResult<ReadDID, Self::Error>; fn read_memory_by_address( &mut self, channel: Self::Channel, mem_loc: MemoryLocation, ) -> CanResult<Vec<u8>, Self::Error>; fn read_scaling_data_by_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, ) -> CanResult<ReadScalingDID, Self::Error>; fn read_data_by_period_identifier( &mut self, channel: Self::Channel, mode: TransmissionMode, did: Vec<u8>, ) -> CanResult<ReadDataByPeriodId, Self::Error>; fn dynamically_define_data_by_identifier( &mut self, channel: Self::Channel, type: DefinitionType, data: DynamicallyDefineDID, suppress_positive: bool, ) -> CanResult<Option<DynamicallyDefineDID>, Self::Error>; fn write_data_by_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, data: Vec<u8>, ) -> CanResult<(), Self::Error>; fn write_memory_by_address( &mut self, channel: Self::Channel, alfi: AddressAndLengthFormatIdentifier, mem_addr: u128, mem_size: u128, record: Vec<u8>, ) -> CanResult<WriteMemByAddr, Self::Error>; fn clear_dtc_info( &mut self, channel: Self::Channel, group: U24, mem_sel: Option<u8>, addr_type: AddressType, ) -> CanResult<(), Self::Error>; fn read_dtc_info( &mut self, channel: Self::Channel, type: DTCReportType, data: DTCInfo, ) -> CanResult<DTCInfo, Self::Error>; fn io_control( &mut self, channel: Self::Channel, did: DataIdentifier, param: IOCtrlParameter, state: Vec<u8>, mask: Vec<u8>, ) -> CanResult<IOCtrl, Self::Error>; fn routine_control( &mut self, channel: Self::Channel, type: RoutineCtrlType, routine_id: u16, option_record: Vec<u8>, ) -> CanResult<RoutineCtrl, Self::Error>; fn request_download( &mut self, channel: Self::Channel, alfi: AddressAndLengthFormatIdentifier, mem_addr: u128, mem_size: u128, dfi: Option<DataFormatIdentifier>, ) -> CanResult<RequestDownload, Self::Error>; fn request_upload( &mut self, channel: Self::Channel, alfi: AddressAndLengthFormatIdentifier, mem_addr: u128, mem_size: u128, dfi: Option<DataFormatIdentifier>, ) -> CanResult<RequestUpload, Self::Error>; fn transfer_data( &mut self, channel: Self::Channel, sequence: u8, data: Vec<u8>, ) -> CanResult<TransferData, Self::Error>; fn request_transfer_exit( &mut self, channel: Self::Channel, parameter: Vec<u8>, ) -> CanResult<Vec<u8>, Self::Error>; fn request_file_transfer( &mut self, channel: Self::Channel, operation: ModeOfOperation, data: RequestFileTransfer, ) -> CanResult<RequestFileTransfer, Self::Error>;
}

Required Associated Types§

Required Methods§

Source

fn update_address( &mut self, channel: Self::Channel, address: Address, ) -> CanResult<(), Self::Error>

Source

fn update_security_algo( &mut self, channel: Self::Channel, algo: SecurityAlgo, ) -> CanResult<(), Self::Error>

Source

fn add_data_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, length: usize, ) -> CanResult<(), Self::Error>

Source

fn remove_data_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, ) -> CanResult<(), Self::Error>

Source

fn set_address_of_byte_order( &mut self, channel: Self::Channel, bo: ByteOrder, ) -> CanResult<(), Self::Error>

Source

fn set_memory_size_of_byte_order( &mut self, channel: Self::Channel, bo: ByteOrder, ) -> CanResult<(), Self::Error>

Source

fn session_ctrl( &mut self, channel: Self::Channel, type: SessionType, suppress_positive: bool, addr_type: AddressType, ) -> CanResult<(), Self::Error>

  • Diagnostic and communication management functional unit - *
Source

fn ecu_reset( &mut self, channel: Self::Channel, type: ECUResetType, suppress_positive: bool, addr_type: AddressType, ) -> CanResult<(), Self::Error>

Source

fn security_access( &mut self, channel: Self::Channel, level: u8, params: Vec<u8>, ) -> CanResult<Vec<u8>, Self::Error>

Source

fn unlock_security_access( &mut self, channel: Self::Channel, level: u8, params: Vec<u8>, salt: Vec<u8>, ) -> CanResult<(), Self::Error>

Source

fn communication_control( &mut self, channel: Self::Channel, ctrl_type: CommunicationCtrlType, comm_type: CommunicationType, node_id: Option<NodeId>, suppress_positive: bool, addr_type: AddressType, ) -> CanResult<(), Self::Error>

Source

fn authentication( &mut self, channel: Self::Channel, auth_task: AuthenticationTask, data: Authentication, ) -> CanResult<Authentication, Self::Error>

Source

fn tester_present( &mut self, channel: Self::Channel, type: TesterPresentType, suppress_positive: bool, addr_type: AddressType, ) -> CanResult<(), Self::Error>

Source

fn secured_data_transmit( &mut self, channel: Self::Channel, apar: AdministrativeParameter, signature: SignatureEncryptionCalculation, anti_replay_cnt: u16, service: u8, service_data: Vec<u8>, signature_data: Vec<u8>, ) -> CanResult<SecuredDataTrans, Self::Error>

Source

fn control_dtc_setting( &mut self, channel: Self::Channel, type: DTCSettingType, parameter: Vec<u8>, suppress_positive: bool, ) -> CanResult<(), Self::Error>

Source

fn response_on_event( &mut self, channel: Self::Channel, ) -> CanResult<(), Self::Error>

Source

fn read_data_by_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, others: Vec<DataIdentifier>, ) -> CanResult<ReadDID, Self::Error>

Source

fn read_memory_by_address( &mut self, channel: Self::Channel, mem_loc: MemoryLocation, ) -> CanResult<Vec<u8>, Self::Error>

Source

fn read_scaling_data_by_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, ) -> CanResult<ReadScalingDID, Self::Error>

Source

fn read_data_by_period_identifier( &mut self, channel: Self::Channel, mode: TransmissionMode, did: Vec<u8>, ) -> CanResult<ReadDataByPeriodId, Self::Error>

  • Data transmission functional unit - *
Source

fn dynamically_define_data_by_identifier( &mut self, channel: Self::Channel, type: DefinitionType, data: DynamicallyDefineDID, suppress_positive: bool, ) -> CanResult<Option<DynamicallyDefineDID>, Self::Error>

Source

fn write_data_by_identifier( &mut self, channel: Self::Channel, did: DataIdentifier, data: Vec<u8>, ) -> CanResult<(), Self::Error>

Source

fn write_memory_by_address( &mut self, channel: Self::Channel, alfi: AddressAndLengthFormatIdentifier, mem_addr: u128, mem_size: u128, record: Vec<u8>, ) -> CanResult<WriteMemByAddr, Self::Error>

Source

fn clear_dtc_info( &mut self, channel: Self::Channel, group: U24, mem_sel: Option<u8>, addr_type: AddressType, ) -> CanResult<(), Self::Error>

Stored data transmission functional unit - *

Source

fn read_dtc_info( &mut self, channel: Self::Channel, type: DTCReportType, data: DTCInfo, ) -> CanResult<DTCInfo, Self::Error>

Source

fn io_control( &mut self, channel: Self::Channel, did: DataIdentifier, param: IOCtrlParameter, state: Vec<u8>, mask: Vec<u8>, ) -> CanResult<IOCtrl, Self::Error>

  • InputOutput control functional unit - *
Source

fn routine_control( &mut self, channel: Self::Channel, type: RoutineCtrlType, routine_id: u16, option_record: Vec<u8>, ) -> CanResult<RoutineCtrl, Self::Error>

  • Remote activation of routine functional unit - *
Source

fn request_download( &mut self, channel: Self::Channel, alfi: AddressAndLengthFormatIdentifier, mem_addr: u128, mem_size: u128, dfi: Option<DataFormatIdentifier>, ) -> CanResult<RequestDownload, Self::Error>

  • Upload download functional unit - *
Source

fn request_upload( &mut self, channel: Self::Channel, alfi: AddressAndLengthFormatIdentifier, mem_addr: u128, mem_size: u128, dfi: Option<DataFormatIdentifier>, ) -> CanResult<RequestUpload, Self::Error>

Source

fn transfer_data( &mut self, channel: Self::Channel, sequence: u8, data: Vec<u8>, ) -> CanResult<TransferData, Self::Error>

Source

fn request_transfer_exit( &mut self, channel: Self::Channel, parameter: Vec<u8>, ) -> CanResult<Vec<u8>, Self::Error>

Source

fn request_file_transfer( &mut self, channel: Self::Channel, operation: ModeOfOperation, data: RequestFileTransfer, ) -> CanResult<RequestFileTransfer, Self::Error>

Implementors§

Source§

impl<D, C, F> Client for DoCanClient<D, C, F>
where D: CanDevice<Channel = C, Frame = F> + Clone + Send + 'static, C: Display + Clone + Hash + Eq + 'static, F: CanFrame<Channel = C> + Clone + Send + Display + 'static,