A class to request diagnostic data transfer from a client to the server. More...
#include <download.h>
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< OperationOutput > | HandleMessage (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. | |
A class to request diagnostic data transfer from a client to the server.
|
explicit |
Constructor.
specifier | Instance specifier that owns the service |
reentrancy | Service reentrancy type |
transferData | Reference to the transfer data service |
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.
dataFormatIdentifier | Diagnostic data compression and/or encryption format ID |
addressAndLengthFormatIdentifier | Memory address and size length format ID |
memoryAddressAndSize | Memory address and size length byte array |
metaInfo | Message handling meta-info |
cancellationHandler | Message handling cancellation token |