KT24-1110_65E-HA-651B/apps/common/charge_box/chgbox_ctrl.h

86 lines
2.6 KiB
C
Raw Normal View History

2024-11-10 10:44:17 +00:00
#ifndef _CHGBOX_CTRL_H_
#define _CHGBOX_CTRL_H_
#include "event.h"
#define STATUS_OFFLINE 0
#define STATUS_ONLINE 1
enum {
USB_DET, //usb检测
LID_DET, //盖子检测
LDO_DET, //升压成功检测
WIRELESS_DET, //无线充检测
DET_MAX,
};
enum {
KEY_POWER_CLICK,
KEY_POWER_LONG,
KEY_POWER_HOLD,
KEY_POWER_UP,
KEY_POWER_DOUBLE,
KEY_POWER_THIRD,
};
//充电仓当然状态
enum {
CHG_STATUS_COMM, //开盖通信
CHG_STATUS_CHARGE, //合盖充电
CHG_STATUS_LOWPOWER, //充电仓电压低
};
//检测几次不在线后才认为耳机拔出
#define TCFG_EAR_OFFLINE_MAX 4
//发送shutdown的个数
#define TCFG_SEND_SHUT_DOWN_MAX 5
//发送closelid的个数 -- 需要 EAR_OFFLINE_MAX 大
#define TCFG_SEND_CLOSE_LID_MAX 5
typedef struct _SYS_INFO {
volatile u8 charge: 1; //是否处于充电状态
volatile u8 ear_l_full: 1; //左耳机是否充满
volatile u8 ear_r_full: 1; //右耳机是否充满
volatile u8 earfull: 1; //是否充满
volatile u8 localfull: 1; //本机是否充满
volatile u8 led_flag: 1; //led活跃状态
volatile u8 lowpower_flag: 1; //低电标记
volatile u8 power_on: 1; //上电/唤醒
volatile u8 pair_succ: 1; //配对成功
volatile u8 init_ok: 1; //充电IC是否初始化成功
volatile u8 chg_addr_ok: 1; //获取广播地址成功
volatile u8 current_limit: 1; //过流
volatile u8 temperature_limit: 1;//过热过冷
volatile u8 wireless_wakeup: 1; //标记无线充唤醒
volatile u8 reserev: 2; //保留bit
volatile u8 pair_status; //处于配对状态
volatile u8 shut_cnt; //关机命令计数器
volatile u8 lid_cnt; //关盖命令计数器
volatile u8 life_cnt; //超时休眠
volatile u8 force_charge; //强制充电(耳机完全没电时需要先充电)
volatile u8 chgbox_status; //充电仓状态:开盖、合盖、低电等
volatile u8 status[DET_MAX];
} SYS_INFO;
typedef struct _EAR_INFO {
volatile u8 online[2]; //在线离线计数
volatile u8 power[2]; //电量
volatile u8 full_cnt[2]; //电量充满计数
} EAR_INFO;
extern SYS_INFO sys_info;
extern EAR_INFO ear_info;
u8 chargebox_check_output_short(void);
void chargebox_set_output_short(void);
void app_charge_box_ctrl_init(void);
int charge_box_ctrl_event_handler(struct chargebox_event *chg_event);
int charge_box_key_event_handler(u16 event);
void chgbox_init_app(void);
#endif