/* ****************************************************************************** * * @file vox_comm.h * @brief VOX Communicate module * @ic sy8837/8/9 * * @version 1.0 * @date 2025/02/13 017:40:40 * @author Alex Xu * * Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd. * All Rights Reserved * * History: * Revision Date Author Desc * 1.0.0 2025/02/13 Alex build this file ****************************************************************************** */ #ifndef __VOX_COMM_H__ #define __VOX_COMM_H__ /*_____ I N C L U D E S ____________________________________________________*/ #include "define.h" /******************************************************************************\ Macro definitions \******************************************************************************/ /*耳机通道选择*/ #define TWS_VOL 0x04 #define TWS_VOR 0x05 #define TWS_BOX 0x02 #define TWS_PC 0x03 /*100ms调用周期*/ #define KEY_TWS_PAIR_TIMER 3 #define KEY_TWS_PAIR_CNT 10 #define Vox_COM_MSG_Tim 20 #if XUANHENG #define BOXHEADER (0xAAU) //VOX通讯数据包头 #else #define BOXHEADER (0x55AAUL) //VOX通讯数据包头 #define EARPHONE_HEADER_HIGH (0x55U) #define EARPHONE_HEADER_LOW (0xAAU) #define BOXIDCODE (0xFFU) //VOX通讯耳机->仓数据包头 #endif #define Vox_TX_Interval (2U) //Vox定时发送指令时间间隔 #define Vox_TX_Interval_2 (4U) #define TIM_SHUTDOWN_DEBOUNCE (600UL) //关机前debounce时间 /******************************************************************************\ Typedef definitions \******************************************************************************/ #ifdef VOX_COMM_ENABLE /* 双向通讯功能场景参数。 */ typedef struct VOX_COMM { #ifdef VOX_COVER_ENABLE uint8_t Cover_Close_Flag :1; //关盖发码标志位 uint8_t Cover_Open_Flag :1; //开盖发码标志位 uint8_t Vox_Chg_Full_Flag :1; //耳机充满发关机码标志位 #else uint8_t Vol_GetInto_Box_Flag :1; //VOL耳机入盒发码标志位 uint8_t Vor_GetInto_Box_Flag :1; //VOR耳机入盒发码标志位 uint8_t Vol_Chg_Full_Flag :1; //VOL耳机充满发码标志位 uint8_t Vor_Chg_Full_Flag :1; //VOR耳机充满发码标志位 #endif uint8_t Key_L_2S_Flag :1; //按键2s发码标志位 uint8_t Key_LL_8s_Flag :1; //按键8s发码标志位 /*发码相关计时器*/ uint8_t Msg_TX_Debounce; uint8_t Msg_TX_Debounce1; /*按键发码相关计时器*/ uint8_t Key_TWS_Pair_Tim; uint8_t Key_TWS_Clear_Pair_Tim; uint8_t Key_TWS_Pair_Cnt; }Vox_Comm_Cfg; extern Vox_Comm_Cfg gVox_Comm; #endif #if JIELI /*耳机通道选择*/ typedef enum { VOL_CHAN = 0x00, VOR_CHAN = 0x01, VOX_BOTH = 0xFF, }e_Vox_Chan; /*耳机和充电仓进行双向通讯的协议命令ID。*/ typedef enum _VOX_BES_COMMAND_E { VHOUSE_CMD_PAIR = 0x01, //充电仓发起的配对信息 VHOUSE_CMD_EXCH_TWS_BTADDR = 0x02, //交换对耳的蓝牙地址信息。 VHOUSE_CMD_CLEAR_PAIR = 0x03, //清配对信息 VHOUSE_CMD_OPEN_BOX = 0x06, //开盖获取电量包 VHOUSE_CMD_CLOSE_WIN_GET_VBAT = 0x07, //关盖获取电量包 VHOUSE_CMD_RST = 0x08, // VHOUSE_CMD_PWROFF = 0x80, //关机消息 VHOUSE_CMD_CLOSE_BOX = 0x81, BES_RESET = 0xE1, }VOX_BES_COMMAND_E; #elif ZHONGKE /*耳机通道选择*/ typedef enum { VOL_CHAN = 0x11, VOR_CHAN = 0x22, VOX_BOTH = 0xff, }e_Vox_Chan; /*耳机和充电仓进行双向通讯的协议命令ID。*/ typedef enum _VOX_BES_COMMAND_E { VHOUSE_CMD_GET_VBAT = 0x01, //获取电池电量,也可作为开始标志 VHOUSE_CMD_PAIR, //充电仓发起的配对信息 VHOUSE_CMD_GET_TWS_BTADDR, //获取对耳的蓝牙地址信息,充电仓无需使用本命令,本命令为对耳相互转发,充电仓只作转发缓存,收到该命令后,copy给另一只对耳即可。 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, //客户保留指令 BES_RESET = 0xE1, VHOUSE_CMD_CUSTOM_RESV_END = 0xEF, VHOUSE_CMD_SYS_RST = 0xFF, //系统复位指令 }VOX_BES_COMMAND_E; #elif XUANHENG /*耳机通道选择*/ #define TWS_VOL 0x04 #define TWS_VOR 0x05 #define TWS_BOX 0x02 #define TWS_PC 0x03 typedef enum { VOL_CHAN = 0x24, VOR_CHAN = 0x25, VOX_BOTH = 0x21, }e_Vox_Chan; /*耳机和充电仓进行双向通讯的协议命令ID。*/ typedef enum _VOX_BES_COMMAND_E { CMD_SHUT_DOWN = 0x0005, //关机 CMD_TWS_GET_BTADDR = 0x0037, //获取对耳MAC地址 CMD_TWS_SET_BTADDR = 0x000A, //写入对耳MAC地址 CMD_CLEAR_PAIR = 0x000B, //清除配对记录 CMD_HEARTBEAT = 0x000D, //心跳包 CMD_SN = 0x000E, //写入SN码到耳机 CMD_GET_INTO_PAIR = 0x000F, //耳机进入配对状态 CMD_PAIRING_IMD = 0x0011, //立即执行TWS配对 BES_RESET, //耳机复位Pattern }VOX_BES_COMMAND_E; #endif /******************************************************************************\ Global variables and functions \******************************************************************************/ #ifdef VOX_RX extern idata uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。 extern idata uint8_t Vox_Get_BES_Addr_Flag[2] ; #endif extern void Vox_Comm_Cfg_Clear(void); extern void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select); extern void Vox_Comm_Handle(void); extern void HandleVoxCommMsg(void); #endif