diff --git a/Core/Src/IR_CMD_HandlerLogic.c b/Core/Src/IR_CMD_HandlerLogic.c index cf82a13..bb34fb7 100644 --- a/Core/Src/IR_CMD_HandlerLogic.c +++ b/Core/Src/IR_CMD_HandlerLogic.c @@ -154,20 +154,61 @@ void IR_Home_Process() { } case IR_TEMPO_INC: - if (isshotRcOverride && currentInfo.shot.shot.speedScrew < 100) { - currentInfo.shot.shot.speedScrew++; - shotApply(¤tInfo.shot); -// led_progressbar(10, 19, currentInfo.shot.shot.speedScrew); //todo: led_progressbarTMP - onHoldRepeat = IR_Home_Process; + { + switch(currentInfo.mode){ + case NoneMode: + break; + case DebugShot: + case ShotMode:{ + if (currentInfo.state == RUN && currentInfo.shot.shot.speedScrew < 100) { + currentInfo.shot.shot.speedScrew++; + shotApply(¤tInfo.shot); + // led_progressbar(10, 19, currentInfo.shot.shot.speedScrew); //todo: led_progressbarTMP + onHoldRepeat = IR_Home_Process; + } + } + break; + case ProgramMode:{ +// + + } + break; + case MacroMode:{ + + } + break; + default: + break; } + } break; case IR_TEMPO_DEC: - if (isshotRcOverride && currentInfo.shot.shot.speedScrew > 0) { - currentInfo.shot.shot.speedScrew--; - shotApply(¤tInfo.shot); - onHoldRepeat = IR_Home_Process; - } + switch(currentInfo.mode){ + case NoneMode: + break; + case DebugShot: + case ShotMode:{ + if (currentInfo.state == RUN && currentInfo.shot.shot.speedScrew > 0) { + currentInfo.shot.shot.speedScrew--; + shotApply(¤tInfo.shot); + onHoldRepeat = IR_Home_Process; + } + } + break; + case ProgramMode:{ + // изменить переменную оверрайда + // выставить флаг + + } + break; + case MacroMode:{ + + } + break; + default: + break; + } break; case IR_ENGINE_UP_INC: @@ -482,7 +523,7 @@ void IR_ShootingStart() { InputHandler = IR_Home_Process; IR_Home_Process(); break; - } + } } } diff --git a/Core/Src/RobotFunctions.c b/Core/Src/RobotFunctions.c index d18a8c5..75c4f38 100644 --- a/Core/Src/RobotFunctions.c +++ b/Core/Src/RobotFunctions.c @@ -47,6 +47,10 @@ uint8_t loadShotFromProgram(CurrentProgram *currentProg); uint8_t loadNextProgramInMacro(CurrentMacro *currentMacro); uint8_t loadProgramFromMacro(CurrentMacro *currentMacro); +uint8_t overridenSpeedScrew_Shot; +uint8_t overridenSpeedScrew_Program; +uint8_t overridenSpeedScrew_Macro; + void setPosOffDelay(uint16_t ms){ stop_timer = millis(); stop_timer_TIMEOUT = ms; @@ -374,10 +378,10 @@ uint8_t loadShotFromProgram(CurrentProgram *currentProg) { return 0; } - uint8_t overridenSpeedScrew = + overridenSpeedScrew_Program = currentProg->program.shots[currentShotIndexLocal].speedScrew; - if (overridenSpeedScrew != 0) { - shot_.speedScrew = overridenSpeedScrew; + if (overridenSpeedScrew_Program != 0) { + shot_.speedScrew = overridenSpeedScrew_Program; } uint8_t repeatCountFromShot = currentProg->program.header.options & 2U;