#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; }