T-Box Basic dev
Loading...
Searching...
No Matches
log_protocol.h File Reference

tbox_logd IPC 协议 More...

#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  tbox_log_msg_header_t
struct  tbox_log_write_body_t
struct  tbox_log_hex_body_t
struct  tbox_log_level_body_t
struct  tbox_log_encrypt_body_t
struct  tbox_log_ack_body_t
struct  tbox_log_write_view_t
struct  tbox_log_hex_view_t
struct  tbox_log_message_view_t

Macros

#define TBOX_LOG_PROTOCOL_MAGIC   0x544C4F47u
#define TBOX_LOG_PROTOCOL_VERSION   2u
#define TBOX_LOG_MAX_TEXT_LEN   1023u
#define TBOX_LOG_MAX_PACKET_SIZE   1200u

Enumerations

enum  tbox_log_msg_type_t {
  TBOX_LOG_MSG_WRITE = 1 , TBOX_LOG_MSG_SET_LEVEL = 2 , TBOX_LOG_MSG_GET_LEVEL = 3 , TBOX_LOG_MSG_PING = 4 ,
  TBOX_LOG_MSG_ACK = 5 , TBOX_LOG_MSG_HEX = 6 , TBOX_LOG_MSG_SET_ENCRYPT = 7
}

Functions

int tbox_log_protocol_pack_write (void *buffer, size_t buffer_size, uint16_t id, uint8_t level, uint64_t ts_ms, uint32_t pid, uint32_t tid, const char *text, size_t *packed_size)
 打包日志写入消息。
int tbox_log_protocol_pack_hex (void *buffer, size_t buffer_size, uint16_t id, uint8_t level, uint64_t ts_ms, uint32_t pid, uint32_t tid, const char *text, const void *data, size_t data_len, size_t *packed_size)
 打包二进制 hex 日志消息。
int tbox_log_protocol_pack_set_level (void *buffer, size_t buffer_size, uint16_t id, uint8_t level, size_t *packed_size)
 打包设置日志级别消息。
int tbox_log_protocol_pack_get_level (void *buffer, size_t buffer_size, uint16_t id, size_t *packed_size)
 打包获取日志级别消息。
int tbox_log_protocol_pack_set_encrypt (void *buffer, size_t buffer_size, uint8_t enabled, size_t *packed_size)
 打包设置日志加密开关消息。
int tbox_log_protocol_pack_ack (void *buffer, size_t buffer_size, uint32_t status, uint32_t value, size_t *packed_size)
 打包 ACK 响应消息。
int tbox_log_protocol_validate (const void *buffer, size_t buffer_size, tbox_log_message_view_t *view)
 校验并解析协议消息。
int tbox_log_protocol_read_write (const tbox_log_message_view_t *view, tbox_log_write_view_t *write_view)
 解析日志写入消息体。
int tbox_log_protocol_read_hex (const tbox_log_message_view_t *view, tbox_log_hex_view_t *hex_view)
 解析二进制 hex 日志消息体。

Detailed Description

tbox_logd IPC 协议

Version
1.0.0
Date
2026-06-18

Function Documentation

◆ tbox_log_protocol_pack_ack()

int tbox_log_protocol_pack_ack ( void * buffer,
size_t buffer_size,
uint32_t status,
uint32_t value,
size_t * packed_size )

打包 ACK 响应消息。

Parameters
buffer输出缓冲区。
buffer_size输出缓冲区大小。
status响应状态码。
value响应附加值。
packed_size实际打包长度。
Returns
0 成功,其他 失败

◆ tbox_log_protocol_pack_get_level()

int tbox_log_protocol_pack_get_level ( void * buffer,
size_t buffer_size,
uint16_t id,
size_t * packed_size )

打包获取日志级别消息。

Parameters
buffer输出缓冲区。
buffer_size输出缓冲区大小。
id日志 ID。
packed_size实际打包长度。
Returns
0 成功,其他 失败

◆ tbox_log_protocol_pack_hex()

int tbox_log_protocol_pack_hex ( void * buffer,
size_t buffer_size,
uint16_t id,
uint8_t level,
uint64_t ts_ms,
uint32_t pid,
uint32_t tid,
const char * text,
const void * data,
size_t data_len,
size_t * packed_size )

打包二进制 hex 日志消息。

Parameters
buffer输出缓冲区。
buffer_size输出缓冲区大小。
id日志 ID。
level日志级别。
ts_ms时间戳,单位毫秒。
pid进程 ID。
tid线程 ID。
text附加说明信息,可为空。
data原始二进制数据。
data_len原始二进制数据长度。
packed_size实际打包长度。
Returns
0 成功,其他 失败

◆ tbox_log_protocol_pack_set_encrypt()

int tbox_log_protocol_pack_set_encrypt ( void * buffer,
size_t buffer_size,
uint8_t enabled,
size_t * packed_size )

打包设置日志加密开关消息。

Parameters
buffer输出缓冲区。
buffer_size输出缓冲区大小。
enabled加密开关,仅允许 0 或 1。
packed_size实际打包长度。
Returns
0 成功,其他 失败

◆ tbox_log_protocol_pack_set_level()

int tbox_log_protocol_pack_set_level ( void * buffer,
size_t buffer_size,
uint16_t id,
uint8_t level,
size_t * packed_size )

打包设置日志级别消息。

Parameters
buffer输出缓冲区。
buffer_size输出缓冲区大小。
id日志 ID。
level目标日志级别。
packed_size实际打包长度。
Returns
0 成功,其他 失败

◆ tbox_log_protocol_pack_write()

int tbox_log_protocol_pack_write ( void * buffer,
size_t buffer_size,
uint16_t id,
uint8_t level,
uint64_t ts_ms,
uint32_t pid,
uint32_t tid,
const char * text,
size_t * packed_size )

打包日志写入消息。

Parameters
buffer输出缓冲区。
buffer_size输出缓冲区大小。
id日志 ID。
level日志级别。
ts_ms时间戳,单位毫秒。
pid进程 ID。
tid线程 ID。
text日志正文。
packed_size实际打包长度。
Returns
0 成功,其他 失败

◆ tbox_log_protocol_read_hex()

int tbox_log_protocol_read_hex ( const tbox_log_message_view_t * view,
tbox_log_hex_view_t * hex_view )

解析二进制 hex 日志消息体。

Parameters
view已通过校验的消息视图。
hex_viewhex 消息内容视图。
Returns
0 成功,其他 失败

◆ tbox_log_protocol_read_write()

int tbox_log_protocol_read_write ( const tbox_log_message_view_t * view,
tbox_log_write_view_t * write_view )

解析日志写入消息体。

Parameters
view已通过校验的消息视图。
write_view写消息内容视图。
Returns
0 成功,其他 失败

◆ tbox_log_protocol_validate()

int tbox_log_protocol_validate ( const void * buffer,
size_t buffer_size,
tbox_log_message_view_t * view )

校验并解析协议消息。

Parameters
buffer原始消息缓冲区。
buffer_size原始消息长度。
view解析后的消息视图。
Returns
0 成功,其他 失败