Diag-Client-Lib
|
Class used as a handler to process routing activation messages. More...
#include <doip_diagnostic_message_handler.h>
Classes | |
class | DiagnosticMessageHandlerImpl |
Class implements routing activation handler. More... | |
Public Types | |
using | TcpMessagePtr = sockets::TcpSocketHandler::TcpMessagePtr |
Type alias for Tcp message pointer. More... | |
using | TcpMessage = sockets::TcpSocketHandler::TcpMessage |
Type alias for Tcp message. More... | |
Public Member Functions | |
DiagnosticMessageHandler (sockets::TcpSocketHandler &tcp_socket_handler, DoipTcpChannel &channel) | |
Constructs an instance of DiagnosticMessageHandler. More... | |
~DiagnosticMessageHandler () | |
Destruct an instance of DiagnosticMessageHandler. More... | |
void | Start () |
Function to start the handler. More... | |
void | Stop () |
Function to stop the handler. More... | |
void | Reset () |
Function to reset the handler. More... | |
void | ProcessDoIPDiagnosticAckMessageResponse (DoipMessage &doip_payload) noexcept |
Function to process received diagnostic acknowledgement from server. More... | |
void | ProcessDoIPDiagnosticMessageResponse (DoipMessage &doip_payload) noexcept |
Function to process received diagnostic positive/negative response from server. More... | |
auto | HandleDiagnosticRequest (uds_transport::UdsMessageConstPtr diagnostic_request) noexcept -> uds_transport::UdsTransportProtocolMgr::TransmissionResult |
Function to handle sending of diagnostic request. More... | |
Private Member Functions | |
auto | SendDiagnosticRequest (uds_transport::UdsMessageConstPtr diagnostic_request) noexcept -> uds_transport::UdsTransportProtocolMgr::TransmissionResult |
Function to send diagnostic request. More... | |
Static Private Member Functions | |
static void | CreateDoipGenericHeader (std::vector< std::uint8_t > &doip_header, std::uint16_t payload_type, std::uint32_t payload_len) |
Function to create doip generic header. More... | |
Private Attributes | |
std::unique_ptr< DiagnosticMessageHandlerImpl > | handler_impl_ |
Stores the Handler implementation. More... | |
Class used as a handler to process routing activation messages.
Definition at line 29 of file doip_diagnostic_message_handler.h.
using doip_client::channel::tcp_channel::DiagnosticMessageHandler::TcpMessage = sockets::TcpSocketHandler::TcpMessage |
Type alias for Tcp message.
Definition at line 39 of file doip_diagnostic_message_handler.h.
using doip_client::channel::tcp_channel::DiagnosticMessageHandler::TcpMessagePtr = sockets::TcpSocketHandler::TcpMessagePtr |
Type alias for Tcp message pointer.
Definition at line 34 of file doip_diagnostic_message_handler.h.
doip_client::channel::tcp_channel::DiagnosticMessageHandler::DiagnosticMessageHandler | ( | sockets::TcpSocketHandler & | tcp_socket_handler, |
DoipTcpChannel & | channel | ||
) |
Constructs an instance of DiagnosticMessageHandler.
[in] | tcp_socket_handler | The reference to socket handler |
[in] | channel | The reference to doip channel |
Definition at line 377 of file doip_diagnostic_message_handler.cpp.
|
default |
Destruct an instance of DiagnosticMessageHandler.
|
staticprivate |
Function to create doip generic header.
[in,out] | doip_header | The doip header |
[in] | payload_type | The type of payload |
[in] | payload_len | The length of payload |
Definition at line 540 of file doip_diagnostic_message_handler.cpp.
References doip_client::kDoip_ProtocolVersion.
|
noexcept |
Function to handle sending of diagnostic request.
[in] | diagnostic_request | The diagnostic request |
Definition at line 455 of file doip_diagnostic_message_handler.cpp.
References doip_client::logger::DoipClientLogger::GetDiagClientLogger(), uds_transport::UdsTransportProtocolMgr::kBusyProcessing, doip_client::channel::tcp_channel::anonymous_namespace{doip_diagnostic_message_handler.cpp}::kDoIPDiagnosticAckTimeout, uds_transport::UdsTransportProtocolMgr::kNegTransmitAckReceived, uds_transport::UdsTransportProtocolMgr::kNoTransmitAckReceived, uds_transport::UdsTransportProtocolMgr::kTransmitFailed, and uds_transport::UdsTransportProtocolMgr::kTransmitOk.
|
noexcept |
Function to process received diagnostic acknowledgement from server.
[in] | doip_payload | The doip message received |
Definition at line 389 of file doip_diagnostic_message_handler.cpp.
References doip_client::logger::DoipClientLogger::GetDiagClientLogger(), doip_client::channel::tcp_channel::anonymous_namespace{doip_diagnostic_message_handler.cpp}::kDoip_DiagMessageNegAck_Type, doip_client::channel::tcp_channel::anonymous_namespace{doip_diagnostic_message_handler.cpp}::kDoip_DiagMessagePosAck_Type, and doip_client::channel::tcp_channel::anonymous_namespace{doip_diagnostic_message_handler.cpp}::kDoip_DiagnosticMessage_PosAckCode_Confirm.
|
noexcept |
Function to process received diagnostic positive/negative response from server.
[in] | doip_payload | The doip message received |
Definition at line 419 of file doip_diagnostic_message_handler.cpp.
References doip_client::logger::DoipClientLogger::GetDiagClientLogger(), uds_transport::UdsTransportProtocolMgr::kIndicationOk, uds_transport::UdsTransportProtocolMgr::kIndicationPending, and uds_transport::UdsMessage::kPhysical.
void doip_client::channel::tcp_channel::DiagnosticMessageHandler::Reset | ( | ) |
Function to reset the handler.
This will reset all the internal handler back to default state
Definition at line 387 of file doip_diagnostic_message_handler.cpp.
References handler_impl_.
Referenced by doip_client::channel::tcp_channel::DoipTcpChannelHandler::Reset().
|
privatenoexcept |
Function to send diagnostic request.
[in] | diagnostic_request | The routing activation request |
Definition at line 509 of file doip_diagnostic_message_handler.cpp.
References doip_client::channel::udp_channel::anonymous_namespace{doip_vehicle_identification_handler.cpp}::CreateDoipGenericHeader(), doip_client::channel::tcp_channel::anonymous_namespace{doip_diagnostic_message_handler.cpp}::kDoip_DiagMessage_ReqResMinLen, doip_client::channel::tcp_channel::anonymous_namespace{doip_diagnostic_message_handler.cpp}::kDoip_DiagMessage_Type, doip_client::kDoipheadrSize, uds_transport::UdsTransportProtocolMgr::kTransmitFailed, and uds_transport::UdsTransportProtocolMgr::kTransmitOk.
void doip_client::channel::tcp_channel::DiagnosticMessageHandler::Start | ( | ) |
Function to start the handler.
Definition at line 383 of file doip_diagnostic_message_handler.cpp.
References handler_impl_.
Referenced by doip_client::channel::tcp_channel::DoipTcpChannelHandler::Start().
void doip_client::channel::tcp_channel::DiagnosticMessageHandler::Stop | ( | ) |
Function to stop the handler.
This will reset all the internal handler back to default state
Definition at line 385 of file doip_diagnostic_message_handler.cpp.
References handler_impl_.
Referenced by doip_client::channel::tcp_channel::DoipTcpChannelHandler::Stop().
|
private |
Stores the Handler implementation.
Definition at line 127 of file doip_diagnostic_message_handler.h.