Browse Source

feature:1.tcp服务添加心跳

pcb_v2
Zhangwen 4 months ago
parent
commit
a291edf9d8
  1. 3
      .vscode/settings.json
  2. 4
      source/app/app_config.c
  3. 35
      source/app/main.c
  4. 13
      source/app/task_game.c
  5. 83
      source/app/task_w600.c
  6. 15
      source/app/task_w600.h
  7. 30
      source/app/task_w600_ptc.c
  8. 20
      source/app/task_w600_ptc.h
  9. 59
      source/bsp/bsp_WT2605B.c
  10. 7
      source/bsp/bsp_WT2605B.h

3
.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"
}
}

4
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

35
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)
{

13
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();

83
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);

15
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
@ -88,8 +88,7 @@ struct _s_task_W600_Para
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;

30
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;
}

20
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);

59
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;

7
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();

Loading…
Cancel
Save