Both_Way_Comm_SY8833/TP3310_Demo.si4project/Backup/vox_module(4667).h

183 lines
4.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
******************************************************************************
*
* @file VOX_Module.h
* @brief VOL/R module
*
*
* @version 1.0
* @date 2022/07/18 09:59:40
* @author Alex Xu
*
* Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd.
* All Rights Reserved
*
* History:
* Revision Date Author Desc
* 1.0.0 2022/07/18 Alex build this file
******************************************************************************
*/
#ifndef __VOX_MODULE_H__
#define __VOX_MODULE_H__
#include "define.h"
extern bit Vox_Vout_Enable;
sbit COM_CTRL = P0^2;
extern uint8_t Vox_TX_Timer; //VOX发送指令持续时间计数,在Hall_Handler检测中清0.
#if VOX_ENABLE
/******************************************************************************\
Macro definitions
\******************************************************************************/
/*
VOX过流档位设置在系统初始化中(Vox_init())通过配置VOX_CON0
SFRADDR = VOX_CON0; //设置VOX输出500mA负载识别电流2.5uA。
SFRDATA &= 0xE0;
SFRDATA |= (VOX_IOUT_500MA << 3) | VOX_ADT_Cur_2_5UA;
*/
#define VOX_IOUT_200MA 0x00
#define VOX_IOUT_300MA 0x01
#define VOX_IOUT_400MA 0x02
#define VOX_IOUT_500MA 0x03
#define VOX_ADT_Cur_0_5UA 0x00
#define VOX_ADT_Cur_1_5UA 0x01
#define VOX_ADT_Cur_2_5UA 0x02
#define VOX_ADT_Cur_3_5UA 0x03
#define VOX_ADT_Cur_4_5UA 0x04
#define VOX_ADT_Cur_5_5UA 0x05
#define VOX_ADT_Cur_6_5UA 0x06
#define VOX_ADT_Cur_7_5UA 0x07
#ifdef QIANCHENG //岍丞
#define BOXHEADER 0x5A //VOX通讯仓->耳机数据包头
#define BESHEADER 0xA5 //VOX通讯耳机->仓数据包头
#elif ZHONGKELANXUN //中科蓝讯
#define BOXHEADER 0x55AA
#define BOXIDCODE 0xFF
#endif
#define TIM_SHUTDOWN_DEBOUNCE 600 //关机前debounce时间
/******************************************************************************\
Variables definitions
\******************************************************************************/
/*耳机通道选择*/
#ifdef QIANCHENG //岍丞
typedef enum {
VOL_CHAN = 0,
VOR_CHAN,
VOX_BOTH,
}e_Vox_Chan;
#elif ZHONGKELANXUN //中科蓝讯
typedef enum {
VOL_CHAN = 0,
VOR_CHAN = 0x11,
VOX_BOTH = 0x22,
}e_Vox_Chan;
#endif
#if 1
/*耳机配对状态*/
typedef enum {
VOX_PAIR_NONE = 0, //无效
VOX_PAIR_ING, //配对中
VOX_PAIR_OK, //配对完成
VOX_PAIR_KEEP, //不处理,保持当前状态
}e_Vox_Pairing_State;
/*耳机配对记录*/
typedef enum {
VOX_PAIRED_NONE = 0, //无配对过
VOX_PAIRED_OK, //有配对记录
}e_Vox_Paired_State;
#endif
/*耳机和充电仓进行双向通讯的协议命令ID。*/
#ifdef QIANCHENG //岍丞
typedef enum _VOX_BES_COMMAND_E
{
CMD_BOX_OPEN = 0x00, //开盖指令返回
CMD_BOX_CLOSE = 0x01, //关盖指令返回
CMD_SHUT_DOWN = 0x03, //关机
CMD_BES_PAIRING = 0x04, //耳机配对
//CMD_BES_CLEAN = 0x05, //双耳清除记录
//CMD_BES_HEARTBEAT = 0x07, //心跳包
// CMD_OTA = 0x09,
BES_RESET,
}VOX_BES_COMMAND_E;
#elif ZHONGKELANXUN //中科蓝讯
typedef enum _VOX_BES_COMMAND_E
{
VHOUSE_CMD_GET_VBAT = 0x01, //获取电池电量,也可作为开始标志
VHOUSE_CMD_PAIR, //充电仓发起的配对信息
VHOUSE_CMD_GET_TWS_BTADDR, //获取对耳的蓝牙地址信息
VHOUSE_CMD_CLEAR_PAIR, //清除配对信息
VHOUSE_CMD_PWROFF, //关机消息
VHOUSE_CMD_ERR, //接收消息错误
VHOUSE_CMD_SUCCESS, //成功响应
VHOUSE_CMD_CLOSE_WINDOW, //关盖
VHOUSE_CMD_OPEN_WINDOW, //开盖
VHOUSE_CMD_CLOSE_WIN_GET_VBAT, //关盖获取电量包
VHOUSE_CMD_ENABLE_POPUP = 0x80, //开关弹窗功能控制
VHOUSE_CMD_CUSTOM_RESV1 = 0xE0, //客户保留指令
VHOUSE_CMD_CUSTOM_RESV_END = 0xEF,
VHOUSE_CMD_SYS_RST = 0xFF, //系统复位指令
}VOX_BES_COMMAND_E;
#endif
#if 0
/*VOX和耳机通讯指令ID*/
typedef enum {
OPEN_COVER = 0x00,
CLOSE_COVER,
BES_RESET,
SHUT_DOWN
} VOX_Comm_ID_e;
#endif
/* VOL Enable Type */
typedef enum {
VOX_VOUT_Mode = 0x00, //VOx 5V 输出使能
VOX_ADT_Mode, //VOx 负载接入、存在识别功能使能,负载自动识别
} VOX_Enable_Mode_e;
extern uint16_t Boost_Open_Atleast_Tim_Cnt;
extern uint8_t Vox_Pairing_State[2]; //耳机配对状态VOL:低4bitVOR:高4bit。0是无效1是正在配对2是配对成功3不处理保持当前状态。
extern bit Cover_Open_Flag;
//extern uint8_t Box_To_Bes_Comm_Debounce;
/******************************************************************************\
UserCfg.Functions definitions
\******************************************************************************/
extern void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select);
extern void Vox_Det_Machine(void);
#ifdef VOX_RX
extern void HandleVoxCommMsg(void);
#endif
#endif
#endif