mcu_hi3321_watch/tjd/ate/pm/pm_cmd_process.c
2025-05-26 20:15:20 +08:00

52 lines
1.4 KiB
C

#include "pm_cmd_process.h"
#include "ate_at_process.h"
#include "common_pm.h"
#include "pm_control.h"
static struct power_manager_class_ops *g_pm_api;
result_t pm_get_model_status(uint8_t *para, uint32_t para_len)
{
result_t result = {0};
for (uint8_t i = 0; i < POWER_MODEL_MAX_ID; i++) {
uint32_t status = g_pm_api->get_model_power_status(i);
printf("model_id:%d, status:%d\n", i, status);
}
return result;
}
result_t pm_set_model_status(uint8_t *para, uint32_t para_len)
{
result_t result = {0};
int32_t argc = 0;
uint8_t *argv[AT_MAX_PARAM_CNT];
convert_at_param(para, para_len, &argc, argv);
if (argc < 2) {
result.code = -1;
free_argv(argv, argc);
return result;
}
if (atoi(argv[0]) == 10) {
int val = atoi(argv[1]);
if (val) {
uapi_pm_control(PM_DISPLAY_POWER_UP_AND_RUN);
} else {
uapi_pm_control(PM_DISPLAY_POWER_OFF);
}
free_argv(argv, argc);
return result;
}
const power_model_id_t model_id = (power_model_id_t)atoi(argv[0]);
const power_status_t status = (power_status_t)atoi(argv[1]);
result.code = g_pm_api->set_model_power_status(model_id, status);
free_argv(argv, argc);
return result;
}
void pm_cmd_process_init(void) { g_pm_api = tjd_driver_common_pm_get_ops(); }