|
|
@@ -100,14 +100,12 @@ enum Step{
|
|
|
};
|
|
|
|
|
|
// 步骤跳转时的监听
|
|
|
-static uint8_t STEP_JOIN_AUTH_MESSAGE_times = 0; // 认证的次数
|
|
|
static uint8_t STEP_HANDLE_times = 0; // 数据重发的次数
|
|
|
static uint8_t STEP_RESET_times = 0; // 流程重置的次数
|
|
|
|
|
|
|
|
|
static void initialize()
|
|
|
{
|
|
|
- STEP_JOIN_AUTH_MESSAGE_times = 0;
|
|
|
STEP_HANDLE_times = 0;
|
|
|
STEP_RESET_times = 0;
|
|
|
}
|
|
|
@@ -118,21 +116,25 @@ static uint16_t goto_step_event(uint16_t ns)
|
|
|
|
|
|
// 流程控制
|
|
|
uint16_t step = ns;
|
|
|
- if(ns == STEP_JOIN_AUTH_MESSAGE && STEP_JOIN_AUTH_MESSAGE_times++ >= 1)
|
|
|
- {
|
|
|
- Log_Printf_Debug("认证次数过多");
|
|
|
- step = STEP_FAILURE;
|
|
|
- }
|
|
|
- if(ns == STEP_HANDLE && STEP_HANDLE_times++ >= 2)
|
|
|
+ if(step == STEP_HANDLE && STEP_HANDLE_times++ >= 2)
|
|
|
{
|
|
|
Log_Printf_Debug("数据重发次数过多");
|
|
|
step = STEP_RESET;
|
|
|
}
|
|
|
- if(ns == STEP_RESET && STEP_RESET_times++ >= 2)
|
|
|
+
|
|
|
+ if(step == STEP_RESET )
|
|
|
{
|
|
|
- goto_failure("流程重置次数过多");
|
|
|
- step = STEP_FAILURE;
|
|
|
+ //流程重置时其他步骤计数变量置0
|
|
|
+ STEP_HANDLE_times = 0;
|
|
|
+
|
|
|
+ //流程重置1次时退出
|
|
|
+ if(STEP_RESET_times++ >= 1)
|
|
|
+ {
|
|
|
+ goto_failure("流程重置次数过多");
|
|
|
+ step = STEP_FAILURE;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
return step;
|
|
|
}
|
|
|
// 流程控制
|