mcu_hi3321_watch/middleware/utils/dfx/diag/diag_msg.c
2025-05-26 20:15:20 +08:00

68 lines
1.8 KiB
C

/*
* Copyright (c) @CompanyNameMagicTag 2021-2023. All rights reserved.
* Description: zdiag msg
* This file should be changed only infrequently and with great care.
*/
#include "diag_msg.h"
#include "diag_pkt_router.h"
#include "dfx_adapt_layer.h"
#include "errcode.h"
#include "log_file.h"
#include "debug_print.h"
static bool g_offline_log_enable = false;
void uapi_zdiag_set_offline_log_enable(bool enable)
{
#if CONFIG_DFX_SUPPORT_OFFLINE_LOG_FILE == DFX_YES
if (g_offline_log_enable == enable) {
return;
}
if (enable) {
store_file_cfg_t cfg = {0};
errcode_t ret;
cfg.mult_files = DFX_OFFLINE_LOG_MUTI_FILE_NUM;
cfg.cache_size = DFX_OFFLINE_LOG_CACHE_SIZE;
cfg.enable_cache = DFX_OFFLINE_LOG_CACHE_ENABLE;
cfg.file_size = DFX_OFFLINE_LOG_FILE_SIZE;
cfg.path = DFX_OFFLINE_LOG_PATH;
cfg.name = DFX_OFFLINE_LOG_NAME;
ret = uapi_logfile_open(STORE_DIAG, &cfg);
if (ret != ERRCODE_SUCC && ret != ERRCODE_DFX_LOGFILE_ALREADY_OPEN) {
dfx_log_err("open logfile %s failed. ret = 0x%x\r\n", cfg.name, ret);
return;
}
g_offline_log_enable = enable;
} else {
g_offline_log_enable = enable;
(void)uapi_logfile_close(STORE_DIAG);
}
#else
unused(enable);
g_offline_log_enable = false;
#endif
}
bool uapi_zdiag_offline_log_is_enable(void)
{
#if CONFIG_DFX_SUPPORT_OFFLINE_LOG_FILE == DFX_YES
return g_offline_log_enable;
#else
return false;
#endif
}
errcode_t diag_msg_proc(uint16_t msg_id, uint8_t *msg, uint32_t msg_len)
{
switch (msg_id) {
case DFX_MSG_ID_DIAG_PKT:
diag_pkt_msg_proc(msg_id, msg, (uint32_t)msg_len);
return ERRCODE_SUCC;
default:
return ERRCODE_NOT_SUPPORT;
}
}