Исправления последовательности техпроцесса, исправления создания команд
This commit is contained in:
parent
353aad9bec
commit
848e3cfdcb
117
utils.c
117
utils.c
@ -203,7 +203,7 @@ short can_move(struct barrel *bar, char robot_id) {
|
||||
if (robot_id == 1) {
|
||||
approximate_time = bar->zone - robot1.dx.current_zone;
|
||||
} else {
|
||||
approximate_time = bar->zone - robot1.dx.current_zone;
|
||||
approximate_time = bar->zone - robot2.dx.current_zone;
|
||||
}
|
||||
|
||||
// abs(approximate_time)
|
||||
@ -239,8 +239,8 @@ short can_move(struct barrel *bar, char robot_id) {
|
||||
if (border < robot2_lock_zone) {
|
||||
border = robot2_lock_zone;
|
||||
}
|
||||
if (border < ZONE_WASHING_2A) {
|
||||
border = ZONE_WASHING_2A;
|
||||
if (border < ZONE_ETCHING_2) {
|
||||
border = ZONE_ETCHING_2;
|
||||
}
|
||||
|
||||
border += LOCK_ZONE_BORDER;
|
||||
@ -493,6 +493,10 @@ void create_operation(struct robot_code *code, short barrel_id, const short star
|
||||
if (hla_night_mode && barrels[barrel_id].flags.is_empty && dest_zone == get_first_night_zone()) {
|
||||
barrels[barrel_id].flags.is_night = -1;
|
||||
}
|
||||
|
||||
if (start_zone == 22) {
|
||||
button_unload = 0;
|
||||
}
|
||||
}
|
||||
|
||||
short cmd_index = 0;
|
||||
@ -631,11 +635,15 @@ void create_operation(struct robot_code *code, short barrel_id, const short star
|
||||
|
||||
code->code[cmd_index++] = ROBOT_CMD_MOVE_TO_ZONE_WITH_BARREL(dest_zone);
|
||||
|
||||
// инкремент зоны (если травление или цинкование)
|
||||
if (dest_zone == ZONE_ETCHING_1 || dest_zone == ZONE_ETCHING_2) {
|
||||
code->code[cmd_index++] = ROBOT_CMD_INC_ZONE(ROBOT_ZONE_ETCH);
|
||||
} else if (dest_zone >= ZONE_GALVANIZING_1 && dest_zone <= ZONE_GALVANIZING_8) {
|
||||
code->code[cmd_index++] = ROBOT_CMD_INC_ZONE(ROBOT_ZONE_GAL);
|
||||
if (barrel_id >= 0) {
|
||||
if (!barrels[barrel_id].flags.is_empty) {
|
||||
// инкремент зоны (если травление или цинкование)
|
||||
if (dest_zone == ZONE_ETCHING_1 || dest_zone == ZONE_ETCHING_2) {
|
||||
code->code[cmd_index++] = ROBOT_CMD_INC_ZONE(ROBOT_ZONE_ETCH);
|
||||
} else if (dest_zone >= ZONE_GALVANIZING_1 && dest_zone <= ZONE_GALVANIZING_8) {
|
||||
code->code[cmd_index++] = ROBOT_CMD_INC_ZONE(ROBOT_ZONE_GAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
code->code[cmd_index++] = ROBOT_CMD_DOWN_WITH_BARREL();
|
||||
@ -646,60 +654,65 @@ void create_operation(struct robot_code *code, short barrel_id, const short star
|
||||
code->code[cmd_index++] = ROBOT_CMD_UP();
|
||||
code->code[cmd_index++] = ROBOT_CMD_DOWN();
|
||||
} else {
|
||||
|
||||
if (dest_zone != 0) {
|
||||
|
||||
// установка времени ожидания барабана
|
||||
short tmp = -1;
|
||||
switch (dest_zone) {
|
||||
case ZONE_DEGREASING:
|
||||
tmp = barrels[barrel_id].time_degreasing;
|
||||
break;
|
||||
if (barrel_id >= 0) {
|
||||
if (!barrels[barrel_id].flags.is_empty) {
|
||||
switch (dest_zone) {
|
||||
case ZONE_DEGREASING:
|
||||
tmp = barrels[barrel_id].time_degreasing;
|
||||
break;
|
||||
|
||||
case ZONE_ETCHING_1:
|
||||
case ZONE_ETCHING_2:
|
||||
tmp = barrels[barrel_id].time_etching;
|
||||
break;
|
||||
case ZONE_ETCHING_1:
|
||||
case ZONE_ETCHING_2:
|
||||
tmp = barrels[barrel_id].time_etching;
|
||||
break;
|
||||
|
||||
case ZONE_GALVANIZING_1:
|
||||
case ZONE_GALVANIZING_2:
|
||||
case ZONE_GALVANIZING_3:
|
||||
case ZONE_GALVANIZING_4:
|
||||
case ZONE_GALVANIZING_5:
|
||||
case ZONE_GALVANIZING_6:
|
||||
case ZONE_GALVANIZING_7:
|
||||
case ZONE_GALVANIZING_8:
|
||||
tmp = barrels[barrel_id].time_galvanizing;
|
||||
break;
|
||||
case ZONE_GALVANIZING_1:
|
||||
case ZONE_GALVANIZING_2:
|
||||
case ZONE_GALVANIZING_3:
|
||||
case ZONE_GALVANIZING_4:
|
||||
case ZONE_GALVANIZING_5:
|
||||
case ZONE_GALVANIZING_6:
|
||||
case ZONE_GALVANIZING_7:
|
||||
case ZONE_GALVANIZING_8:
|
||||
tmp = barrels[barrel_id].time_galvanizing;
|
||||
break;
|
||||
|
||||
case ZONE_WASHING_1A:
|
||||
tmp = barrels[barrel_id].time_washing_1a;
|
||||
break;
|
||||
case ZONE_WASHING_2A:
|
||||
tmp = barrels[barrel_id].time_washing_2a;
|
||||
break;
|
||||
case ZONE_WASHING_3A:
|
||||
tmp = barrels[barrel_id].time_washing_3a;
|
||||
break;
|
||||
case ZONE_WASHING_4A:
|
||||
tmp = barrels[barrel_id].time_washing_4a;
|
||||
break;
|
||||
case ZONE_WASHING_1A:
|
||||
tmp = barrels[barrel_id].time_washing_1a;
|
||||
break;
|
||||
case ZONE_WASHING_2A:
|
||||
tmp = barrels[barrel_id].time_washing_2a;
|
||||
break;
|
||||
case ZONE_WASHING_3A:
|
||||
tmp = barrels[barrel_id].time_washing_3a;
|
||||
break;
|
||||
case ZONE_WASHING_4A:
|
||||
tmp = barrels[barrel_id].time_washing_4a;
|
||||
break;
|
||||
|
||||
case ZONE_WASHING_1B:
|
||||
tmp = barrels[barrel_id].time_washing_1b;
|
||||
break;
|
||||
case ZONE_WASHING_2B:
|
||||
tmp = barrels[barrel_id].time_washing_2b;
|
||||
break;
|
||||
case ZONE_WASHING_3B:
|
||||
tmp = barrels[barrel_id].time_washing_3b;
|
||||
break;
|
||||
case ZONE_WASHING_4B:
|
||||
tmp = barrels[barrel_id].time_washing_4b;
|
||||
break;
|
||||
case ZONE_WASHING_1B:
|
||||
tmp = barrels[barrel_id].time_washing_1b;
|
||||
break;
|
||||
case ZONE_WASHING_2B:
|
||||
tmp = barrels[barrel_id].time_washing_2b;
|
||||
break;
|
||||
case ZONE_WASHING_3B:
|
||||
tmp = barrels[barrel_id].time_washing_3b;
|
||||
break;
|
||||
case ZONE_WASHING_4B:
|
||||
tmp = barrels[barrel_id].time_washing_4b;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
tmp = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (tmp > 0) {
|
||||
if (tmp >= 0) {
|
||||
if (tmp > 8000) {
|
||||
tmp = 8000;
|
||||
}
|
||||
|
Reference in New Issue
Block a user