screw speed change protection

This commit is contained in:
DashyFox 2024-12-01 15:57:48 +03:00
parent 195d6ef021
commit ea5770e9f7
2 changed files with 59 additions and 14 deletions

View File

@ -154,20 +154,61 @@ void IR_Home_Process() {
}
case IR_TEMPO_INC:
if (isshotRcOverride && currentInfo.shot.shot.speedScrew < 100) {
currentInfo.shot.shot.speedScrew++;
shotApply(&currentInfo.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(&currentInfo.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(&currentInfo.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(&currentInfo.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;
}
}
}
}

View File

@ -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;