mcu_hi3321_watch/tjd/driver/charger/charger_api.c
2025-05-26 20:15:20 +08:00

68 lines
2.1 KiB
C

#include "charger_api.h"
#include "charger_port.h"
#include "sys_config.h"
#define ENABLE_PRINT_INFO 1
#if ENABLE_PRINT_INFO
#define static_print_info(...) sys_chrg_log_i(__VA_ARGS__) // 一般信息打印宏控制
#define static_print_warn(...) sys_chrg_log_w(__VA_ARGS__) // 警告信息打印一般常开
#define static_print_error(...) sys_chrg_log_e(__VA_ARGS__) // 错误信息打印一般常开
#else
#define static_print_info(...)
#define static_print_warn(...)
#define static_print_error(...)
#endif
static uint32_t charger_dev_open(void)
{
uint32_t ret = charger_host_peripheral_init();
if (ret != CHARGER_SUCC) {
static_print_error("charger_dev_open failed");
return CHARGER_FAIL;
}
static_print_info("charger_dev_open success");
return CHARGER_SUCC;
}
static uint32_t charger_dev_close(void)
{
uint32_t ret = charger_host_peripheral_deinit();
if (ret != CHARGER_SUCC) {
static_print_error("charger_dev_close failed");
return CHARGER_FAIL;
}
static_print_info("charger_dev_close success");
return CHARGER_SUCC;
}
static uint32_t charger_sample_event(uint32_t *battery)
{
uint32_t ret = charger_sample();
if (ret != CHARGER_SUCC) {
static_print_error("charger_sample_event failed");
return CHARGER_FAIL;
}
uint16_t value = get_power_value();
if (value >= 10000){
*battery = 100;
}else if (value <= 0) {
*battery = 0;
}else{
*battery = (uint32_t)(value/100);
}
return 0;
}
static float charger_sample_status_event(void)
{
charger_status_sample();
return get_status_value();
}
static struct charger_class_ops g_charger_ops = {.open = charger_dev_open,
.close = charger_dev_close,
.sample_event = charger_sample_event,
.sample_status_event = charger_sample_status_event};
struct charger_class_ops *tjd_driver_charger_get_ops(void) { return &g_charger_ops; }