Woman, Life, Freedom


Adaptive AUTOSAR
ARA public interface header documentation
ara::diag::DownloadService Class Reference

A class to request diagnostic data transfer from a client to the server. More...

#include <download.h>

Inheritance diagram for ara::diag::DownloadService:
ara::diag::routing::RequestTransfer ara::diag::routing::RoutableUdsService

Public Member Functions

 DownloadService (const core::InstanceSpecifier &specifier, ReentrancyType reentrancy, routing::TransferData &transferData)
 Constructor. More...
 
std::future< void > RequestDownload (uint8_t dataFormatIdentifier, uint8_t addressAndLengthFormatIdentifier, std::vector< uint8_t > memoryAddressAndSize, MetaInfo &metaInfo, CancellationHandler &&cancellationHandler)
 Request diagnostic data download. More...
 
- Public Member Functions inherited from ara::diag::routing::RequestTransfer
std::future< OperationOutputHandleMessage (const std::vector< uint8_t > &requestData, MetaInfo &metaInfo, CancellationHandler &&cancellationHandler) override
 Handle an UDS request message. More...
 
- Public Member Functions inherited from ara::diag::routing::RoutableUdsService
uint8_t GetSid () const noexcept
 Get SID. More...
 
ara::core::Result< void > Offer ()
 Offer handling DM requests. More...
 
bool IsOffered () const noexcept
 Get offering status of the service. More...
 
void StopOffer () noexcept
 Stop offering request handling.
 

Additional Inherited Members

- Static Public Attributes inherited from ara::diag::routing::RoutableUdsService
static const uint8_t cNegativeResponseCodeSid {0x7f}
 Negative response code service ID.
 
- Protected Member Functions inherited from ara::diag::routing::RequestTransfer
 RequestTransfer (const ara::core::InstanceSpecifier &specifier, ReentrancyType reentrancyType, uint8_t sid, TransferData &transferData, TransferDirection transferDirection)
 Constructor. More...
 
bool TryParseRequest (const std::vector< uint8_t > &requestData, uint8_t &dataFormatIdentifier, uint8_t &addressAndLengthFormatIdentifier, std::vector< uint8_t > &memoryAddressAndSize) const
 Try to parse a transfer request. More...
 
bool TryParseLengthFormat (uint8_t dataFormatIdentifier, uint8_t addressAndLengthFormatIdentifier, const std::vector< uint8_t > &memoryAddressAndSize, size_t &memoryAddress, size_t &memorySize) const
 Try to parse a memory length format. More...
 
bool TryRequestTransfer (size_t memoryAddress, size_t memorySize)
 Try to request a transfer in a certain direction (download/upload) More...
 
bool TryGeneratePositiveResponse (MetaInfo &metaInfo, OperationOutput &response) const
 Try to generate a positive response to a transfer request. More...
 
std::future< void > RequestDataTransfer (uint8_t dataFormatIdentifier, uint8_t addressAndLengthFormatIdentifier, std::vector< uint8_t > memoryAddressAndSize, MetaInfo &metaInfo, CancellationHandler &&cancellationHandler)
 Request diagnostic data transfer. More...
 
- Protected Member Functions inherited from ara::diag::routing::RoutableUdsService
 RoutableUdsService (const ara::core::InstanceSpecifier &specifier, uint8_t sid) noexcept
 Constructor. More...
 
void GenerateNegativeResponse (OperationOutput &response, uint8_t nrc) const
 Generate a negative response with a specific NRC. More...
 
template<class T >
bool TryExtractValue (MetaInfo &metaInfo, std::string key, T &value) const
 Try to extract a value from the given meta-info. More...
 
- Protected Attributes inherited from ara::diag::routing::RoutableUdsService
const uint8_t cSubFunctionNotSupported {0x12}
 Unsupported sub-function NRC.
 
const uint8_t cIncorrectMessageLength {0x13}
 Incorrect message length NRC.
 
const uint8_t cRequestSequenceError {0x24}
 Incorrect request sequence NRC.
 
- Static Protected Attributes inherited from ara::diag::routing::RoutableUdsService
static const uint8_t cPositiveResponseSidIncrement {0x40}
 SID increment for a positive response.
 

Detailed Description

A class to request diagnostic data transfer from a client to the server.

Note
The class is not compatible with the ARA standard.

Constructor & Destructor Documentation

◆ DownloadService()

ara::diag::DownloadService::DownloadService ( const core::InstanceSpecifier specifier,
ReentrancyType  reentrancy,
routing::TransferData transferData 
)
explicit

Constructor.

Parameters
specifierInstance specifier that owns the service
reentrancyService reentrancy type
transferDataReference to the transfer data service

Member Function Documentation

◆ RequestDownload()

std::future< void > ara::diag::DownloadService::RequestDownload ( uint8_t  dataFormatIdentifier,
uint8_t  addressAndLengthFormatIdentifier,
std::vector< uint8_t >  memoryAddressAndSize,
MetaInfo metaInfo,
CancellationHandler &&  cancellationHandler 
)

Request diagnostic data download.

Parameters
dataFormatIdentifierDiagnostic data compression and/or encryption format ID
addressAndLengthFormatIdentifierMemory address and size length format ID
memoryAddressAndSizeMemory address and size length byte array
metaInfoMessage handling meta-info
cancellationHandlerMessage handling cancellation token
Returns
Future with a NRC exception in case of error