|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
///@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;
|
|
|
|
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
|
|
|
|
for (k = 0; k < sizeof(pointbuf); k++)
|
|
|
|
{
|
|
|
|
*p++ = 0;
|
|
|
|
}
|
|
|
|
// 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;
|
|
|
|
|
|
|
|
|
|
|
|
// 走迷宫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;
|
|
|
|
|
|
|
|
// 舒尔特方格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;
|
|
|
|
|
|
|
|
/*************************************************************************************** */
|
|
|
|
/***************************************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;
|
|
|
|
_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******************************************* */
|
|
|
|
/****************************************24个******************************************* */
|
|
|
|
|
|
|
|
/***************************************PAGE4******************************************* */
|
|
|
|
/****************************************24个******************************************* */
|
|
|
|
|
|
|
|
/***************************************PAGE5******************************************* */
|
|
|
|
/****************************************24个******************************************* */
|
|
|
|
|
|
|
|
/***************************************PAGE6******************************************* */
|
|
|
|
/****************************************24个******************************************* */
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#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();
|
|
|
|
|
|
|
|
if (ts_oid.ok == 1)
|
|
|
|
{
|
|
|
|
ts_oid.ok = 0;
|
|
|
|
s->read_oid = ts_oid.rec.d16[3];
|
|
|
|
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];
|
|
|
|
// 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
|
|
|
|
|
|
|
|
|
|
|
|
|