1 #ifndef DOIPPAYLOADTYPE_H
2 #define DOIPPAYLOADTYPE_H
166 constexpr std::optional<DoIPPayloadType>
toPayloadType(uint16_t value) noexcept {
173 constexpr std::optional<DoIPPayloadType>
toPayloadType(uint8_t hsb, uint8_t lsb) noexcept {
174 return toPayloadType(
static_cast<uint16_t
>((hsb << 8) | lsb));
188 const char* name =
nullptr;
192 name =
"NegativeAck";
195 name =
"VehicleIdentificationRequest";
198 name =
"VehicleIdentificationRequestWithEid";
201 name =
"VehicleIdentificationRequestWithVin";
204 name =
"VehicleIdentificationResponse";
207 name =
"RoutingActivationRequest";
210 name =
"RoutingActivationResponse";
213 name =
"AliveCheckRequest";
216 name =
"AliveCheckResponse";
219 name =
"EntityStatusRequest";
222 name =
"EntityStatusResponse";
225 name =
"DiagnosticPowerModeRequest";
228 name =
"DiagnosticPowerModeResponse";
231 name =
"DiagnosticMessage";
234 name =
"DiagnosticMessageAck";
237 name =
"DiagnosticMessageNegativeAck";
240 name =
"PeriodicDiagnosticMessage";
247 os << name <<
" (0x" << std::hex << std::uppercase << std::setw(4) << std::setfill(
'0')
248 <<
static_cast<uint16_t
>(type) << std::dec <<
")";
constexpr bool isValidPayloadType(uint16_t value) noexcept
Validates if a uint16_t value represents a valid DoIPPayloadType.
std::ostream & operator<<(std::ostream &os, const ByteArray &arr)
Stream operator for ByteArray.
DoIPPayloadType
DoIP Payload Type identifiers according to ISO 13400-2.
@ DiagnosticMessageAck
Diagnostic Message Positive Acknowledgement Positive acknowledgement of a diagnostic message.
@ DiagnosticMessage
Diagnostic Message Payload for diagnostic communication (UDS, KWP, etc.).
@ PeriodicDiagnosticMessage
Periodic Diagnostic Message Periodically sent diagnostic message.
@ AliveCheckResponse
Alive Check Response Response to an Alive Check Request.
@ RoutingActivationResponse
Routing Activation Response Response to a Routing Activation Request.
@ DiagnosticPowerModeRequest
Diagnostic Power Mode Request Request for the current power mode.
@ VehicleIdentificationRequestWithVin
Vehicle Identification Request with VIN Request with VIN (Vehicle Identification Number).
@ DiagnosticPowerModeResponse
Diagnostic Power Mode Response Response to a Diagnostic Power Mode Request.
@ RoutingActivationRequest
Routing Activation Request Request to activate routing for a diagnostic connection.
@ EntityStatusRequest
Entity Status Request Request for the status of a DoIP entity.
@ VehicleIdentificationRequestWithEid
Vehicle Identification Request with EID Request with EID (Entity Identifier).
@ VehicleIdentificationResponse
Vehicle Identification Response (Vehicle Announcement) Response to a Vehicle Identification Request o...
@ VehicleIdentificationRequest
Vehicle Identification Request Request for vehicle identification.
@ NegativeAck
Generic Negative Acknowledgement (NACK) Sent when a message cannot be processed.
@ DiagnosticMessageNegativeAck
Diagnostic Message Negative Acknowledgement Negative acknowledgement of a diagnostic message.
@ AliveCheckRequest
Alive Check Request Request to check if the connection is still alive.
@ EntityStatusResponse
Entity Status Response Response to an Entity Status Request.
constexpr std::optional< DoIPPayloadType > toPayloadType(uint16_t value) noexcept
Safely converts uint16_t to DoIPPayloadType with validation.