Packet_Lib_to_Daemon - dongyeoplee87/DYLee GitHub Wiki
- dlt_user_log_send_log(DltContextData *log, int mtype)
ret = dlt_user_log_out3(dlt_user.dlt_log_handle,
&(userheader), sizeof(DltUserHeader),
msg.headerbuffer + sizeof(DltStorageHeader),
msg.headersize - sizeof(DltStorageHeader),
log->buffer, log->size);***********************************************************
Packet DltUserHeader size[8] DltMessageHeader size[26] LogSize[1390]
Packet DltUserHeader.pattern :
[0x44[D] 0x45[E] 0x46[F] 0x47[G] . Message 0x1[1] // Message 1 : dlt_daemon_process_user_message_log. [^1]
***********************************************************
DltHeader dump start
[0]0x3d (=) // DltStandardHeader.htyp (Header type)
[1]0x2 () // DltStandardHeader.mcnt (DLT MessageCounter)
[2]0x5 () // DltStandardHeader.len (0x0588 = 1416 = 26(DltMessageHeader) + 1390(LogSize))
[3]0x88 (โ)
[4]0x45 (E) // DltStandardHeaderExtra.ecu[4]
[5]0x43 (C)
[6]0x55 (U)
[7]0x31 (1)
[8]0x0 () // DltStandardHeaderExtra.seid (Session number = getpid())
[9]0x0 ()
[10]0x5a (Z)
[11]0xe ()
[12]0x9c (โ) // DltStandardHeaderExtra.tmsp
[13]0xea (โ)
[14]0xd2 (โ)
[15]0x82 (โ)
[16]0x15 () // DltExtenedHeader.msin (Message info. log or networktrace, loglevel, tracestatus...)
[17]0x4 () // DltExtenedHeader.noar (Number of arguments. ex) truncated = STRING("NWTR") + HEADER + PAYLOADSIZE + PAYLOAD)
[18]0x45 (E) // DltExtendedHeader.apid[4]
[19]0x58 (X)
[20]0x41 (A)
[21]0x31 (1)
[22]0x43 (C) // DltExtendedHeader.ctid[4]
[23]0x4f (O)
[24]0x4e (N)
[25]0x0 ()
***********************************************************
DltPayload dump start
[0]0() // #define DLT_TYPE_INFO_STRG 0x00000200 /**< String */
[1]2()
[2]0()
[3]0()
[4]5() // arg_size : 0x5 "NWTR\0"
[5]0()
[6]4e(N) // arg0
[7]57(W)
[8]54(T)
[9]52(R)
[10]0()
[11]0()
[12]4()
...
[1388]3d(=)
[1389]3e(>)
***********************************************************DltStandardHeader.htyp DltStandardHeaderExtra.seid DltExtenedHeader.msin DltExtenedHeader.noar DLT_TYPE_INFO_STRG
/**
* This is the header of each message to be exchanged between application and daemon.
*/
typedef struct
{
char pattern[DLT_ID_SIZE]; /**< This pattern should be DUH0x01 */
uint32_t message; /**< messsage info */
// @dlt_daemon_process_user_message
// process_user_func[usermessage->message]
} DLT_PACKED DltUserHeader;message ๊ฐ์ ๋ฐ๋ผ daemon์์ ์๋ ํจ์ ์ค ํ๋๊ฐ ํธ์ถ ๋จ
static dlt_daemon_process_user_message_func process_user_func[DLT_USER_MESSAGE_NOT_SUPPORTED] = {
dlt_daemon_process_user_message_not_sup,
dlt_daemon_process_user_message_log,
dlt_daemon_process_user_message_register_application,
dlt_daemon_process_user_message_unregister_application,
dlt_daemon_process_user_message_register_context,
dlt_daemon_process_user_message_unregister_context,
dlt_daemon_process_user_message_not_sup,
dlt_daemon_process_user_message_not_sup,
dlt_daemon_process_user_message_overflow,
dlt_daemon_process_user_message_set_app_ll_ts,
dlt_daemon_process_user_message_not_sup,
dlt_daemon_process_user_message_not_sup,
dlt_daemon_process_user_message_not_sup,
dlt_daemon_process_user_message_marker,
dlt_daemon_process_user_message_not_sup,
dlt_daemon_process_user_message_not_sup
};/* buffer for current loaded message */
uint8_t headerbuffer[sizeof(DltStorageHeader) +
sizeof(DltStandardHeader) + sizeof(DltStandardHeaderExtra) + sizeof(DltExtendedHeader)]; /**< buffer for loading complete header */์ค์ ์ ์ผ๋ก DltStorageHeader๋ ์ ์ธ๋จ.
/**
* The structure of the DLT standard header. This header is used in each DLT message.
*/
typedef struct
{
uint8_t htyp; /**< This parameter contains several informations, see definitions below */
uint8_t mcnt; /**< The message counter is increased with each sent DLT message */
uint16_t len; /**< Length of the complete message, without storage header */
} DLT_PACKED DltStandardHeader;
/**
* The structure of the DLT extra header parameters. Each parameter is sent only if enabled in htyp.
*/
typedef struct
{
char ecu[DLT_ID_SIZE]; /**< ECU id */
uint32_t seid; /**< Session number */
uint32_t tmsp; /**< Timestamp since system start in 0.1 milliseconds */
} DLT_PACKED DltStandardHeaderExtra;
/**
* The structure of the DLT extended header. This header is only sent if enabled in htyp parameter.
*/
typedef struct
{
uint8_t msin; /**< messsage info */
uint8_t noar; /**< number of arguments */
char apid[DLT_ID_SIZE]; /**< application id */
char ctid[DLT_ID_SIZE]; /**< context id */
} DLT_PACKED DltExtendedHeader;