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.

980 lines
43 KiB

////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
///-------------------------------------------------------------------------
/// @file bsp_drv.c
/// @brief bsp @ driver config
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20180331
/// @note cc_AS_stc02
//////////////////////////////////////////////////////////////////////////////
#include "../app/task_game.h"
#include "../bsp/bsp_oid.h"
#include "../app/app_config.h"
#include "../bsp/bsp_config.h"
#include "../msp/uart0.h"
#include "../msp/uart3.h"
#include "../bsp/bsp_WT2605B.h"
#include "../app/task_w600.h"
// 1.系统不识别的码为无效码:0x3FFF 和 0x0000
// 2.game_supported_oid 支持码:本游戏支持的
// 3.游戏标识码
// 4.游戏内容码:正确码和错误码0x**FF:单个游戏内的
// 非点读类游戏
/*************************************游戏标识码***************************************** */
/***************************************PAGE1******************************************* */
/****************************************15个******************************************* */
#define GAME_OID_ZLXS_4 0x2800
#define GAME_OID_HYJJ_3 0x2900
#define GAME_OID_HYJJ_4 0x2A00
#define GAME_OID_HYJJ_5 0x2B00
#define GAME_OID_CXDD_4 0x2C00
#define GAME_OID_MCQH_4 0x2D00
#define GAME_OID_MCQH_5 0x2E00
#define GAME_OID_JMZX_3 0x2F00
#define GAME_OID_JMZX_4 0x3000
#define GAME_OID_JMZX_5 0x3100
#define GAME_OID_HYZB_1 0x4000
#define GAME_OID_HYZB_2 0x4100
#define GAME_OID_SJGH_3 0x4200
#define GAME_OID_JSSJ_4 0x4300
#define GAME_OID_JSSJ_5 0x4400
/*************************************游戏标识码***************************************** */
/***************************************PAGE2******************************************* */
/****************************************24个******************************************* */
#define GAME_OID_YXPL_1 0x1000
#define GAME_OID_YXPL_2 0x1100
#define GAME_OID_YDSD_1 0x1200
#define GAME_OID_YDSD_SZDD_1 0x1300
#define GAME_OID_YDSD_2 0x1400
#define GAME_OID_YDSD_SZDD_2 0x1500
#define GAME_OID_BBDX_1 0x1600
#define GAME_OID_BBDX_2 0x1700
#define GAME_OID_BBDX_3 0x1800
#define GAME_OID_BBDX_4 0x1900
#define GAME_OID_CSCD_2 0x1A00
#define GAME_OID_CSCD_3 0x1B00
#define GAME_OID_DQPM_2 0x1C00
#define GAME_OID_DQPM_3 0x1D00
#define GAME_OID_SZSB_2 0x1E00
#define GAME_OID_SZSB_3 0x1F00
#define GAME_OID_SZDB_2 0x2000
#define GAME_OID_SZDB_3 0x2100
#define GAME_OID_SETFG_3 0x2200
#define GAME_OID_SETFG_SZXZ_3 0x2300
#define GAME_OID_SETFG_4 0x2400
#define GAME_OID_SETFG_5 0x2500
#define GAME_OID_SETFG_SZDD_5 0x2600
#define GAME_OID_ZLXS_3 0x2700
/*************************************************************************************** */
// 点读类游戏
#define GAME_OID_ZBT_1 0xB000
#define GAME_OID_SHERT_1 0x2200
#define GAME_OID_ZMG_1 0xC000
// 无效码
#define INVALID_OID 0x3FFF
// 游戏最大时长
#define GAME_MAX_SECONDS 600
S_TASK_GAME _s_task_game;
POINT_BUF pointbuf;
void L3_task_game_init(void)
{
U8 i = 0;
2 months ago
U16 k = 0;
U8 j = 0;
U8 *p = (U8*)&pointbuf;
L1_task_init(&_s_task_game.task);
L3_task_s_go(_s_task_game,D_task_init);
_s_task_game.read_oid = 0;
_s_task_game.invalid_oid = INVALID_OID;
_s_task_game.game_maxseconds = GAME_MAX_SECONDS;
_s_task_game.game_info_index = -1;
_s_task_game.game_point_index = -1;
_s_task_game.start_seconds = 0;
_s_task_game.eeror_times = 0;
// L0_uart0_0d0a();
// L0_uart0_ushex(sizeof(pointbuf)); 406
// 将pointbuf中每一个字节的数据置为0
2 months ago
for (k = 0; k < sizeof(pointbuf); k++)
{
*p++ = 0;
}
2 months ago
// p = (U8*)&pointbuf;
// 找不同1星
_s_task_game.game_info[0].game_oid = GAME_OID_ZBT_1;
_s_task_game.game_info[0].game_audio = &audio_game_different_1;
_s_task_game.game_info[0].game_supported_oid = pointbuf.zbt_1;
_s_task_game.game_info[0].game_oid_num = zbt_1_num;
_s_task_game.game_info[0].game_supported_oid[0].oid = 0xB001;
_s_task_game.game_info[0].game_supported_oid[1].oid = 0xB002;
_s_task_game.game_info[0].game_supported_oid[2].oid = 0xB003;
_s_task_game.game_info[0].game_supported_oid[3].oid = 0xB0FF; //错误码
_s_task_game.game_info[0].game_supported_oid[3].yes_or_no = 1;
_s_task_game.game_info[0].game_order = 0;
_s_task_game.game_info[0].game_timeout_seconds = 60;
_s_task_game.game_info[0].game_score = 0;
// 舒尔特方格3星
_s_task_game.game_info[1].game_oid = GAME_OID_SHERT_1;
_s_task_game.game_info[1].game_audio = &audio_game_shulte_3;
_s_task_game.game_info[1].game_supported_oid = pointbuf.shert_3;
_s_task_game.game_info[1].game_oid_num = shert_3_num;
_s_task_game.game_info[1].game_supported_oid[0].oid = 0x2201;
_s_task_game.game_info[1].game_supported_oid[1].oid = 0x2202;
_s_task_game.game_info[1].game_supported_oid[2].oid = 0x2203;
_s_task_game.game_info[1].game_supported_oid[3].oid = 0x2204;
_s_task_game.game_info[1].game_supported_oid[4].oid = 0x2205;
_s_task_game.game_info[1].game_supported_oid[5].oid = 0x2206;
_s_task_game.game_info[1].game_supported_oid[6].oid = 0x2207;
_s_task_game.game_info[1].game_supported_oid[7].oid = 0x2208;
_s_task_game.game_info[1].game_supported_oid[8].oid = 0x2209;
_s_task_game.game_info[1].game_supported_oid[9].oid = 0x220A;
_s_task_game.game_info[1].game_supported_oid[10].oid = 0x220B;
_s_task_game.game_info[1].game_supported_oid[11].oid = 0x220C;
_s_task_game.game_info[1].game_supported_oid[12].oid = 0x220D;
_s_task_game.game_info[1].game_supported_oid[13].oid = 0x220E;
_s_task_game.game_info[1].game_supported_oid[14].oid = 0x220F;
_s_task_game.game_info[1].game_supported_oid[15].oid = 0x2210;
_s_task_game.game_info[1].game_supported_oid[16].oid = 0x2211;
_s_task_game.game_info[1].game_supported_oid[17].oid = 0x2212;
_s_task_game.game_info[1].game_supported_oid[18].oid = 0x2213;
_s_task_game.game_info[1].game_supported_oid[19].oid = 0x2214;
_s_task_game.game_info[1].game_supported_oid[20].oid = 0x2215;
_s_task_game.game_info[1].game_supported_oid[21].oid = 0x2216;
_s_task_game.game_info[1].game_supported_oid[22].oid = 0x2217;
_s_task_game.game_info[1].game_supported_oid[23].oid = 0x2218;
_s_task_game.game_info[1].game_supported_oid[24].oid = 0x2219;
_s_task_game.game_info[1].game_supported_oid[25].oid = 0x22FF; //错误码
_s_task_game.game_info[1].game_supported_oid[25].yes_or_no = 1;
_s_task_game.game_info[1].game_order = 1;
_s_task_game.game_info[1].game_timeout_seconds = 120;
_s_task_game.game_info[1].game_score = 0;
// 走迷宫1星
_s_task_game.game_info[2].game_oid = GAME_OID_ZMG_1;
// _s_task_game.game_info[2].game_audio = &audio_game_maze_1;
// _s_task_game.game_info[2].game_supported_oid = pointbuf.zmg_1;
// _s_task_game.game_info[2].game_oid_num = zmg_1_num;
// _s_task_game.game_info[2].game_supported_oid[0].oid = 0xC001;
// _s_task_game.game_info[2].game_supported_oid[1].oid = 0xC002;
// _s_task_game.game_info[2].game_supported_oid[2].oid = 0xC003;
// _s_task_game.game_info[2].game_supported_oid[3].oid = 0xC004;
// _s_task_game.game_info[2].game_supported_oid[4].oid = 0xC005;
// _s_task_game.game_info[2].game_supported_oid[5].oid = 0xC0FF; //错误码
// _s_task_game.game_info[2].game_supported_oid[5].yes_or_no = 1;
// _s_task_game.game_info[2].game_order = 1;
// _s_task_game.game_info[2].game_timeout_seconds = 60;
// _s_task_game.game_info[2].game_score = 0;
/*************************************************************************************** */
/***************************************PAGE1******************************************* */
/****************************************15个******************************************* */
// 众里寻三,4星
_s_task_game.game_info[3].game_oid = GAME_OID_ZLXS_4;
_s_task_game.game_info[3].game_audio = &audio_game_zlxs_4;
_s_task_game.game_info[3].game_supported_oid = pointbuf.zlxs_4;
_s_task_game.game_info[3].game_oid_num = zlxs_4_num;
_s_task_game.game_info[3].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[3].game_order = 0;
_s_task_game.game_info[3].game_timeout_seconds = 60;
_s_task_game.game_info[3].game_score = 0;
// 火眼金晶,3星
_s_task_game.game_info[4].game_oid = GAME_OID_HYJJ_3;
_s_task_game.game_info[4].game_audio = &audio_game_hyjj_3;
_s_task_game.game_info[4].game_supported_oid = pointbuf.hyjj_3;
_s_task_game.game_info[4].game_oid_num = hyjj_3_num;
_s_task_game.game_info[4].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[4].game_order = 0;
_s_task_game.game_info[4].game_timeout_seconds = 60;
_s_task_game.game_info[4].game_score = 0;
// 火眼金晶,4星
_s_task_game.game_info[5].game_oid = GAME_OID_HYJJ_4;
_s_task_game.game_info[5].game_audio = &audio_game_hyjj_4;
_s_task_game.game_info[5].game_supported_oid = pointbuf.hyjj_4;
_s_task_game.game_info[5].game_oid_num = hyjj_4_num;
_s_task_game.game_info[5].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[5].game_order = 0;
_s_task_game.game_info[5].game_timeout_seconds = 60;
_s_task_game.game_info[5].game_score = 0;
// 火眼金晶,5星
_s_task_game.game_info[6].game_oid = GAME_OID_HYJJ_5;
_s_task_game.game_info[6].game_audio = &audio_game_hyjj_5;
2 months ago
_s_task_game.game_info[6].game_supported_oid = pointbuf.hyjj_5;
_s_task_game.game_info[6].game_oid_num = hyjj_5_num;
_s_task_game.game_info[6].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[6].game_order = 0;
_s_task_game.game_info[6].game_timeout_seconds = 60;
_s_task_game.game_info[6].game_score = 0;
// 从小到大,4星
_s_task_game.game_info[7].game_oid = GAME_OID_CXDD_4;
_s_task_game.game_info[7].game_audio = &audio_game_cxdd_4;
_s_task_game.game_info[7].game_supported_oid = pointbuf.cxdd_4;
_s_task_game.game_info[7].game_oid_num = cxdd_4_num;
_s_task_game.game_info[7].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[7].game_order = 0;
_s_task_game.game_info[7].game_timeout_seconds = 60;
_s_task_game.game_info[7].game_score = 0;
// 明察秋毫,4星
_s_task_game.game_info[8].game_oid = GAME_OID_MCQH_4;
_s_task_game.game_info[8].game_audio = &audio_game_mcqh_4;
_s_task_game.game_info[8].game_supported_oid = pointbuf.mcqh_4;
_s_task_game.game_info[8].game_oid_num = mcqh_4_num;
_s_task_game.game_info[8].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[8].game_order = 0;
_s_task_game.game_info[8].game_timeout_seconds = 60;
_s_task_game.game_info[8].game_score = 0;
// 明察秋毫,5星
_s_task_game.game_info[9].game_oid = GAME_OID_MCQH_5;
_s_task_game.game_info[9].game_audio = &audio_game_mcqh_5;
_s_task_game.game_info[9].game_supported_oid = pointbuf.mcqh_5;
_s_task_game.game_info[9].game_oid_num = mcqh_5_num;
_s_task_game.game_info[9].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[9].game_order = 0;
_s_task_game.game_info[9].game_timeout_seconds = 60;
_s_task_game.game_info[9].game_score = 0;
// 积木再现,3星
_s_task_game.game_info[10].game_oid = GAME_OID_JMZX_3;
_s_task_game.game_info[10].game_audio = &audio_game_jmzx_3;
_s_task_game.game_info[10].game_supported_oid = pointbuf.jmzx_3;
_s_task_game.game_info[10].game_oid_num = jmzx_3_num;
_s_task_game.game_info[10].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[10].game_order = 0;
_s_task_game.game_info[10].game_timeout_seconds = 60;
_s_task_game.game_info[10].game_score = 0;
// 积木再现,4星
_s_task_game.game_info[11].game_oid = GAME_OID_JMZX_4;
_s_task_game.game_info[11].game_audio = &audio_game_jmzx_4;
_s_task_game.game_info[11].game_supported_oid = pointbuf.jmzx_4;
_s_task_game.game_info[11].game_oid_num = jmzx_4_num;
_s_task_game.game_info[11].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[11].game_order = 0;
_s_task_game.game_info[11].game_timeout_seconds = 60;
_s_task_game.game_info[11].game_score = 0;
// 积木再现,5星
_s_task_game.game_info[12].game_oid = GAME_OID_JMZX_5;
_s_task_game.game_info[12].game_audio = &audio_game_jmzx_5;
_s_task_game.game_info[12].game_supported_oid = pointbuf.jmzx_5;
_s_task_game.game_info[12].game_oid_num = jmzx_5_num;
_s_task_game.game_info[12].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[12].game_order = 0;
_s_task_game.game_info[12].game_timeout_seconds = 60;
_s_task_game.game_info[12].game_score = 0;
// 还原钟表,1星
_s_task_game.game_info[13].game_oid = GAME_OID_HYZB_1;
_s_task_game.game_info[13].game_audio = &audio_game_hyzb_1;
_s_task_game.game_info[13].game_supported_oid = pointbuf.hyzb_1;
_s_task_game.game_info[13].game_oid_num = hyzb_1_num;
_s_task_game.game_info[13].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[13].game_order = 0;
_s_task_game.game_info[13].game_timeout_seconds = 60;
_s_task_game.game_info[13].game_score = 0;
// 还原钟表,2星
_s_task_game.game_info[14].game_oid = GAME_OID_HYZB_2;
_s_task_game.game_info[14].game_audio = &audio_game_hyzb_2;
_s_task_game.game_info[14].game_supported_oid = pointbuf.hyzb_2;
_s_task_game.game_info[14].game_oid_num = hyzb_2_num;
_s_task_game.game_info[14].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[14].game_order = 0;
_s_task_game.game_info[14].game_timeout_seconds = 60;
_s_task_game.game_info[14].game_score = 0;
// 时间规划,3星
_s_task_game.game_info[15].game_oid = GAME_OID_SJGH_3;
_s_task_game.game_info[15].game_audio = &audio_game_sjgh_3;
_s_task_game.game_info[15].game_supported_oid = pointbuf.sjgh_3;
_s_task_game.game_info[15].game_oid_num = sjgh_3_num;
_s_task_game.game_info[15].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[15].game_order = 0;
_s_task_game.game_info[15].game_timeout_seconds = 60;
_s_task_game.game_info[15].game_score = 0;
// 计算时间,4星
_s_task_game.game_info[16].game_oid = GAME_OID_JSSJ_4;
_s_task_game.game_info[16].game_audio = &audio_game_jssj_4;
_s_task_game.game_info[16].game_supported_oid = pointbuf.jssj_4;
_s_task_game.game_info[16].game_oid_num = jssj_4_num;
_s_task_game.game_info[16].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[16].game_order = 0;
_s_task_game.game_info[16].game_timeout_seconds = 60;
_s_task_game.game_info[16].game_score = 0;
// 计算时间,5星
_s_task_game.game_info[17].game_oid = GAME_OID_JSSJ_5;
_s_task_game.game_info[17].game_audio = &audio_game_jssj_5;
_s_task_game.game_info[17].game_supported_oid = pointbuf.jssj_5;
_s_task_game.game_info[17].game_oid_num = jssj_5_num;
_s_task_game.game_info[17].game_supported_oid[0].oid = 0x40FE;
_s_task_game.game_info[17].game_order = 0;
_s_task_game.game_info[17].game_timeout_seconds = 60;
_s_task_game.game_info[17].game_score = 0;
/***************************************PAGE2******************************************* */
/****************************************24个******************************************* */
// 有序排列,1星
_s_task_game.game_info[18].game_oid = GAME_OID_YXPL_1;
_s_task_game.game_info[18].game_audio = &audio_game_yxpl_1;
_s_task_game.game_info[18].game_supported_oid = pointbuf.yxpl_1;
_s_task_game.game_info[18].game_oid_num = yxpl_1_num;
_s_task_game.game_info[18].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[18].game_order = 0;
_s_task_game.game_info[18].game_timeout_seconds = 60;
_s_task_game.game_info[18].game_score = 0;
// 有序排列,2星
_s_task_game.game_info[19].game_oid = GAME_OID_YXPL_2;
_s_task_game.game_info[19].game_audio = &audio_game_yxpl_2;
_s_task_game.game_info[19].game_supported_oid = pointbuf.yxpl_2;
_s_task_game.game_info[19].game_oid_num = yxpl_2_num;
_s_task_game.game_info[19].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[19].game_order = 0;
_s_task_game.game_info[19].game_timeout_seconds = 60;
_s_task_game.game_info[19].game_score = 0;
// 眼到手到,1星
_s_task_game.game_info[20].game_oid = GAME_OID_YDSD_1;
_s_task_game.game_info[20].game_audio = &audio_game_ydsd_1;
_s_task_game.game_info[20].game_supported_oid = pointbuf.ydsd_1;
_s_task_game.game_info[20].game_oid_num = ydsd_1_num;
_s_task_game.game_info[20].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[20].game_order = 0;
_s_task_game.game_info[20].game_timeout_seconds = 60;
_s_task_game.game_info[20].game_score = 0;
// 眼到手到,2星
_s_task_game.game_info[21].game_oid = GAME_OID_YDSD_2;
_s_task_game.game_info[21].game_audio = &audio_game_ydsd_2;
_s_task_game.game_info[21].game_supported_oid = pointbuf.ydsd_2;
_s_task_game.game_info[21].game_oid_num = ydsd_2_num;
_s_task_game.game_info[21].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[21].game_order = 0;
_s_task_game.game_info[21].game_timeout_seconds = 60;
_s_task_game.game_info[21].game_score = 0;
// 眼到手到(数字颠倒),1星
_s_task_game.game_info[22].game_oid = GAME_OID_YDSD_SZDD_1;
_s_task_game.game_info[22].game_audio = &audio_game_ydsd_szdd_1;
_s_task_game.game_info[22].game_supported_oid = pointbuf.ydsd_szdd_1;
_s_task_game.game_info[22].game_oid_num = ydsd_szdd_1_num;
_s_task_game.game_info[22].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[22].game_order = 0;
_s_task_game.game_info[22].game_timeout_seconds = 60;
_s_task_game.game_info[22].game_score = 0;
// 眼到手到(数字颠倒),2星
_s_task_game.game_info[23].game_oid = GAME_OID_YDSD_SZDD_2;
_s_task_game.game_info[23].game_audio = &audio_game_ydsd_szdd_2;
_s_task_game.game_info[23].game_supported_oid = pointbuf.ydsd_szdd_2;
_s_task_game.game_info[23].game_oid_num = ydsd_szdd_2_num;
_s_task_game.game_info[23].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[23].game_order = 0;
_s_task_game.game_info[23].game_timeout_seconds = 60;
_s_task_game.game_info[23].game_score = 0;
// 比比大小,1星
_s_task_game.game_info[24].game_oid = GAME_OID_BBDX_1;
_s_task_game.game_info[24].game_audio = &audio_game_bbdx_1;
_s_task_game.game_info[24].game_supported_oid = pointbuf.bbdx_1;
_s_task_game.game_info[24].game_oid_num = bbdx_1_num;
_s_task_game.game_info[24].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[24].game_order = 0;
_s_task_game.game_info[24].game_timeout_seconds = 60;
_s_task_game.game_info[24].game_score = 0;
// 比比大小,2星
_s_task_game.game_info[25].game_oid = GAME_OID_BBDX_2;
_s_task_game.game_info[25].game_audio = &audio_game_bbdx_2;
_s_task_game.game_info[25].game_supported_oid = pointbuf.bbdx_2;
_s_task_game.game_info[25].game_oid_num = bbdx_2_num;
_s_task_game.game_info[25].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[25].game_order = 0;
_s_task_game.game_info[25].game_timeout_seconds = 60;
_s_task_game.game_info[25].game_score = 0;
// 比比大小,3星
_s_task_game.game_info[26].game_oid = GAME_OID_BBDX_3;
_s_task_game.game_info[26].game_audio = &audio_game_bbdx_3;
_s_task_game.game_info[26].game_supported_oid = pointbuf.bbdx_3;
_s_task_game.game_info[26].game_oid_num = bbdx_3_num;
_s_task_game.game_info[26].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[26].game_order = 0;
_s_task_game.game_info[26].game_timeout_seconds = 60;
_s_task_game.game_info[26].game_score = 0;
// 比比大小,4星
_s_task_game.game_info[27].game_oid = GAME_OID_BBDX_4;
_s_task_game.game_info[27].game_audio = &audio_game_bbdx_4;
_s_task_game.game_info[27].game_supported_oid = pointbuf.bbdx_4;
_s_task_game.game_info[27].game_oid_num = bbdx_4_num;
_s_task_game.game_info[27].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[27].game_order = 0;
_s_task_game.game_info[27].game_timeout_seconds = 60;
_s_task_game.game_info[27].game_score = 0;
// 成双成对,2星
_s_task_game.game_info[28].game_oid = GAME_OID_CSCD_2;
_s_task_game.game_info[28].game_audio = &audio_game_cscd_2;
_s_task_game.game_info[28].game_supported_oid = pointbuf.cscd_2;
_s_task_game.game_info[28].game_oid_num = cscd_2_num;
_s_task_game.game_info[28].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[28].game_order = 0;
_s_task_game.game_info[28].game_timeout_seconds = 60;
_s_task_game.game_info[28].game_score = 0;
// 成双成对,3星
_s_task_game.game_info[29].game_oid = GAME_OID_CSCD_3;
_s_task_game.game_info[29].game_audio = &audio_game_cscd_3;
_s_task_game.game_info[29].game_supported_oid = pointbuf.cscd_3;
_s_task_game.game_info[29].game_oid_num = cscd_3_num;
_s_task_game.game_info[29].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[29].game_order = 0;
_s_task_game.game_info[29].game_timeout_seconds = 60;
_s_task_game.game_info[29].game_score = 0;
// 单枪匹马,2星
_s_task_game.game_info[30].game_oid = GAME_OID_DQPM_2;
_s_task_game.game_info[30].game_audio = &audio_game_dqpm_2;
_s_task_game.game_info[30].game_supported_oid = pointbuf.dqpm_2;
_s_task_game.game_info[30].game_oid_num = dqpm_2_num;
_s_task_game.game_info[30].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[30].game_order = 0;
_s_task_game.game_info[30].game_timeout_seconds = 60;
_s_task_game.game_info[30].game_score = 0;
// 单枪匹马,3星
_s_task_game.game_info[31].game_oid = GAME_OID_DQPM_3;
_s_task_game.game_info[31].game_audio = &audio_game_dqpm_3;
_s_task_game.game_info[31].game_supported_oid = pointbuf.dqpm_3;
_s_task_game.game_info[31].game_oid_num = dqpm_3_num;
_s_task_game.game_info[31].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[31].game_order = 0;
_s_task_game.game_info[31].game_timeout_seconds = 60;
_s_task_game.game_info[31].game_score = 0;
// 数字顺背,2星
_s_task_game.game_info[32].game_oid = GAME_OID_SZSB_2;
_s_task_game.game_info[32].game_audio = &audio_game_szsb_2;
_s_task_game.game_info[32].game_supported_oid = pointbuf.szsb_2;
_s_task_game.game_info[32].game_oid_num = szsb_2_num;
_s_task_game.game_info[32].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[32].game_order = 0;
_s_task_game.game_info[32].game_timeout_seconds = 60;
_s_task_game.game_info[32].game_score = 0;
// 数字顺背,3星
_s_task_game.game_info[33].game_oid = GAME_OID_SZSB_3;
_s_task_game.game_info[33].game_audio = &audio_game_szsb_3;
_s_task_game.game_info[33].game_supported_oid = pointbuf.szsb_3;
_s_task_game.game_info[33].game_oid_num = szsb_3_num;
_s_task_game.game_info[33].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[33].game_order = 0;
_s_task_game.game_info[33].game_timeout_seconds = 60;
_s_task_game.game_info[33].game_score = 0;
// 数字倒背,2星
_s_task_game.game_info[34].game_oid = GAME_OID_SZDB_2;
_s_task_game.game_info[34].game_audio = &audio_game_szdb_2;
_s_task_game.game_info[34].game_supported_oid = pointbuf.szdb_2;
_s_task_game.game_info[34].game_oid_num = szdb_2_num;
_s_task_game.game_info[34].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[34].game_order = 0;
_s_task_game.game_info[34].game_timeout_seconds = 60;
_s_task_game.game_info[34].game_score = 0;
// 数字倒背,3星
_s_task_game.game_info[35].game_oid = GAME_OID_SZDB_3;
_s_task_game.game_info[35].game_audio = &audio_game_szdb_3;
_s_task_game.game_info[35].game_supported_oid = pointbuf.szdb_3;
_s_task_game.game_info[35].game_oid_num = szdb_3_num;
_s_task_game.game_info[35].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[35].game_order = 0;
_s_task_game.game_info[35].game_timeout_seconds = 60;
_s_task_game.game_info[35].game_score = 0;
// 舒尔特方格,3星
_s_task_game.game_info[36].game_oid = GAME_OID_SETFG_3;
// _s_task_game.game_info[36].game_audio = &audio_game_setfg_3;
// _s_task_game.game_info[36].game_supported_oid = pointbuf.setfg_3;
// _s_task_game.game_info[36].game_oid_num = setfg_3_num;
// _s_task_game.game_info[36].game_supported_oid[0].oid = 0x10FE;
// _s_task_game.game_info[36].game_order = 0;
// _s_task_game.game_info[36].game_timeout_seconds = 60;
// _s_task_game.game_info[36].game_score = 0;
// 舒尔特方格(数字旋转),3星
_s_task_game.game_info[37].game_oid = GAME_OID_SETFG_SZXZ_3;
_s_task_game.game_info[37].game_audio = &audio_game_setfg_szxz_3;
_s_task_game.game_info[37].game_supported_oid = pointbuf.setfg_szxz_3;
_s_task_game.game_info[37].game_oid_num = setfg_szxz_3_num;
_s_task_game.game_info[37].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[37].game_order = 0;
_s_task_game.game_info[37].game_timeout_seconds = 60;
_s_task_game.game_info[37].game_score = 0;
// 舒尔特方格,4星
_s_task_game.game_info[38].game_oid = GAME_OID_SETFG_4;
_s_task_game.game_info[38].game_audio = &audio_game_setfg_4;
_s_task_game.game_info[38].game_supported_oid = pointbuf.setfg_4;
_s_task_game.game_info[38].game_oid_num = setfg_4_num;
_s_task_game.game_info[38].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[38].game_order = 0;
_s_task_game.game_info[38].game_timeout_seconds = 60;
_s_task_game.game_info[38].game_score = 0;
// 舒尔特方格,5星
_s_task_game.game_info[39].game_oid = GAME_OID_SETFG_5;
_s_task_game.game_info[39].game_audio = &audio_game_setfg_5;
_s_task_game.game_info[39].game_supported_oid = pointbuf.setfg_5;
_s_task_game.game_info[39].game_oid_num = setfg_5_num;
_s_task_game.game_info[39].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[39].game_order = 0;
_s_task_game.game_info[39].game_timeout_seconds = 60;
_s_task_game.game_info[39].game_score = 0;
// 舒尔特方格(数字颠倒),5星
_s_task_game.game_info[40].game_oid = GAME_OID_SETFG_SZDD_5;
_s_task_game.game_info[40].game_audio = &audio_game_setfg_szdd_5;
_s_task_game.game_info[40].game_supported_oid = pointbuf.setfg_szdd_5;
_s_task_game.game_info[40].game_oid_num = setfg_szdd_5_num;
_s_task_game.game_info[40].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[40].game_order = 0;
_s_task_game.game_info[40].game_timeout_seconds = 60;
_s_task_game.game_info[40].game_score = 0;
// 众里寻三,3星
_s_task_game.game_info[41].game_oid = GAME_OID_ZLXS_3;
_s_task_game.game_info[41].game_audio = &audio_game_zlxs_3;
_s_task_game.game_info[41].game_supported_oid = pointbuf.zlxs_3;
_s_task_game.game_info[41].game_oid_num = zlxs_3_num;
_s_task_game.game_info[41].game_supported_oid[0].oid = 0x10FE;
_s_task_game.game_info[41].game_order = 0;
_s_task_game.game_info[41].game_timeout_seconds = 60;
_s_task_game.game_info[41].game_score = 0;
/***************************************PAGE3******************************************* */
/****************************************19个******************************************* */
// // 有序排列,1星
// _s_task_game.game_info[42].game_oid = GAME_OID_YXPLL_1;
// _s_task_game.game_info[42].game_audio = &audio_game_yxpll_1;
// _s_task_game.game_info[42].game_supported_oid = pointbuf.yxpll_1;
// _s_task_game.game_info[42].game_oid_num = 1;
// _s_task_game.game_info[42].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[42].game_order = 0;
// _s_task_game.game_info[42].game_timeout_seconds = 60;
// _s_task_game.game_info[42].game_score = 0;
// // 复制图形,2星
// _s_task_game.game_info[43].game_oid = GAME_OID_FZTP_2;
// _s_task_game.game_info[43].game_audio = &audio_game_yxpl_2;
// _s_task_game.game_info[43].game_supported_oid = pointbuf.yxpl_2;
// _s_task_game.game_info[43].game_oid_num = 1;
// _s_task_game.game_info[43].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[43].game_order = 0;
// _s_task_game.game_info[43].game_timeout_seconds = 60;
// _s_task_game.game_info[43].game_score = 0;
// // 复制图形,3星
// _s_task_game.game_info[44].game_oid = GAME_OID_YDSD_1;
// _s_task_game.game_info[44].game_audio = &audio_game_ydsd_1;
// _s_task_game.game_info[44].game_supported_oid = pointbuf.ydsd_1;
// _s_task_game.game_info[44].game_oid_num = 1;
// _s_task_game.game_info[44].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[44].game_order = 0;
// _s_task_game.game_info[44].game_timeout_seconds = 60;
// _s_task_game.game_info[44].game_score = 0;
// // 复制图形,4星
// _s_task_game.game_info[45].game_oid = GAME_OID_YDSD_2;
// _s_task_game.game_info[45].game_audio = &audio_game_ydsd_2;
// _s_task_game.game_info[45].game_supported_oid = pointbuf.ydsd_2;
// _s_task_game.game_info[45].game_oid_num = 1;
// _s_task_game.game_info[45].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[45].game_order = 0;
// _s_task_game.game_info[45].game_timeout_seconds = 60;
// _s_task_game.game_info[45].game_score = 0;
// // 复制图形,5星
// _s_task_game.game_info[46].game_oid = GAME_OID_YDSD_SZDD_1;
// _s_task_game.game_info[46].game_audio = &audio_game_ydsd_szdd_1;
// _s_task_game.game_info[46].game_supported_oid = pointbuf.ydsd_szdd_1;
// _s_task_game.game_info[46].game_oid_num = 1;
// _s_task_game.game_info[46].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[46].game_order = 0;
// _s_task_game.game_info[46].game_timeout_seconds = 60;
// _s_task_game.game_info[46].game_score = 0;
// // 慧眼“挑刺”,3星
// _s_task_game.game_info[47].game_oid = GAME_OID_YDSD_SZDD_2;
// _s_task_game.game_info[47].game_audio = &audio_game_ydsd_szdd_2;
// _s_task_game.game_info[47].game_supported_oid = pointbuf.ydsd_szdd_2;
// _s_task_game.game_info[47].game_oid_num = 1;
// _s_task_game.game_info[47].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[47].game_order = 0;
// _s_task_game.game_info[47].game_timeout_seconds = 60;
// _s_task_game.game_info[47].game_score = 0;
// // 慧眼“挑刺”,4星
// _s_task_game.game_info[48].game_oid = GAME_OID_BBDX_1;
// _s_task_game.game_info[48].game_audio = &audio_game_bbdx_1;
// _s_task_game.game_info[48].game_supported_oid = pointbuf.bbdx_1;
// _s_task_game.game_info[48].game_oid_num = 1;
// _s_task_game.game_info[48].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[48].game_order = 0;
// _s_task_game.game_info[48].game_timeout_seconds = 60;
// _s_task_game.game_info[48].game_score = 0;
// // 手眼协调,3星
// _s_task_game.game_info[49].game_oid = GAME_OID_BBDX_2;
// _s_task_game.game_info[49].game_audio = &audio_game_bbdx_2;
// _s_task_game.game_info[49].game_supported_oid = pointbuf.bbdx_2;
// _s_task_game.game_info[49].game_oid_num = 1;
// _s_task_game.game_info[49].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[49].game_order = 0;
// _s_task_game.game_info[49].game_timeout_seconds = 60;
// _s_task_game.game_info[49].game_score = 0;
// // 手眼协调,4星
// _s_task_game.game_info[50].game_oid = GAME_OID_BBDX_3;
// _s_task_game.game_info[50].game_audio = &audio_game_bbdx_3;
// _s_task_game.game_info[50].game_supported_oid = pointbuf.bbdx_3;
// _s_task_game.game_info[50].game_oid_num = 1;
// _s_task_game.game_info[50].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[50].game_order = 0;
// _s_task_game.game_info[50].game_timeout_seconds = 60;
// _s_task_game.game_info[50].game_score = 0;
// // 听1拍1,3星
// _s_task_game.game_info[51].game_oid = GAME_OID_BBDX_4;
// _s_task_game.game_info[51].game_audio = &audio_game_bbdx_4;
// _s_task_game.game_info[51].game_supported_oid = pointbuf.bbdx_4;
// _s_task_game.game_info[51].game_oid_num = 1;
// _s_task_game.game_info[51].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[51].game_order = 0;
// _s_task_game.game_info[51].game_timeout_seconds = 60;
// _s_task_game.game_info[51].game_score = 0;
// // 数字顺背,3星
// _s_task_game.game_info[52].game_oid = GAME_OID_CSCD_2;
// _s_task_game.game_info[52].game_audio = &audio_game_cscd_2;
// _s_task_game.game_info[52].game_supported_oid = pointbuf.cscd_2;
// _s_task_game.game_info[52].game_oid_num = 1;
// _s_task_game.game_info[52].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[52].game_order = 0;
// _s_task_game.game_info[52].game_timeout_seconds = 60;
// _s_task_game.game_info[52].game_score = 0;
// // 数字顺背,4星
// _s_task_game.game_info[53].game_oid = GAME_OID_CSCD_3;
// _s_task_game.game_info[53].game_audio = &audio_game_cscd_3;
// _s_task_game.game_info[53].game_supported_oid = pointbuf.cscd_3;
// _s_task_game.game_info[53].game_oid_num = 1;
// _s_task_game.game_info[53].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[53].game_order = 0;
// _s_task_game.game_info[53].game_timeout_seconds = 60;
// _s_task_game.game_info[53].game_score = 0;
// // 数字倒背,3星
// _s_task_game.game_info[54].game_oid = GAME_OID_DQPM_2;
// _s_task_game.game_info[54].game_audio = &audio_game_dqpm_2;
// _s_task_game.game_info[54].game_supported_oid = pointbuf.dqpm_2;
// _s_task_game.game_info[54].game_oid_num = 1;
// _s_task_game.game_info[54].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[54].game_order = 0;
// _s_task_game.game_info[54].game_timeout_seconds = 60;
// _s_task_game.game_info[54].game_score = 0;
// // “火柴算数”,4星
// _s_task_game.game_info[55].game_oid = GAME_OID_DQPM_3;
// _s_task_game.game_info[55].game_audio = &audio_game_dqpm_3;
// _s_task_game.game_info[55].game_supported_oid = pointbuf.dqpm_3;
// _s_task_game.game_info[55].game_oid_num = 1;
// _s_task_game.game_info[55].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[55].game_order = 0;
// _s_task_game.game_info[55].game_timeout_seconds = 60;
// _s_task_game.game_info[55].game_score = 0;
// // “火柴算数”,5星
// _s_task_game.game_info[56].game_oid = GAME_OID_SZSB_2;
// _s_task_game.game_info[56].game_audio = &audio_game_szsb_2;
// _s_task_game.game_info[56].game_supported_oid = pointbuf.szsb_2;
// _s_task_game.game_info[56].game_oid_num = 1;
// _s_task_game.game_info[56].game_supported_oid[0].oid = 0xA0FE;
// _s_task_game.game_info[56].game_order = 0;
// _s_task_game.game_info[56].game_timeout_seconds = 60;
// _s_task_game.game_info[56].game_score = 0;
// // 正方体拼图,2星
// _s_task_game.game_info[57].game_oid = GAME_OID_SZSB_3;
// _s_task_game.game_info[57].game_audio = &audio_game_szsb_3;
// _s_task_game.game_info[57].game_supported_oid = pointbuf.szsb_3;
// _s_task_game.game_info[57].game_oid_num = 1;
// _s_task_game.game_info[57].game_supported_oid[0].oid = 0x50FE;
// _s_task_game.game_info[57].game_order = 0;
// _s_task_game.game_info[57].game_timeout_seconds = 60;
// _s_task_game.game_info[57].game_score = 0;
// // 正方体拼图,3星
// _s_task_game.game_info[58].game_oid = GAME_OID_SZDB_2;
// _s_task_game.game_info[58].game_audio = &audio_game_szdb_2;
// _s_task_game.game_info[58].game_supported_oid = pointbuf.szdb_2;
// _s_task_game.game_info[58].game_oid_num = 1;
// _s_task_game.game_info[58].game_supported_oid[0].oid = 0x50FE;
// _s_task_game.game_info[58].game_order = 0;
// _s_task_game.game_info[58].game_timeout_seconds = 60;
// _s_task_game.game_info[58].game_score = 0;
// // 正方体拼图,4星
// _s_task_game.game_info[59].game_oid = GAME_OID_SZDB_3;
// _s_task_game.game_info[59].game_audio = &audio_game_szdb_3;
// _s_task_game.game_info[59].game_supported_oid = pointbuf.szdb_3;
// _s_task_game.game_info[59].game_oid_num = 1;
// _s_task_game.game_info[59].game_supported_oid[0].oid = 0x50FE;
// _s_task_game.game_info[59].game_order = 0;
// _s_task_game.game_info[59].game_timeout_seconds = 60;
// _s_task_game.game_info[59].game_score = 0;
// // 正方体拼图,5星
// _s_task_game.game_info[60].game_oid = GAME_OID_SZDB_3;
// _s_task_game.game_info[60].game_audio = &audio_game_szdb_3;
// _s_task_game.game_info[60].game_supported_oid = pointbuf.szdb_3;
// _s_task_game.game_info[60].game_oid_num = 1;
// _s_task_game.game_info[60].game_supported_oid[0].oid = 0x50FE;
// _s_task_game.game_info[60].game_order = 0;
// _s_task_game.game_info[60].game_timeout_seconds = 60;
// _s_task_game.game_info[60].game_score = 0;
/***************************************PAGE4******************************************* */
/****************************************15个******************************************* */
/***************************************PAGE5******************************************* */
/****************************************14个******************************************* */
/***************************************PAGE6******************************************* */
/****************************************15个******************************************* */
}
#define D_task_READ_OID 0x50
#define D_task_INIT_OID 0x59
#define D_task_GAME_SWITCH 0x51
#define D_task_GAME_PLAY 0x52
#define D_task_GAME_TIMEOUT 0x53
#define D_task_GAME_COMPLETED 0x54
#define D_task_GAME_NET_SUBMIT 0x55
void L3_task_game_handler(S_TASK_GAME *s)
{
TTSS_Task_init()
L2_task_go_Tdelay(D_task_INIT_OID,D_Tdelay_4s);
TTSS_Task_step(D_task_INIT_OID)
L0_Oid_Init();
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
TTSS_Task_step(D_task_GAME_TIMEOUT)
if (s->game_info_index != -1 && (s_nos_tick.t_1s - s->start_seconds > s->game_info[s->game_info_index].game_timeout_seconds))
{
// 游戏超时
s->timeover_flag = 1;
L0_uart0_sendstr("audio_game_overtime! ");
L2_WT2605B_Broadcast(&audio_game_overtime);
L2_task_go_Tdelay(D_task_GAME_NET_SUBMIT,D_Tdelay_300ms);
}
else
{
L2_task_go_Tdelay(D_task_READ_OID,D_Tdelay_100ms);
}
TTSS_Task_step(D_task_READ_OID)
L1_Oid_readoid();
2 months ago
if (ts_oid.ok == 1)
{
ts_oid.ok = 0;
s->read_oid = ts_oid.rec.d16[3];
2 months ago
L0_uart0_ushex(s->read_oid);
if (s->read_oid != INVALID_OID && s->read_oid != 0x0000)
{
L2_task_go_Tdelay(D_task_GAME_SWITCH,D_Tdelay_100ms);
}
}
else
{
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
}
TTSS_Task_step(D_task_GAME_SWITCH)
U8 i = 0;
U8 j = 0;
for (i = 0; i < game_num_max; i++)
{
//目前仅支持3个游戏,其余游戏均初始化为0
if (s->game_info[i].game_oid == 0)
{
break;
}
if (s->game_info[i].game_oid == s->read_oid)
{
s->game_info_index = i;
s->eeror_times = 0;
s->start_seconds = s_nos_tick.t_1s;
s->timeover_flag = 0;
for (j = 0; j < s->game_info[s->game_info_index].game_oid_num; j++)
{
s->game_info[s->game_info_index].game_supported_oid[j].handled = 0;
}
L2_WT2605B_Broadcast(s->game_info[i].game_audio);
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
return;
}
}
if (s->game_info_index == -1)
{
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
}
else
{
L2_task_go_Tdelay(D_task_GAME_PLAY,D_Tdelay_100ms);
}
TTSS_Task_step(D_task_GAME_PLAY)
U8 i = 0,j = 0;
U8 has_unhandled_point = 0;
for (i = 0; i < s->game_info[s->game_info_index].game_oid_num; i++)
{
GAME_INF* g = &s->game_info[_s_task_game.game_info_index];
POINT_INFO* p = &s->game_info[_s_task_game.game_info_index].game_supported_oid[i];
2 months ago
// L0_uart0_ushex(s->read_oid);
// L0_uart0_ushex(p->oid);
if (p->oid == 0)
{
break;
}
if (s->read_oid != p->oid && has_unhandled_point == 0 && g->game_order == 1)
{
if (p->yes_or_no == 0 && p->handled == 0)
{
has_unhandled_point = 1;
}
}
else if(s->read_oid == p->oid)
{
//错误码 或者 是正确码有序,但是存在未处理的点
if (p->yes_or_no == 1 || (p->yes_or_no == 0 && g->game_order == 1 && has_unhandled_point == 1))
{
s->eeror_times++;
L0_uart0_sendstr("eeror_times = ");
L0_uart0_uchex(s->eeror_times);
if (p->point_audio == NULL)
{
L2_WT2605B_Broadcast(&audio_game_error);
}
else
{
L2_WT2605B_Broadcast(p->point_audio);
}
}
//正确码 并且是(无序的 或者 是有序的没有未处理的点)
else
{
//未处理
if (p->handled == 0)
{
p->handled = 1;
s->game_point_index = i;
//正确提示声音放在判断是否完成中
L2_task_go_Tdelay(D_task_GAME_COMPLETED,D_Tdelay_100ms);
return;
}
}
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
return;
}
}
L0_uart0_sendstr("It's not supported oid, please try again.");
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
TTSS_Task_step(D_task_GAME_COMPLETED)
U8 completed = 1; //假设已完成
U8 i = 0;
for (i = 0; i < s->game_info[s->game_info_index].game_oid_num; i++)
{
POINT_INFO* p = &_s_task_game.game_info[_s_task_game.game_info_index].game_supported_oid[i];
if (p->oid != 0 && p->yes_or_no == 0 && p->handled == 0)
{
completed = 0;
break;
}
}
if (completed == 1)
{
// 游戏完成
L2_WT2605B_Broadcast(&audio_game_complete);
L2_task_go_Tdelay(D_task_GAME_NET_SUBMIT,D_Tdelay_300ms);
}
else
{
if (s->game_info[s->game_info_index].game_supported_oid[s->game_point_index].point_audio == NULL)
{
L2_WT2605B_Broadcast(&audio_game_correct);
}
else
{
L2_WT2605B_Broadcast(s->game_info[s->game_info_index].game_supported_oid[s->game_point_index].point_audio);
}
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_300ms);
}
TTSS_Task_step(D_task_GAME_NET_SUBMIT)
U8 seconds = s_nos_tick.t_1s - s->start_seconds;
_s_task_w600_para.Send_Submit_Flag = 1;
_s_task_w600_para.submittaskpkg.Plan_ID[0] = _s_task_w600_para.queryackpkg.Plan_ID[0];
_s_task_w600_para.submittaskpkg.Plan_ID[1] = _s_task_w600_para.queryackpkg.Plan_ID[1];
_s_task_w600_para.submittaskpkg.Game_ID[0] = s->game_info[s->game_info_index].game_oid >> 8 & 0xFF;
_s_task_w600_para.submittaskpkg.Game_ID[1] = s->game_info[s->game_info_index].game_oid >> 0 & 0xFF;
_s_task_w600_para.submittaskpkg.Second[0] = seconds >> 8 & 0xFF;
_s_task_w600_para.submittaskpkg.Second[1] = seconds >> 0 & 0xFF;
_s_task_w600_para.submittaskpkg.Error_Time[0] = 0;
_s_task_w600_para.submittaskpkg.Error_Time[1] = _s_task_game.eeror_times;
_s_task_w600_para.submittaskpkg.TimeOver_Flag = s->timeover_flag;
_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_GAME_TIMEOUT,D_Tdelay_300ms);
TTSS_Task_end();
}
#if 0
//NFC协议:60 20 00 07 10 02 04 00 99 83 33 4E 36
//起始帧:60
//设备ID:20
//数据长度:00 07
//命令:10
//数据:02 04 00 99 83 33 4E
//校验:36 从起始帧到数据字段 [60 20 00 07 10 02 04 00 99 83 33 4E] 的所有字节的依次异或值
void parse_nfc_pkg()
{
TPC_NFC *p = (TPC_NFC *) ts_uart[uNum3].r.buf;
p->ocr = p->buf[p->num[0] << 8 | p->num[1]];
if(p->head == 0x60 && 1 /*count_ocr() */)
{
U16 num = (U16)p->num[0] << 8 | p->num[1];
//只读取0x10的协议
if(p->cmd == 0x10 && num == 0x07){
//1.判定NFC卡号是否符合规则
//2.保存NFC卡号到寄存器
R.nfc.nfc_no[0] = p->buf[num-2];
R.nfc.nfc_no[1] = p->buf[num-1];
//3.设定授权标志
R.auth_flag |= 0x01;
//4.打印日志
print_nfc_pkg(p);
}
}
}
void print_nfc_pkg(TPC_NFC *p)
{
L0_uart0_sendstr("\r\n--------- Recv NFC --------\r\n");
L0_uart0_sendstr("id : ");
L0_uart0_uchex(p->slaveId);
L0_uart0_0d0a();
L0_uart0_sendstr("num: ");
L0_uart0_uchex(p->num[0]);
L0_uart0_uchex(p->num[1]);
L0_uart0_0d0a();
L0_uart0_sendstr("cmd: ");
L0_uart0_uchex(p->cmd);
L0_uart0_0d0a();
L0_uart0_sendstr("no : ");
L0_uart0_sendArrayHex(p->buf, (U16)p->num[0] << 8 | p->num[1]);
L0_uart0_0d0a();
L0_uart0_sendstr("ocr: ");
L0_uart0_uchex(p->buf[(U16)p->num[0] << 8 | p->num[1]]);
L0_uart0_0d0a();
}
#endif