From a291edf9d810b3dc19f89006279c38601a60d299 Mon Sep 17 00:00:00 2001 From: Zhangwen <13970730+mkc46119@user.noreply.gitee.com> Date: Fri, 14 Mar 2025 15:39:58 +0800 Subject: [PATCH] =?UTF-8?q?feature=EF=BC=9A1.tcp=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BF=83=E8=B7=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 +- source/app/app_config.c | 4 +- source/app/main.c | 35 ++++++++-------- source/app/task_game.c | 13 +++--- source/app/task_w600.c | 83 ++++++++++++++++++++++++++++++-------- source/app/task_w600.h | 19 ++++----- source/app/task_w600_ptc.c | 30 ++++++++------ source/app/task_w600_ptc.h | 20 ++++++++- source/bsp/bsp_WT2605B.c | 59 +++++++++++++++++++-------- source/bsp/bsp_WT2605B.h | 7 ++++ 10 files changed, 191 insertions(+), 82 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index df5d262..bf2512d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -84,6 +84,7 @@ "time.h": "c", "task_pen_head.h": "c", "setjmp.h": "c", - "algorithm": "c" + "algorithm": "c", + "task_w600_ptc.h": "c" } } \ No newline at end of file diff --git a/source/app/app_config.c b/source/app/app_config.c index f121cd5..befdc14 100644 --- a/source/app/app_config.c +++ b/source/app/app_config.c @@ -24,10 +24,10 @@ void L3_param_init(void) //station模式状态 G.st_status = 0; //0:none 1:wifi_ok 2:tcp_connect_ok //station模式sid - Lc_strcpy(G.st_sid,"sdf"); + Lc_strcpy(G.st_sid,"YFRS"); // Lc_strcpy(G.st_sid,"iPhone11"); //station模式pwd - Lc_strcpy(G.st_pwd,"dfasgg"); + Lc_strcpy(G.st_pwd,"99999999"); // Lc_strcpy(G.st_pwd,"12345678"); //ap模式状态 G.ap_status = 0;//0: none 1: ap_ok 2:tcp_server_ok diff --git a/source/app/main.c b/source/app/main.c index a5d525d..ad7e48c 100644 --- a/source/app/main.c +++ b/source/app/main.c @@ -98,14 +98,13 @@ void main(void) { // OID数据采集 // L1_Oid_readoid(); - if(1 == s_nos_tick.t1s_heartbeat)//1s { s_nos_tick.t1s_heartbeat = 0;//置0清空 L0_uart0_uc('.'); // L0_uart0_sendstr("ADC = "); // L0_uart0_us(L1_ADC_Read(12)); - // L2_WT2605B_Broadcast(&audio_game_complete); + // L2_WT2605B_Broadcast(&audio_tcp_noplan); } // 游戏任务 L3_task_game_handler(&_s_task_game); @@ -127,21 +126,23 @@ void main(void) // L0_uart0_0d0a(); // L0_uart0_sendstr("oid_p"); // } - // // 系统状态任务 - // L3_task_appstatus_handler(&_s_task_appstatus); - // // 系统状态测试任务 - // // L3_task_AppTest_handler(&_s_task_apptest); - // // 按键状态任务 - // L3_task_keystatus_handler(&_s_task_keystatus); - // // OID和WIFI任务 - // if (R.app_status != POW_OFF) - // { - // // OID数据采集 - // L1_Oid_readoid(); - // // WIFI数据解析 - // L3_uart2_wifi_parse(); - // L2_task_W600_flow_handle(&_s_task_w600_para); - // } + // 系统状态任务 + L3_task_appstatus_handler(&_s_task_appstatus); + // 系统状态测试任务 + // L3_task_AppTest_handler(&_s_task_apptest); + // 按键状态任务 + L3_task_keystatus_handler(&_s_task_keystatus); + // OID和WIFI任务 + if (R.app_status != POW_OFF) + { + // OID数据采集 + L1_Oid_readoid(); + // WIFI数据解析 + L3_uart2_wifi_parse(); + L2_task_W600_flow_handle(&_s_task_w600_para); + } + + #if 0 if(s_uart0_rec.ok) { diff --git a/source/app/task_game.c b/source/app/task_game.c index 83ff7a0..c7c6872 100644 --- a/source/app/task_game.c +++ b/source/app/task_game.c @@ -66,7 +66,7 @@ void L3_task_game_init(void) _s_task_game.game_info[0].game_supported_oid[1].oid = 0x3136; _s_task_game.game_info[0].game_supported_oid[2].oid = 0x3137; _s_task_game.game_info[0].game_supported_oid[3].oid = 0x3138; - _s_task_game.game_info[0].game_supported_oid[4].oid = 0x3178; // + _s_task_game.game_info[0].game_supported_oid[4].oid = 0x3178; //错误码 _s_task_game.game_info[0].game_supported_oid[4].yes_or_no = 0; _s_task_game.game_info[0].game_order = 0; @@ -100,7 +100,7 @@ void L3_task_game_init(void) _s_task_game.game_info[1].game_supported_oid[22].oid = 0x3175; _s_task_game.game_info[1].game_supported_oid[23].oid = 0x3176; _s_task_game.game_info[1].game_supported_oid[24].oid = 0x3177; - _s_task_game.game_info[1].game_supported_oid[25].oid = 0x3179; // + _s_task_game.game_info[1].game_supported_oid[25].oid = 0x3179; //错误码 _s_task_game.game_info[1].game_supported_oid[25].yes_or_no = 0; _s_task_game.game_info[1].game_order = 1; _s_task_game.game_info[1].game_timeout_seconds = 600; @@ -114,7 +114,7 @@ void L3_task_game_init(void) _s_task_game.game_info[2].game_supported_oid[3].oid = 0x4E88; _s_task_game.game_info[2].game_supported_oid[4].oid = 0x4E89; _s_task_game.game_info[2].game_supported_oid[5].oid = 0x4E8A; - _s_task_game.game_info[2].game_supported_oid[6].oid = 0x317A; // + _s_task_game.game_info[2].game_supported_oid[6].oid = 0x317A; //错误码 _s_task_game.game_info[2].game_supported_oid[6].yes_or_no = 0; _s_task_game.game_info[2].game_order = 1; _s_task_game.game_info[2].game_timeout_seconds = 600; @@ -254,9 +254,6 @@ void L3_task_game_handler(S_TASK_GAME *s) } if (completed == 1) { - // 游戏结束,没有要进行的游戏 - s->game_info_index = -1; - L0_uart0_sendstr("It's completed."); // 游戏完成 L2_WT2605B_Broadcast(&audio_game_complete); L2_task_go_Tdelay(D_task_GAME_NET_SUBMIT,D_Tdelay_300ms); @@ -286,6 +283,10 @@ void L3_task_game_handler(S_TASK_GAME *s) _s_task_w600_para.submittaskpkg.Error_Time[1] = _s_task_game.eeror_times; _s_task_w600_para.submittaskpkg.Score[0] = 0; _s_task_w600_para.submittaskpkg.Score[1] = 0; + + // 游戏结束,没有要进行的游戏 + s->game_info_index = -1; + L0_uart0_sendstr("It's completed."); L2_task_go_Tdelay(D_task_READ_OID,D_Tdelay_300ms); TTSS_Task_end(); diff --git a/source/app/task_w600.c b/source/app/task_w600.c index 03b2ff7..d0180f5 100644 --- a/source/app/task_w600.c +++ b/source/app/task_w600.c @@ -10,13 +10,14 @@ /// @note cc_AS_stc02 ////////////////////////////////////////////////////////////////////////////// -#include "task_w600.h" - +#include "../app/task_w600.h" +#include "../app/task_w600_ptc.h" #include "app_config.h" #include "../msp/uart0.h" #include "../msp/uart2.h" #include "../asp/asp_oid.h" #include "../bsp/bsp_config.h" +#include "../bsp/bsp_WT2605B.h" struct _s_task_W600_Para _s_task_w600_para; @@ -41,19 +42,24 @@ char *GET_WIFI_INS() return wifi_ins; } -U8 wifi_rev_buf[128], wifi_tmp[64]; +// U8 wifi_rev_buf[128], wifi_tmp[64]; +U8 *wifi_rev_buf, wifi_tmp[64]; U8 tmp_num = 0; void L3_uart2_wifi_parse(void) { if (ts_uart[uNum2].r.ok == 1) { - U8 *ptr = wifi_rev_buf; + U8 *ptr = wifi_rev_buf = ts_uart[uNum2].r.buf; ts_uart[uNum2].r.ok = 0; - Lc_buf_copy_uc(wifi_rev_buf, ts_uart[uNum2].r.buf, ts_uart[uNum2].r.num); + // Lc_buf_copy_uc(wifi_rev_buf, ts_uart[uNum2].r.buf, ts_uart[uNum2].r.num); wifi_rev_buf[ts_uart[uNum2].r.num] = 0; if (_s_task_w600_para.st_cip_ok == 1) { - if (wifi_rev_buf,ts_uart[uNum2].r.num) + // L0_uart0_uc('$'); + // L0_uart0_sendArrayHex(wifi_rev_buf,ts_uart[uNum2].r.num); + // L0_uart0_0d0a(); + // 获取今日训练内容 + if (1 == parse_QueryAckPkg(wifi_rev_buf,ts_uart[uNum2].r.num)) { _s_task_w600_para.Recieve_QueryAck_Flag = 1; } @@ -126,12 +132,14 @@ void L3_task_W600_flow_init(U8 mode) _s_task_w600_para.mode = mode; _s_task_w600_para.send = 0; _s_task_w600_para.conn_ok = 0; - _s_task_w600_para.Send_Query_Flag = 1; - _s_task_w600_para.Recieve_QueryAck_Flag = 0; - _s_task_w600_para.Send_Submit_Flag = 0; - _s_task_w600_para.queryackpkg.Plan_ID[0] = 0; - _s_task_w600_para.queryackpkg.Plan_ID[1] = 0; - + _s_task_w600_para.last_send_seconds = 0; + + // 放到TCP连接成功是初始化 + // _s_task_w600_para.Send_Query_Flag = 1; + // _s_task_w600_para.Recieve_QueryAck_Flag = 0; + // _s_task_w600_para.Send_Submit_Flag = 0; + // _s_task_w600_para.queryackpkg.Plan_ID[0] = 0; + // _s_task_w600_para.queryackpkg.Plan_ID[1] = 0; } //------------------------ GM35 Flow Handle ----------------------------------- @@ -169,7 +177,8 @@ void L3_task_W600_flow_init(U8 mode) #define TTSS_TASK_GM35_FLOW_ST_SAMRTCSTOP 0x34 #define TTSS_TASK_GM35_FLOW_ST_SAMRTCSTOPPED 0x35 -#define TTSS_TASK_GM35_SEND_TPC 0x35 +#define TTSS_TASK_GM35_SEND_TPC 0x36 +#define TTSS_TASK_GM35_SEND_HEARTBEAT 0x37 #define INS_TIMEOUT 5 @@ -296,6 +305,14 @@ void L2_task_W600_flow_handle(struct _s_task_W600_Para *s) { s->send = 0; R.app_status = TCP_CONNECTED; + // 记录时间 + + _s_task_w600_para.Send_Query_Flag = 1; + _s_task_w600_para.Recieve_QueryAck_Flag = 0; + _s_task_w600_para.Send_Submit_Flag = 0; + _s_task_w600_para.queryackpkg.Plan_ID[0] = 0; + _s_task_w600_para.queryackpkg.Plan_ID[1] = 0; + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE1,D_Tdelay_1s); } else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT) @@ -346,21 +363,53 @@ void L2_task_W600_flow_handle(struct _s_task_W600_Para *s) { U8 num = constructor_QueryTaskPkg(); s->Send_Query_Flag = 0; + _s_task_w600_para.last_send_seconds = s_nos_tick.t_1s; L0_uart2_sendArray(&_s_task_w600_para.querytaskpkg,num); - + // L0_uart0_uc('Q'); + // L0_uart0_sendArray(&_s_task_w600_para.querytaskpkg,num); } else if (s->Send_Submit_Flag == 1) { U8 num = constructor_SubmitTaskPkg(); s->Send_Submit_Flag = 0; + _s_task_w600_para.last_send_seconds = s_nos_tick.t_1s; L0_uart2_sendArray(&_s_task_w600_para.submittaskpkg,num); + // L0_uart0_uc('S'); + // L0_uart0_sendArray(&_s_task_w600_para.submittaskpkg,num); } else if (s->Recieve_QueryAck_Flag == 1) { s->Recieve_QueryAck_Flag = 0; - // 根据_s_task_w600_para.queryackpkg.Game_ID[2] 找见响应音频 - // L2_WT2605B_Broadcast(s->game_info[i].game_audio); - + // 正常训练 + if (_s_task_w600_para.queryackpkg.Tranning_Status == 0) + { + L2_WT2605B_Broadcast_TPC(&s->queryackpkg.Game_ID); + L0_uart0_uchex('A'); + L0_uart0_sendArray(&_s_task_w600_para.queryackpkg,15); + } + // 训练完成 + else if (_s_task_w600_para.queryackpkg.Tranning_Status == 1) + { + L2_WT2605B_Broadcast(&audio_tcp_complete); + L0_uart0_uchex('A'); + L0_uart0_sendArray(&_s_task_w600_para.queryackpkg,15); + } + // 无训练任务 + else if (_s_task_w600_para.queryackpkg.Tranning_Status == 2) + { + L2_WT2605B_Broadcast(&audio_tcp_noplan); + L0_uart0_uchex('A'); + L0_uart0_sendArray(&_s_task_w600_para.queryackpkg,15); + } + } + L2_task_go_Tdelay(TTSS_TASK_GM35_SEND_HEARTBEAT,D_Tdelay_100ms); + TTSS_Task_step(TTSS_TASK_GM35_SEND_HEARTBEAT) + if (s_nos_tick.t_1s - _s_task_w600_para.last_send_seconds > 60) + { + U8 num = constructor_HeartBeatPkg(); + L0_uart2_sendArray(&_s_task_w600_para.heartbeatpkg,num); + // L0_uart0_sendArray(&_s_task_w600_para.heartbeatpkg,num); + _s_task_w600_para.last_send_seconds = s_nos_tick.t_1s; } L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_DATA,D_Tdelay_100ms); diff --git a/source/app/task_w600.h b/source/app/task_w600.h index ef3221c..ce0d675 100644 --- a/source/app/task_w600.h +++ b/source/app/task_w600.h @@ -20,7 +20,7 @@ #include "../tpc/at0d0a.h" #include "../tpc/ccmodbus.h" #include "../msp/msp_eeprom.h" -#include "../app/task_w600_tpc.h" +#include "../app/task_w600_ptc.h" ////<<<<<<<<<<<<<<<<<<< GM35模块 AT操作指令 <<<<<<<<<<<<<<<<<<<<<<<< @@ -31,7 +31,7 @@ #define AT_INS_ST "AT+CWMODE=1\r\n" //进入station模式 1-2 // #define AT_INS_ST_WIFI "AT+CWJAP_DEF=\"ccsens\",\"ccsens123\"\r\n" // 1-3 #define AT_INS_ST_CIPMUX0 "AT+CIPMUX=0\r\n" // 单连接模式 1-4 -#define AT_INS_ST_TCP "AT+CIPSTART=\"TCP\",\"192.168.1.2\",777\r\n" //连接服务器 1-5 +#define AT_INS_ST_TCP "AT+CIPSTART=\"TCP\",\"192.168.1.141\",777\r\n" //连接服务器 1-5 //#define AT_INS_ST_TCP "AT+CIPSTART=\"TCP\",\"192.168.0.81\",4001\r\n" //连接服务器 #define AT_INS_ST_CIPMODE1 "AT+CIPMODE=1\r\n" //设置传输模式 0普通传输模式 1透传模式 1-6 #define AT_INS_ST_CIPSEND "AT+CIPSEND\r\n" //发送数据 1-7 @@ -85,11 +85,10 @@ struct _s_task_W600_Para vU32 ins_stmp; //指令时间戳 vU32 gprs_last_recv_stmp; //上次接收指令时间戳 vU32 tcp_last_recv_stmp; //上次接收数据时间戳 - vU32 tcp_conn_stmp; //断开连接时间戳 - vU32 tcp_close_stmp; //断开连接时间戳 + vU32 tcp_conn_stmp; //断开连接时间戳 + vU32 tcp_close_stmp; //断开连接时间戳 - vU32 heart_stmp; //连接成功后,等待发送时间 - vU32 data_stmp;//数据发送时间记录 + vU32 last_send_seconds; //最后一次发送数据时间 vU8 sign_flag; //发送登录数据标志 vU8 ack_flag;//下行数据ack @@ -97,11 +96,13 @@ struct _s_task_W600_Para vU8 smartc_ok; //smartconfig是否成功 - //任务请求 + //心跳数据包 + HeartBeatPkg heartbeatpkg; + //任务请求数据包 QueryTaskPkg querytaskpkg; - //请求响应 + //请求响应数据包 QueryAckPkg queryackpkg; - //成绩提交 + //成绩提交数据包 SubmitTaskPkg submittaskpkg; // 发送请求标志位 1发送请求 0不发送请求 U8 Send_Query_Flag; diff --git a/source/app/task_w600_ptc.c b/source/app/task_w600_ptc.c index a2ba41d..1d9a512 100644 --- a/source/app/task_w600_ptc.c +++ b/source/app/task_w600_ptc.c @@ -1,7 +1,24 @@ #include "../app/task_w600_ptc.h" #include "../app/task_w600.h" +#include "../app/app_config.h" +U8 constructor_HeartBeatPkg() +{ + _s_task_w600_para.heartbeatpkg.filter[0] = 0xAA; + _s_task_w600_para.heartbeatpkg.filter[1] = 0xBB; + _s_task_w600_para.heartbeatpkg.num = 0x07; + _s_task_w600_para.heartbeatpkg.cmd = 0xA0; + _s_task_w600_para.heartbeatpkg.did[0] = G.mcu_id[3]; + _s_task_w600_para.heartbeatpkg.did[1] = G.mcu_id[4]; + _s_task_w600_para.heartbeatpkg.did[2] = G.mcu_id[5]; + _s_task_w600_para.heartbeatpkg.did[3] = G.mcu_id[6]; + _s_task_w600_para.heartbeatpkg.crc[0] = 0xCC; + _s_task_w600_para.heartbeatpkg.crc[1] = 0xDD; + + return _s_task_w600_para.heartbeatpkg.num + 3; +} + U8 constructor_QueryTaskPkg() { _s_task_w600_para.querytaskpkg.filter[0] = 0xAA; @@ -15,8 +32,6 @@ U8 constructor_QueryTaskPkg() _s_task_w600_para.querytaskpkg.crc[0] = 0xCC; _s_task_w600_para.querytaskpkg.crc[1] = 0xDD; - //CRC - // crc16(_s_task_w600_para.crc, &_s_task_w600_para.cmder, num - 2); return _s_task_w600_para.querytaskpkg.num + 3; } @@ -31,11 +46,9 @@ U8 constructor_SubmitTaskPkg() _s_task_w600_para.submittaskpkg.did[2] = G.mcu_id[5]; _s_task_w600_para.submittaskpkg.did[3] = G.mcu_id[6]; // 其他属性在游戏完成时赋值 - _s_task_w600_para.submittaskpkg.cmd[0] = 0xCC; + _s_task_w600_para.submittaskpkg.crc[0] = 0xCC; _s_task_w600_para.submittaskpkg.crc[1] = 0xDD; - //CRC - // crc16(_s_task_w600_para.crc, &_s_task_w600_para.cmder, num - 2); return _s_task_w600_para.submittaskpkg.num + 3; } @@ -65,7 +78,6 @@ U8 parse_QueryAckPkg(U8* d,U8 num) _s_task_w600_para.queryackpkg.Game_ID[0] = d[10]; _s_task_w600_para.queryackpkg.Game_ID[1] = d[11]; _s_task_w600_para.queryackpkg.Tranning_Status = d[12]; - // 其他属性在游戏完成时赋值 _s_task_w600_para.queryackpkg.crc[0] = d[13]; _s_task_w600_para.queryackpkg.crc[1] = d[14]; @@ -74,13 +86,7 @@ U8 parse_QueryAckPkg(U8* d,U8 num) { return 0; } - //CRC - // crc16(_s_task_w600_para.crc, &_s_task_w600_para.cmder, num - 2); return 1; - - - - } diff --git a/source/app/task_w600_ptc.h b/source/app/task_w600_ptc.h index 68386d2..f4743e4 100644 --- a/source/app/task_w600_ptc.h +++ b/source/app/task_w600_ptc.h @@ -16,6 +16,21 @@ #include "../clib/type.h" +//心跳数据包 +typedef struct { + //起始码 + U8 filter[2]; + //长度 + U8 num; + //Cmd + U8 cmd; + //设备ID + U8 did[4]; + //校验 + U8 crc[2]; +}HeartBeatPkg; + +//任务请求数据包 typedef struct { //起始码 U8 filter[2]; @@ -29,6 +44,7 @@ typedef struct { U8 crc[2]; }QueryTaskPkg; +//请求响应数据包 typedef struct { //起始码 U8 filter[2]; @@ -48,6 +64,7 @@ typedef struct { U8 crc[2]; }QueryAckPkg; +//成绩提交数据包 typedef struct { //起始码 U8 filter[2]; @@ -72,9 +89,10 @@ typedef struct { }SubmitTaskPkg; +extern U8 constructor_HeartBeatPkg(void); extern U8 constructor_QueryTaskPkg(void); extern U8 constructor_SubmitTaskPkg(void); -extern U8 parse_QueryAckPkg(void); +extern U8 parse_QueryAckPkg(U8* d,U8 num); diff --git a/source/bsp/bsp_WT2605B.c b/source/bsp/bsp_WT2605B.c index 396d38f..b7fbbce 100644 --- a/source/bsp/bsp_WT2605B.c +++ b/source/bsp/bsp_WT2605B.c @@ -5,23 +5,30 @@ #include "../msp/msp_eeprom.h" -TS_SPEECH_AUDIO audio_powerdown = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x31,0x8F,0xEF}; //电源关闭 -TS_SPEECH_AUDIO audio_poweron = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x32,0x90,0xEF}; //电源开启 -TS_SPEECH_AUDIO audio_wifi_connected = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x33,0x91,0xEF}; //WIFI连接成功 -TS_SPEECH_AUDIO audio_TCP_connected = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x34,0x92,0xEF}; //TCP连接成功 -TS_SPEECH_AUDIO audio_config_mode = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x35,0x93,0xEF}; //配置模式 -TS_SPEECH_AUDIO audio_config_complete = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x36,0x94,0xEF}; //配置完成 -TS_SPEECH_AUDIO audio_config_phone = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x37,0x95,0xEF}; //手机APP配置 -TS_SPEECH_AUDIO audio_volume_up = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x38,0x96,0xEF}; //音量增加 -TS_SPEECH_AUDIO audio_volume_down = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x39,0x97,0xEF}; //音量减少 - -TS_SPEECH_AUDIO audio_game_maze = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x30,0x8F,0xEF}; //迷宫 -TS_SPEECH_AUDIO audio_game_different = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x31,0x90,0xEF}; //找不同 -TS_SPEECH_AUDIO audio_game_shulte = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x32,0x91,0xEF}; //舒尔特方格 -TS_SPEECH_AUDIO audio_game_error = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x33,0x92,0xEF}; //错误 -TS_SPEECH_AUDIO audio_game_correct = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x34,0x93,0xEF}; //正确提示音 -TS_SPEECH_AUDIO audio_game_overtime = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x35,0x94,0xEF}; //训练时间到 -TS_SPEECH_AUDIO audio_game_complete = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x36,0x95,0xEF}; //训练完成 +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}; //T003WIFI连接成功 +TS_SPEECH_AUDIO audio_TCP_connected = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x34,0x92,0xEF}; //T004TCP连接成功 +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_game_maze = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x30,0x8F,0xEF}; //T010迷宫 +TS_SPEECH_AUDIO audio_game_different = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x31,0x90,0xEF}; //T011找不同 +TS_SPEECH_AUDIO audio_game_shulte = {0x7E,0x07,0xA3,0x54,0x30,0x31,0x32,0x91,0xEF}; //T012舒尔特方格 +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}; //音量控制 @@ -51,6 +58,24 @@ 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; diff --git a/source/bsp/bsp_WT2605B.h b/source/bsp/bsp_WT2605B.h index f9e35c1..20cf27f 100644 --- a/source/bsp/bsp_WT2605B.h +++ b/source/bsp/bsp_WT2605B.h @@ -43,12 +43,19 @@ extern TS_SPEECH_AUDIO audio_game_correct; //正确 extern TS_SPEECH_AUDIO audio_game_overtime; //训练时间到 extern TS_SPEECH_AUDIO audio_game_complete; //训练完成 +extern TS_SPEECH_AUDIO audio_tcp_maze; +extern TS_SPEECH_AUDIO audio_tcp_different; +extern TS_SPEECH_AUDIO audio_tcp_shulte; +extern TS_SPEECH_AUDIO audio_tcp_complete; +extern TS_SPEECH_AUDIO audio_tcp_noplan; + extern TS_SPEECH_VOLUME volume_control; extern void L2_WT2605B_init(); extern void L2_WT2605B_PWRON(); extern void L2_WT2605B_PWROFF(); extern void L2_WT2605B_Broadcast(TS_SPEECH_AUDIO *music); +extern void L2_WT2605B_Broadcast_TPC(U8* GameID); extern void L2_WT2605B_VolumeControl(U8 grade); extern void L2_WT2605B_VioceUp(); extern void L2_WT2605B_VioceDown();