mcu_hi3321_watch/tjd/service/service_ancillary.c
2025-05-26 20:15:20 +08:00

141 lines
4.4 KiB
C

/*----------------------------------------------------------------------------
* Copyright (c) TJD Technologies Co., Ltd. 2020. All rights reserved.
*
* Description: service_ancillary.c
*
* Author: saimen
*
* Create: 2024-7-11
*--------------------------------------------------------------------------*/
//lib
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
//os
#include "securec.h"
#include "common_def.h"
#include "debug_print.h"
#include "soc_osal.h"
#include "cmsis_os2.h"
//sdk
//drv
//user
#include "sys_config.h"
#include "sys_typedef.h"
#include "sys_restart.h"
#include "task_ancillary.h"
#include "service_ancillary.h"
/**********************************************************************************************************************
* DEFINE
*/
#define ENABLE_STATIC_PRINT_INFO false
#define ENABLE_STATIC_PRINT_WARN true
#define ENABLE_STATIC_PRINT_ERROR true
#if ENABLE_STATIC_PRINT_INFO
#define static_print_debug(...) sys_service_log_d(__VA_ARGS__)
#else
#define static_print_debug(...)
#endif
#if ENABLE_STATIC_PRINT_WARN
#define static_print_warn(...) sys_service_log_w(__VA_ARGS__)
#else
#define static_print_warn(...)
#endif
#if ENABLE_STATIC_PRINT_ERROR
#define static_print_error(...) sys_service_log_e(__VA_ARGS__)
#else
#define static_print_error(...)
#endif
/**********************************************************************************************************************
* VARIABLES
*/
/**********************************************************************************************************************
* PUBLIC FUNCTIONS
*/static signed int tjd_service_ancillary_device_restart_handle(void *param)
{
tjd_sys_restart(0);
return RET_SUCCESS;
}
void tjd_service_ancillary_device_restart(void)
{
queue_default_info_t msg_data = { tjd_service_ancillary_device_restart_handle, NULL, 0, NULL};
osal_msg_queue_write_copy(tjd_task_ancillary_get_queue_id(), (void *)&msg_data, sizeof(queue_default_info_t), 0);
}
void tjd_service_ancillary_data_save_process(uint32_t save_type)
{
#if 1
int ret;
uint8_t *p_save_data;
uint32_t len;
char* path;
if(sql_setting_get_save_flag())
{
sql_setting_set_save_flag(false);
p_save_data = sql_setting_get_info(&len,&path);
ret = tjd_fs_api_file_store(path, 0, p_save_data, len);
static_print_warn("[%s] ret=%d len=%d",path,ret,len);
}
if(sql_weather_get_save_flag())
{
sql_weather_set_save_flag(false);
p_save_data = sql_weather_get_info(&len,&path);
ret = tjd_fs_api_file_store(path, 0, p_save_data, len);
static_print_warn("[%s] ret=%d len=%d",path,ret,len);
}
if(sql_fit_get_save_flag())
{
sql_fit_set_save_flag(false);
p_save_data = sql_fit_get_info(&len, &path);
ret = tjd_fs_api_file_store(path, 0, p_save_data, len);
static_print_warn("[%s] ret=%d len=%d",path,ret,len);
}
if(sql_bt_get_save_flag())
{
sql_bt_set_save_flag(false);
p_save_data = sql_bt_get_info(&len, &path);
ret = tjd_fs_api_file_store(path, 0, p_save_data, len);
static_print_warn("[%s] ret=%d len=%d",path,ret,len);
}
if(sql_alarm_get_save_flag())
{
sql_alarm_set_save_flag(false);
p_save_data = sql_alarm_get_info(&len, &path);
ret = tjd_fs_api_file_store(path, 0, p_save_data, len);
static_print_warn("[%s] ret=%d len=%d",path,ret,len);
}
if(sql_message_get_save_flag())
{
sql_message_set_save_flag(false);
p_save_data = sql_message_get_info(&len, &path);
ret = tjd_fs_api_file_store(path, 0, p_save_data, len);
static_print_warn("[%s] ret=%d len=%d",path,ret,len);
}
//log_api_save_at_power_off();
#endif
}
signed int tjd_service_ancillary_data_save_handle(void *param)
{
tjd_service_ancillary_data_save_process(*((uint32_t *)param));
return RET_SUCCESS;
}
void tjd_service_ancillary_data_save(uint32_t save_type)
{
static uint32_t g_data_save_flag = 0;
g_data_save_flag = save_type;
queue_default_info_t msg_data = { tjd_service_ancillary_data_save_handle, &g_data_save_flag, 0, NULL};
osal_msg_queue_write_copy(tjd_task_ancillary_get_queue_id(), (void *)&msg_data, sizeof(queue_default_info_t), 0);
}