Добавление дополнительной защиты для роботов для удержания правильной позиции на линии.

This commit is contained in:
VladislavOstapov 2023-02-20 15:36:16 +03:00
parent cd62b41e0b
commit 20a97fec11
2 changed files with 19 additions and 11 deletions

View File

@ -10,6 +10,6 @@
## Известные баги ## Известные баги
* ночных барабанов на линии не может быть больше 8, если барабанов больше то они останутся в цинковании, поэтому следует * ночные барабаны в конце складываются в промывки через зону обмена, таким образом можно загрузить на линию все 10 ночных барабанов
* не работают регистры добавления/удаления барабанов с панели * не работают регистры добавления/удаления барабанов с панели

View File

@ -336,21 +336,29 @@ void scheduler_main()
// сначала выдаем команды первому роботу // сначала выдаем команды первому роботу
if (robot1_code.PC < 0) { if (robot1_code.PC < 0) {
if (robot1.dx.current_zone < ZONE_PASSIVATION) {
robot2_lock_zone = -1;
robot1_lock_zone = ZONE_PASSIVATION;
robot1_code.barrel_id = -1;
robot1_code.code[0] = ROBOT_CMD_DOWN();
robot1_code.code[1] = ROBOT_CMD_MOVE_TO_ZONE(ZONE_PASSIVATION);
robot1_code.code[2] = ROBOT_CMD_END();
robot1_code.PC = 0;
} else {
schedule_one_robot(ROBOT_1); schedule_one_robot(ROBOT_1);
} }
}
// потом второму // потом второму
if (robot2_code.PC < 0) { if (robot2_code.PC < 0) {
if (robot2.dx.current_zone < ZONE_WASHING_1A) { if (robot2.dx.current_zone < ZONE_WASHING_1A || robot2.dx.current_zone > ZONE_ETCHING_2) {
// то же самое что и во второй стадии, только без инкремента стадии // то же самое что и во второй стадии, только без инкремента стадии
if (robot2_code.PC < 0) {
robot2_lock_zone = ZONE_ETCHING_2; robot2_lock_zone = ZONE_ETCHING_2;
robot2_code.barrel_id = -1; robot2_code.barrel_id = -1;
robot2_code.code[0] = ROBOT_CMD_DOWN(); robot2_code.code[0] = ROBOT_CMD_DOWN();
robot2_code.code[1] = ROBOT_CMD_MOVE_TO_ZONE(ZONE_WASHING_1A); robot2_code.code[1] = ROBOT_CMD_MOVE_TO_ZONE(ZONE_WASHING_1A);
robot2_code.code[2] = ROBOT_CMD_END(); robot2_code.code[2] = ROBOT_CMD_END();
robot2_code.PC = 0; robot2_code.PC = 0;
}
} else { } else {
schedule_one_robot(ROBOT_2); schedule_one_robot(ROBOT_2);
} }