预定义的宏
// 多唤醒词网络切换
// 多唤醒网络切换使能 0:不使能;1:使能
#define MULTI_WAKE_UP_NET_SWITCH 0
// 切换唤醒词ID
#define SWITCH_WAKEWORD_ID 0
// 唤醒词网络总数
#define WAKE_UP_NET_TOTAL 0
// 切换播报提示id与唤醒网络序号的偏移量
#define PLAY_ID_OFFSET_SWITCH 0
函数void change_asr_wakeup_word(void)
/*** @brief 切换唤醒模型,这个函数是sys msg任务调用,其他任务需要切换模型需要发送切换模型消息* 通过sys msg任务调用*/
void change_asr_wakeup_word(void)
{
#if USE_SEPARATE_WAKEUP_ENif(MULTI_WAKE_UP_NET_SWITCH){cmd_info_change_cur_model_group(sys_manage_data.wakeup_net);}else{cmd_info_change_cur_model_group(1);}ignore_asr_msg++;sys_msg_t send_msg;send_msg.msg_type = SYS_MSG_TYPE_CMD_INFO;send_msg.msg_data.cmd_info_data.cmd_info_status = MSG_CMD_INFO_STATUS_ENABLE_PROCESS_ASR;send_msg_to_sys_task(&send_msg, NULL);#endif
}
函数:void change_asr_normal_word(void)
/*** @brief 切换正常模型,这个函数是sys msg任务调用,其他任务需要切换模型需要发送切换模型消息* 通过sys msg任务调用**/
void change_asr_normal_word(void)
{
//.....#if USE_SEPARATE_WAKEUP_ENcmd_info_change_cur_model_group(0);ignore_asr_msg++;sys_msg_t send_msg;send_msg.msg_type = SYS_MSG_TYPE_CMD_INFO;send_msg.msg_data.cmd_info_data.cmd_info_status = MSG_CMD_INFO_STATUS_ENABLE_PROCESS_ASR;send_msg_to_sys_task(&send_msg, NULL);#endif
//.....
}
函数:void set_wakeup_net(uint8_t wakeup_net)
/*** @arg:唤醒网络(本质是唤醒的组别)* @brief:切换唤醒网络组别和全局变量设置,并将其写入FLASH中**/
void set_wakeup_net(uint8_t wakeup_net)
{if ((wakeup_net >= 1 && wakeup_net <= WAKE_UP_NET_TOTAL) && sys_manage_data.wakeup_net != wakeup_net){cmd_info_change_cur_model_group(wakeup_net);sys_manage_data.wakeup_net = wakeup_net;cinv_item_write(NVDATA_ID_USER_WAKEUP_NET, sizeof(sys_manage_data.wakeup_net), &sys_manage_data.wakeup_net);}
}