Browse Source

feature:1.添加超时

pcb_v2
Zhangwen 4 months ago
parent
commit
97b0dbf954
  1. 49
      source/app/task_game.c
  2. 1
      source/app/task_game.h
  3. 2
      source/app/task_w600_ptc.c
  4. 2
      source/app/task_w600_ptc.h

49
source/app/task_game.c

@ -70,7 +70,7 @@ void L3_task_game_init(void)
_s_task_game.game_info[0].game_supported_oid[4].yes_or_no = 0;
_s_task_game.game_info[0].game_order = 0;
_s_task_game.game_info[0].game_timeout_seconds = 600;
_s_task_game.game_info[0].game_timeout_seconds = 60;
_s_task_game.game_info[0].game_score = 0;
_s_task_game.game_info[1].game_oid = GAME_OID_SHERT;
@ -103,7 +103,7 @@ void L3_task_game_init(void)
_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;
_s_task_game.game_info[1].game_timeout_seconds = 60;
_s_task_game.game_info[1].game_score = 0;
_s_task_game.game_info[2].game_oid = GAME_OID_ZMG;
@ -117,7 +117,7 @@ void L3_task_game_init(void)
_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;
_s_task_game.game_info[2].game_timeout_seconds = 60;
_s_task_game.game_info[2].game_score = 0;
@ -130,16 +130,31 @@ void L3_task_game_init(void)
#define D_task_READ_OID 0x50
#define D_task_GAME_SWITCH 0x51
#define D_task_GAME_PLAY 0x52
#define D_task_GAME_COMPLETED 0x53
#define D_task_GAME_NET_SUBMIT 0x54
#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(D_task_READ_OID);
L2_task_go(D_task_GAME_TIMEOUT);
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();
@ -152,6 +167,11 @@ void L3_task_game_handler(S_TASK_GAME *s)
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;
@ -168,18 +188,19 @@ void L3_task_game_handler(S_TASK_GAME *s)
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 < game_supported_oid_max; 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_READ_OID,D_Tdelay_100ms);
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
return;
}
}
if (s->game_info_index == -1)
{
L2_task_go_Tdelay(D_task_READ_OID,D_Tdelay_100ms);
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
}
else
{
@ -233,13 +254,12 @@ void L3_task_game_handler(S_TASK_GAME *s)
return;
}
}
L2_task_go_Tdelay(D_task_READ_OID,D_Tdelay_100ms);
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_READ_OID,D_Tdelay_100ms);
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_100ms);
TTSS_Task_step(D_task_GAME_COMPLETED)
U8 completed = 1; //假设已完成
U8 i = 0;
@ -268,7 +288,7 @@ void L3_task_game_handler(S_TASK_GAME *s)
{
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_READ_OID,D_Tdelay_300ms);
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;
@ -281,13 +301,14 @@ void L3_task_game_handler(S_TASK_GAME *s)
_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_READ_OID,D_Tdelay_300ms);
L2_task_go_Tdelay(D_task_GAME_TIMEOUT,D_Tdelay_300ms);
TTSS_Task_end();

1
source/app/task_game.h

@ -51,6 +51,7 @@ typedef struct _s_task_game
S8 game_point_index; //当前正在处理的点
U32 start_seconds; //游戏开始时间
U8 eeror_times; //错误次数
U8 timeover_flag; //超时标志 0未超时 1超时
}S_TASK_GAME;

2
source/app/task_w600_ptc.c

@ -39,7 +39,7 @@ U8 constructor_SubmitTaskPkg()
{
_s_task_w600_para.submittaskpkg.filter[0] = 0xAA;
_s_task_w600_para.submittaskpkg.filter[1] = 0xBB;
_s_task_w600_para.submittaskpkg.num = 0x11;
_s_task_w600_para.submittaskpkg.num = 0x12;
_s_task_w600_para.submittaskpkg.cmd = 0xA3;
_s_task_w600_para.submittaskpkg.did[0] = G.mcu_id[3];
_s_task_w600_para.submittaskpkg.did[1] = G.mcu_id[4];

2
source/app/task_w600_ptc.h

@ -82,6 +82,8 @@ typedef struct {
U8 Second[2];
//错误次数
U8 Error_Time[2];
//超时标志 0未超时 1超时
U8 TimeOver_Flag;
//得分
U8 Score[2];
//校验

Loading…
Cancel
Save