You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
7.9 KiB
143 lines
7.9 KiB
#include "../bsp/bsp_WT2605B.h"
|
|
#include "../app/app_config.h"
|
|
#include "../msp/UART3.h"
|
|
#include "../msp/UART0.h"
|
|
#include "../msp/msp_eeprom.h"
|
|
|
|
/****************************************系统提示音****************************************/
|
|
TS_SPEECH_AUDIO audio_powerdown = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x31,0x8F,0xEF}; //T001 谢谢使用,再见
|
|
TS_SPEECH_AUDIO audio_poweron = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x32,0x90,0xEF}; //T002 欢迎使用睿思认知训练系统
|
|
TS_SPEECH_AUDIO audio_wifi_connected = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x33,0x91,0xEF}; //T003 WIFI链接成功
|
|
TS_SPEECH_AUDIO audio_TCP_connected = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x34,0x92,0xEF}; //T004 服务器连接成功
|
|
TS_SPEECH_AUDIO audio_config_mode = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x35,0x93,0xEF}; //T005 进入配网模式
|
|
TS_SPEECH_AUDIO audio_config_complete = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x36,0x94,0xEF}; //T006 配网成功,请重启设备
|
|
TS_SPEECH_AUDIO audio_config_phone = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x37,0x95,0xEF}; //T007 进入配网模式,请打开APP进行配置
|
|
TS_SPEECH_AUDIO audio_volume_up = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x38,0x96,0xEF}; //T008 音量增大
|
|
TS_SPEECH_AUDIO audio_volume_down = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x39,0x97,0xEF}; //T009 音量减小
|
|
TS_SPEECH_AUDIO audio_low_power = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x32,0x92,0xEF}; //T022 电池电量低,请及时充电
|
|
/****************************************训练提示音****************************************/
|
|
TS_SPEECH_AUDIO audio_game_maze_1 = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x30,0x8F,0xEF}; //T010 走迷宫,一星。请按照要求画出一条从入口到出口的线,不能跨越实线
|
|
TS_SPEECH_AUDIO audio_game_different_1 = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x31,0x90,0xEF}; //T011 找不同,一星。请找出两张图片中不同的地方
|
|
TS_SPEECH_AUDIO audio_game_shulte_1 = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x32,0x91,0xEF}; //T012 舒尔特方格,一星。请按照从小到大的顺序依次指出1-25
|
|
|
|
TS_SPEECH_AUDIO audio_game_zlxs_4 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x33,0x93,0xEF}; //T023 众里寻3,四星。请按顺序逐行依次指出3和3的倍数,以及含3的数字方块
|
|
TS_SPEECH_AUDIO audio_game_hyjj_3 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x34,0x94,0xEF}; //T024 火眼金晶,三星。请快速找出顺时针旋转90度的数字方块
|
|
TS_SPEECH_AUDIO audio_game_hyjj_4 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x35,0x95,0xEF}; //T025 火眼金晶,四星。请快速找出顺时针旋转180度的数字方块
|
|
TS_SPEECH_AUDIO audio_game_hyjj_5 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x36,0x96,0xEF}; //T026 火眼金晶,五星。请快速找出顺时针旋转270度的数字方块
|
|
TS_SPEECH_AUDIO audio_game_cxdd_4 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x34,0x94,0xEF}; //T027 从小到大,四星。请按照从小到大的顺序依次指出刚才出现的数字
|
|
TS_SPEECH_AUDIO audio_game_mcqh_4 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x35,0x95,0xEF}; //T028 明察秋毫,四星。请按顺序指出数字积木的位置
|
|
TS_SPEECH_AUDIO audio_game_mcqh_5 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x36,0x96,0xEF}; //T029 明察秋毫,五星。请按顺序指出数字积木的位置
|
|
TS_SPEECH_AUDIO audio_game_jmzx_3 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x34,0x94,0xEF}; //T030 积木再现,三星。请回忆数字积木的位置并指出
|
|
TS_SPEECH_AUDIO audio_game_jmzx_4 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x35,0x95,0xEF}; //T031 积木再现,四星。请回忆数字积木的位置并指出
|
|
TS_SPEECH_AUDIO audio_game_jmzx_5 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x36,0x96,0xEF}; //T032 积木再现,五星。请回忆数字积木的位置并指出
|
|
TS_SPEECH_AUDIO audio_game_hyzb_1 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x34,0x94,0xEF}; //T033 还原钟表,一星。请将数字摆放在钟表合适的位置上
|
|
TS_SPEECH_AUDIO audio_game_hyzb_2 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x35,0x95,0xEF}; //T034 还原钟表,二星。请将数字摆放在钟表合适的位置上
|
|
TS_SPEECH_AUDIO audio_game_sjgh_3 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x36,0x96,0xEF}; //T035 时间规划,三星。请按提示将指针指向相应的时间
|
|
TS_SPEECH_AUDIO audio_game_jssj_4 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x34,0x94,0xEF}; //T036 计算时间,四星。计算并将钟表拨动至相应的位置
|
|
TS_SPEECH_AUDIO audio_game_jssj_5 = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x35,0x95,0xEF}; //T037 计算时间,五星。计算并将钟表拨动至相应的位置
|
|
|
|
|
|
TS_SPEECH_AUDIO audio_game_error = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x33,0x92,0xEF}; //T013 错误
|
|
TS_SPEECH_AUDIO audio_game_correct = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x34,0x93,0xEF}; //T014 “正确提示音”
|
|
TS_SPEECH_AUDIO audio_game_overtime = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x35,0x94,0xEF}; //T015 超时结束,再接再励
|
|
TS_SPEECH_AUDIO audio_game_complete = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x36,0x95,0xEF}; //T016 恭喜你,任务完成
|
|
/****************************************服务器下发任务************************************/
|
|
TS_SPEECH_AUDIO audio_tcp_maze = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x37,0x96,0xEF}; //T017 请进行走迷宫游戏训练
|
|
TS_SPEECH_AUDIO audio_tcp_different = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x38,0x97,0xEF}; //T018 请进行找不同游戏训练
|
|
TS_SPEECH_AUDIO audio_tcp_shulte = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x39,0x98,0xEF}; //T019 请进行舒尔特方格游戏训练
|
|
TS_SPEECH_AUDIO audio_tcp_complete = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x30,0x90,0xEF}; //T020 恭喜你,今天所有训练任务已完成
|
|
TS_SPEECH_AUDIO audio_tcp_noplan = {0x7E,0x07,0xA3,0x54,0x30,0x32,0x31,0x91,0xEF}; //T021 今天暂无训练任务,可以进行自由训练哦
|
|
|
|
TS_SPEECH_VOLUME volume_control = {0x7E,0x04,0xAE,0x1E,0xD0,0xEF}; //音量控制
|
|
|
|
|
|
void L2_WT2605B_init()
|
|
{
|
|
D_stdIO_P0(BITN0);
|
|
D_stdIO_P0(BITN1);
|
|
// 电源控制引脚
|
|
// D_HighI_P0(BITN5);
|
|
// L2_WT2605B_PWRON();
|
|
// 初始化音量
|
|
L2_WT2605B_VolumeControl(G.volume);
|
|
// 功放控制引脚P26 0 开启 1 关闭
|
|
D_HighI_P2(BITN6);
|
|
P26 = 0;
|
|
|
|
}
|
|
|
|
void L2_WT2605B_PWRON()
|
|
{
|
|
D_P05_ON();
|
|
}
|
|
void L2_WT2605B_PWROFF()
|
|
{
|
|
D_P05_OFF();
|
|
}
|
|
|
|
void L2_WT2605B_Broadcast(TS_SPEECH_AUDIO *music)
|
|
{
|
|
L0_uart3_sendArray((U8 *)music,9);
|
|
}
|
|
|
|
void L2_WT2605B_Broadcast_TPC(U8* GameID)
|
|
{
|
|
if (GameID[0] == 0x31 && GameID[1] == 0x52)
|
|
{
|
|
L2_WT2605B_Broadcast(&audio_tcp_maze);
|
|
}
|
|
else if (GameID[0] == 0x31 && GameID[1] == 0x33)
|
|
{
|
|
L2_WT2605B_Broadcast(&audio_tcp_different);
|
|
}
|
|
else if (GameID[0] == 0x31 && GameID[1] == 0x42)
|
|
{
|
|
L2_WT2605B_Broadcast(&audio_tcp_shulte);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void L2_WT2605B_VolumeControl(U8 grade)
|
|
{
|
|
volume_control.grade = grade;
|
|
volume_control.crc = volume_control.num + volume_control.cmd + volume_control.grade;
|
|
L0_uart3_sendArray((U8 *)&volume_control,6);
|
|
}
|
|
// 音量设置6个档位:0x15,0x17,0x19,0x1B,0x1D,0x1F
|
|
void L2_WT2605B_VioceUp(void)
|
|
{
|
|
if (volume_control.grade >= 0x15 && volume_control.grade < 0x1F)
|
|
{
|
|
volume_control.grade = volume_control.grade + 2;
|
|
G.volume = volume_control.grade;
|
|
L0_Iap_Program_array(EEPROM_DATA_ADDR,(U8*)&G,sizeof(G));
|
|
}
|
|
else
|
|
{
|
|
volume_control.grade = volume_control.grade;
|
|
G.volume = volume_control.grade;
|
|
L0_Iap_Program_array(EEPROM_DATA_ADDR,(U8*)&G,sizeof(G));
|
|
}
|
|
L2_WT2605B_VolumeControl(G.volume);
|
|
L2_WT2605B_Broadcast(&audio_volume_up);
|
|
}
|
|
|
|
void L2_WT2605B_VioceDown(void)
|
|
{
|
|
if (volume_control.grade > 0x15 && volume_control.grade <= 0x1F)
|
|
{
|
|
volume_control.grade = volume_control.grade - 2;
|
|
G.volume = volume_control.grade;
|
|
L0_Iap_Program_array(EEPROM_DATA_ADDR,(U8*)&G,sizeof(G));
|
|
}
|
|
else
|
|
{
|
|
volume_control.grade = volume_control.grade;
|
|
G.volume = volume_control.grade;
|
|
L0_Iap_Program_array(EEPROM_DATA_ADDR,(U8*)&G,sizeof(G));
|
|
}
|
|
L2_WT2605B_VolumeControl(G.volume);
|
|
L2_WT2605B_Broadcast(&audio_volume_down);
|
|
}
|
|
|
|
|