Немного поправлен код стайл

This commit is contained in:
VladislavOstapov 2022-12-03 10:53:03 +03:00
parent 7bd6275bac
commit cea2422977

View File

@ -22,7 +22,7 @@ static short get_robot_barrel(char robot_id) {
return -1; return -1;
} }
// TODO обновить метод // TODO обновить метод для работы с двумя роботами
// вернет можно ли ехать и главное куда ехать, если можно (нельзя если вернулось значение < 0) // вернет можно ли ехать и главное куда ехать, если можно (нельзя если вернулось значение < 0)
// -1 вернет что перемещать нельзя // -1 вернет что перемещать нельзя
// -2 вернет если требуется атомарная операция пассивации // -2 вернет если требуется атомарная операция пассивации
@ -347,6 +347,9 @@ void schedule_robot_1() {
tasks[i].start_zone = barrels[i].zone; tasks[i].start_zone = barrels[i].zone;
// определяем можно ли ее выполнить и что вообще нужно выполнить // определяем можно ли ее выполнить и что вообще нужно выполнить
tasks[i].dest_zone = can_move(barrels + i); tasks[i].dest_zone = can_move(barrels + i);
if (tasks[i].dest_zone >= 0) {
tasks[i].priority = get_operation_priority(i);
}
} }
// TODO добавить вставку lock-point'ов на задачах на несколько роботов // TODO добавить вставку lock-point'ов на задачах на несколько роботов
@ -362,9 +365,31 @@ void schedule_robot_1() {
// первым делом добавляем команду опустить траверсу // первым делом добавляем команду опустить траверсу
robot1_code.code[cmd_index++] = ROBOT_CMD_DOWN; robot1_code.code[cmd_index++] = ROBOT_CMD_DOWN;
if (tasks[target_task].start_zone != ZONE_WASHING_3B) { if (tasks[target_task].dest_zone == ZONE_PASSIVATION) {
// пассивация, тут все просто
if (robot1.dx.current_zone != tasks[target_task].start_zone) { if (robot1.dx.current_zone != tasks[target_task].start_zone) {
if (tasks[target_task].start_zone == 22) { robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE | ZONE_WASHING_3B;
}
robot1_code.code[cmd_index++] = ROBOT_CMD_UP_WITH_BARREL;
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE_WITH_BARREL | ZONE_PASSIVATION;
robot1_code.code[cmd_index++] = ROBOT_CMD_DOWN_WITH_BARREL;
robot1_code.code[cmd_index++] = ROBOT_CMD_TMR_SET;
robot1_code.code[cmd_index++] = barrels[target_task].time_passivation;
robot1_code.code[cmd_index++] = ROBOT_CMD_UP_WITH_BARREL;
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE_WITH_BARREL | ZONE_WASHING_4A;
robot1_code.code[cmd_index++] = ROBOT_CMD_DOWN_WITH_BARREL;
robot1_code.code[cmd_index++] = ROBOT_CMD_TMR_SET;
robot1_code.code[cmd_index++] = barrels[target_task].time_washing_4a;
} else {
// любой другой случай
if (robot1.dx.current_zone != tasks[target_task].start_zone) {
if (tasks[target_task].start_zone != 22) {
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE | tasks[target_task].start_zone;
} else {
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_OFF; robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_OFF;
robot1_code.code[cmd_index++] = ROBOT_CMD_UP; robot1_code.code[cmd_index++] = ROBOT_CMD_UP;
if (robot1.dx.current_zone != 21) { if (robot1.dx.current_zone != 21) {
@ -373,8 +398,6 @@ void schedule_robot_1() {
} }
robot1_code.code[cmd_index++] = ROBOT_CMD_DOWN_2; robot1_code.code[cmd_index++] = ROBOT_CMD_DOWN_2;
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE | 22; robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE | 22;
} else {
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE | tasks[target_task].start_zone;
} }
} }
@ -430,11 +453,13 @@ void schedule_robot_1() {
short tmp = -1; short tmp = -1;
switch (tasks[target_task].dest_zone) { switch (tasks[target_task].dest_zone) {
case ZONE_DEGREASING: case ZONE_DEGREASING:
tmp = barrels[target_task].time_degreasing; break; tmp = barrels[target_task].time_degreasing;
break;
case ZONE_ETCHING_1: case ZONE_ETCHING_1:
case ZONE_ETCHING_2: case ZONE_ETCHING_2:
tmp = barrels[target_task].time_etching; break; tmp = barrels[target_task].time_etching;
break;
case ZONE_GALVANIZING_1: case ZONE_GALVANIZING_1:
case ZONE_GALVANIZING_2: case ZONE_GALVANIZING_2:
@ -444,25 +469,34 @@ void schedule_robot_1() {
case ZONE_GALVANIZING_6: case ZONE_GALVANIZING_6:
case ZONE_GALVANIZING_7: case ZONE_GALVANIZING_7:
case ZONE_GALVANIZING_8: case ZONE_GALVANIZING_8:
tmp = barrels[target_task].time_galvanizing; break; tmp = barrels[target_task].time_galvanizing;
break;
case ZONE_WASHING_1A: case ZONE_WASHING_1A:
tmp = barrels[target_task].time_washing_1a; break; tmp = barrels[target_task].time_washing_1a;
break;
case ZONE_WASHING_2A: case ZONE_WASHING_2A:
tmp = barrels[target_task].time_washing_2a; break; tmp = barrels[target_task].time_washing_2a;
break;
case ZONE_WASHING_3A: case ZONE_WASHING_3A:
tmp = barrels[target_task].time_washing_3a; break; tmp = barrels[target_task].time_washing_3a;
break;
case ZONE_WASHING_4A: case ZONE_WASHING_4A:
tmp = barrels[target_task].time_washing_4a; break; tmp = barrels[target_task].time_washing_4a;
break;
case ZONE_WASHING_1B: case ZONE_WASHING_1B:
tmp = barrels[target_task].time_washing_1b; break; tmp = barrels[target_task].time_washing_1b;
break;
case ZONE_WASHING_2B: case ZONE_WASHING_2B:
tmp = barrels[target_task].time_washing_2b; break; tmp = barrels[target_task].time_washing_2b;
break;
case ZONE_WASHING_3B: case ZONE_WASHING_3B:
tmp = barrels[target_task].time_washing_3b; break; tmp = barrels[target_task].time_washing_3b;
break;
case ZONE_WASHING_4B: case ZONE_WASHING_4B:
tmp = barrels[target_task].time_washing_4b; break; tmp = barrels[target_task].time_washing_4b;
break;
} }
if (tmp != -1) { if (tmp != -1) {
@ -471,25 +505,6 @@ void schedule_robot_1() {
} }
} }
} }
} else {
// пассивация, тут все просто
if (robot1.dx.current_zone != tasks[target_task].start_zone) {
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE | ZONE_WASHING_3B;
}
robot1_code.code[cmd_index++] = ROBOT_CMD_UP_WITH_BARREL;
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE_WITH_BARREL | ZONE_PASSIVATION;
robot1_code.code[cmd_index++] = ROBOT_CMD_DOWN_WITH_BARREL;
robot1_code.code[cmd_index++] = ROBOT_CMD_TMR_SET;
robot1_code.code[cmd_index++] = barrels[target_task].time_passivation;
robot1_code.code[cmd_index++] = ROBOT_CMD_UP_WITH_BARREL;
robot1_code.code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE_WITH_BARREL | ZONE_WASHING_4A;
robot1_code.code[cmd_index++] = ROBOT_CMD_DOWN_WITH_BARREL;
robot1_code.code[cmd_index++] = ROBOT_CMD_TMR_SET;
robot1_code.code[cmd_index++] = barrels[target_task].time_washing_4a;
} }
robot1_code.code[cmd_index++] = ROBOT_CMD_END; robot1_code.code[cmd_index++] = ROBOT_CMD_END;