Modify the 'DLT_File' class, rename it to 'DLT_Log' and refactor some of its functionalities. It now supports importing multiple DLT files and count the memory allocation usage

This commit is contained in:
2025-11-26 16:39:25 +08:00
parent e16e4e0872
commit 809493e134
3 changed files with 110 additions and 114 deletions
+23 -27
View File
@@ -101,46 +101,42 @@ namespace DLT_Type
} DLT_Msg_Node;
}
// DLT 文件
class DLT_File
// DLT 日志
class DLT_Log
{
private:
FILE *p_file; // 文件指针
size_t msg_count; // 消息条目计数
size_t payload_max_len; // 最长载荷长度
size_t loaded_msg_count; // 消息条目计数
size_t max_payload_len; // 最长载荷长度
size_t mem_use; // 存储占用
DLT_Type::DLT_Msg_Node *Msg_List_Head; // 消息列表
DLT_Type::DLT_Msg_Node *Msg_List_Head; // 消息列表
DLT_Type::DLT_Msg_Node *Msg_List_End; // 消息列表尾
/**
* @brief 读取dlt文件
* @param Msg 读取后存储的目标结构体
* @return DLT_Type::DLT_Err 错误类型枚举
* @brief 从文件中读取dlt头
* @param p_file 要读取的文件
* @param Msg 读取后存储的目标结构体
* @return DLT_Type::DLT_Err 错误类型枚举
*/
DLT_Type::DLT_Err dlt_file_read_header(DLT_Type::DLT_Msg *Msg);
DLT_Type::DLT_Err dlt_file_read_header(FILE *p_file, DLT_Type::DLT_Msg *Msg);
/**
* @brief 读取dlt文件载荷
* @param Msg 读取后存储的目标结构体
* @return DLT_Type::DLT_Err 错误类型枚举
* @brief 从文件中读取dlt载荷
* @param p_file 要读取的文件
* @param Msg 读取后存储的目标结构体
* @return DLT_Type::DLT_Err 错误类型枚举
*/
DLT_Type::DLT_Err dlt_file_read_payload(DLT_Type::DLT_Msg *Msg);
/**
* @brief 解析dlt文件
* @param null
* @return DLT_Type::DLT_Err 错误类型枚举
*/
DLT_Type::DLT_Err dlt_file_parse(void);
DLT_Type::DLT_Err dlt_file_read_payload(FILE *p_file, DLT_Type::DLT_Msg *Msg);
public:
DLT_File(); // 构造函数
~DLT_File(); // 析构函数
DLT_Log(); // 构造函数
~DLT_Log(); // 析构函数
/**
* @brief 打开DLT文件
* @param file_name_str 目标文件名
* @return DLT_Type::DLT_Err 错误类型枚举
* @brief 从文件加载DLT消息,多个文件会顺序加入
* @param file_name_str 目标文件名
* @return DLT_Type::DLT_Err 错误类型枚举
*/
DLT_Type::DLT_Err open(const char *file_name_str);
DLT_Type::DLT_Err load_from_file(const char *file_name_str);
/**
* @brief 获取解析完成的消息列表