Packet_Lib_to_Daemon - dongyeoplee87/DYLee GitHub Wiki

Packet ๋ถ„์„

Data ๋ณด๋‚ด๋Š” ๋ถ€๋ถ„

Source code

  • 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);

Sample output (Dump packet : network truncated)

***********************************************************
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(>)
***********************************************************

External link

DltStandardHeader.htyp DltStandardHeaderExtra.seid DltExtenedHeader.msin DltExtenedHeader.noar DLT_TYPE_INFO_STRG

DltUserHeader

/**
 * 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
};

DltMessage.headerbuffer

/* 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;
โš ๏ธ **GitHub.com Fallback** โš ๏ธ