Diag-Client-Lib
common_doip_types.h
Go to the documentation of this file.
1 /* Diagnostic Client library
2  * Copyright (C) 2024 Avijit Dey
3  *
4  * This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this
6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7  */
8 #ifndef DIAGNOSTIC_CLIENT_LIB_LIB_DOIP_CLIENT_COMMON_COMMON_DOIP_TYPES_H
9 #define DIAGNOSTIC_CLIENT_LIB_LIB_DOIP_CLIENT_COMMON_COMMON_DOIP_TYPES_H
10 
11 #include "common_doip_header.h"
12 
13 namespace doip_client {
14 
15 /* DoIP Port Number - Unsecured */
16 constexpr std::uint16_t kDoipPort = 13400U;
17 /* Udp Channel Length */
18 constexpr std::uint32_t kUdpChannelLength = 41U;
19 /* Tcp Channel Length */
20 constexpr std::uint32_t kTcpChannelLength = 4096U;
21 /* DoIP Header */
22 constexpr std::uint8_t kDoipheadrSize = 0x8;
23 constexpr std::uint8_t kDoip_ProtocolVersion_2012 = 0x2; // ISO 13400-2012
24 constexpr std::uint8_t kDoip_ProtocolVersion_2019 = 0x3; // ISO 13400-2019
26 constexpr std::uint8_t kDoip_ProtocolVersion_Def = 0xFF;
27 constexpr std::uint32_t kDoip_Protocol_MaxPayload = 0xFFFFFFFF; // 4294967295 bytes
28 /* Payload Types */
29 constexpr std::uint16_t kDoip_GenericHeadr_NackType = 0x0000;
30 constexpr std::uint16_t kDoip_VehicleIdentification_ReqType = 0x0001;
31 constexpr std::uint16_t kDoip_VehicleIdentificationEID_ReqType = 0x0002;
32 constexpr std::uint16_t kDoip_VehicleIdentificationVIN_ReqType = 0x0003;
33 constexpr std::uint16_t kDoip_VehicleAnnouncement_ResType = 0x0004;
34 
35 //constexpr std::uint16_t kDoipENTITY_STATUS_REQ_TYPE 0x4001
36 //constexpr std::uint16_t kDoipENTITY_STATUS_RES_TYPE 0x4002
37 //constexpr std::uint16_t kDoipDIAG_POWER_MODEINFO_REQ_TYPE 0x4003
38 //constexpr std::uint16_t kDoipDIAG_POWER_MODEINFO_RES_TYPE 0x4004
39 
40 constexpr std::uint16_t kDoip_InvalidPayload_Type = 0xFFFF;
41 /* Payload length excluding header */
42 constexpr std::uint32_t kDoip_VehicleIdentification_ReqLen = 0;
43 constexpr std::uint32_t kDoip_VehicleIdentificationEID_ReqLen = 6;
44 constexpr std::uint32_t kDoip_VehicleIdentificationVIN_ReqLen = 17;
45 constexpr std::uint32_t kDoip_VehicleAnnouncement_ResMaxLen = 33;
46 constexpr std::uint32_t kDoip_GenericHeader_NackLen = 1;
47 
48 //constexpr std::uint8_t kDoipALIVE_CHECK_RES_LEN 1
49 
50 /* Further action code values */
51 //constexpr std::uint8_t kDoipNO_FURTHER_ACTION 0x00
52 //constexpr std::uint8_t kDoipFURTHER_ACTION_CENTRAL_SEC 0x10
53 //constexpr std::uint8_t kDoipFURTHER_VM_SPECIFIC_MIN 0x11
54 //constexpr std::uint8_t kDoipFURTHER_VM_SPECIFIC_MAX 0xFF
55 /* VIN/GID Sync status Code values */
56 //constexpr std::uint8_t kDoipVIN_GID_SYNC 0x00
57 //constexpr std::uint8_t kDoipVIN_GID_NOT_SYNC 0x10
58 /* Vehicle identification parameter (invalidity pattern) */
59 constexpr std::uint8_t kDoip_VIN_Invalid_FF = 0xFF;
60 constexpr std::uint8_t kDoip_VIN_Invalid_00 = 0x00;
61 constexpr std::uint16_t kDoip_LogAddress_Invalid = 0xFFFF;
62 constexpr std::uint8_t kDoip_EID_Invalid_FF = 0xFF;
63 constexpr std::uint8_t kDoip_EID_Invalid_00 = 0x00;
64 constexpr std::uint8_t kDoip_GID_Invalid_FF = 0xFF;
65 constexpr std::uint8_t kDoip_GID_Invalid_00 = 0x00;
66 /* DoIP timing and communication parameter (in millisecond) */
67 /* Description: This timeout specifies the maximum time that the
68  client waits for response to a previously sent UDP message.
69  This includes max time to wait and collect multiple responses
70  to previous broadcast(UDP only)
71  * */
72 constexpr std::uint32_t kDoIPCtrl = 2000U; // 2 sec
73 
74 } // namespace doip_client
75 
76 #endif // DIAGNOSTIC_CLIENT_LIB_LIB_DOIP_CLIENT_COMMON_COMMON_DOIP_TYPES_H
constexpr std::uint8_t kDoipheadrSize
constexpr std::uint8_t kDoip_ProtocolVersion_Def
constexpr std::uint8_t kDoip_GID_Invalid_FF
constexpr std::uint32_t kDoip_Protocol_MaxPayload
constexpr std::uint8_t kDoip_EID_Invalid_00
constexpr std::uint16_t kDoip_VehicleIdentification_ReqType
constexpr std::uint32_t kDoIPCtrl
constexpr std::uint16_t kDoip_GenericHeadr_NackType
constexpr std::uint8_t kDoip_ProtocolVersion_2012
constexpr std::uint32_t kDoip_VehicleIdentification_ReqLen
constexpr std::uint32_t kUdpChannelLength
constexpr std::uint16_t kDoip_VehicleAnnouncement_ResType
constexpr std::uint8_t kDoip_ProtocolVersion
constexpr std::uint16_t kDoip_LogAddress_Invalid
constexpr std::uint32_t kDoip_VehicleIdentificationVIN_ReqLen
constexpr std::uint16_t kDoip_VehicleIdentificationVIN_ReqType
constexpr std::uint8_t kDoip_EID_Invalid_FF
constexpr std::uint32_t kDoip_GenericHeader_NackLen
constexpr std::uint8_t kDoip_ProtocolVersion_2019
constexpr std::uint8_t kDoip_VIN_Invalid_FF
constexpr std::uint16_t kDoipPort
constexpr std::uint32_t kDoip_VehicleIdentificationEID_ReqLen
constexpr std::uint16_t kDoip_VehicleIdentificationEID_ReqType
constexpr std::uint8_t kDoip_GID_Invalid_00
constexpr std::uint8_t kDoip_VIN_Invalid_00
constexpr std::uint32_t kTcpChannelLength
constexpr std::uint16_t kDoip_InvalidPayload_Type
constexpr std::uint32_t kDoip_VehicleAnnouncement_ResMaxLen