From 33b705c1ef5eefa5f6193fbeb98b813c3e3e485e Mon Sep 17 00:00:00 2001 From: VladislavOstapov Date: Fri, 16 Dec 2022 13:37:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B9=20=D1=80?= =?UTF-8?q?=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emulator.cpp | 2 +- emulator.h | 2 +- scheduler.c | 11 ++++++----- utils.c | 6 +++--- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/emulator.cpp b/emulator.cpp index f5a1e5f..85c0919 100644 --- a/emulator.cpp +++ b/emulator.cpp @@ -14,7 +14,6 @@ struct robot_regs robot1; struct robot_regs robot2; char _scheduler_software_timer = 0; -char _scheduler_one_robot_mode = 1; // кнопка загрузки в зоне 0, означает что барабан надо изъять из этой загрузки (а перед этим создать) char button_load = 0; @@ -45,6 +44,7 @@ short hla_time_washing_2 = 20; char hla_robot1_en = 1; char hla_robot2_en = 0; +char one_robot_mode = (char)(hla_robot1_en ^ hla_robot2_en); char _scheduler_en = 1; diff --git a/emulator.h b/emulator.h index 521dcf4..3551414 100644 --- a/emulator.h +++ b/emulator.h @@ -8,7 +8,7 @@ extern "C" { #endif extern char _scheduler_software_timer; -extern char _scheduler_one_robot_mode; +extern char one_robot_mode; extern short etching_zone, galvanizing_zone; diff --git a/scheduler.c b/scheduler.c index cc3f4d4..42eaf12 100644 --- a/scheduler.c +++ b/scheduler.c @@ -104,9 +104,8 @@ void schedule_one_robot(const struct scheduler_task* tasks, const struct robot_r void scheduler_main() #endif { - _scheduler_one_robot_mode = (char)(hla_robot1_en ^ hla_robot2_en); - if (_scheduler_en && (hla_robot1_en || hla_robot2_en)) { + if (_scheduler_en) { // тут возможна только вставка барабанов if (button_load) { if (!zone_is_busy(1)) { @@ -136,12 +135,14 @@ void scheduler_main() // кнопка выгрузки if (button_unload_end) { - button_unload_end = (char)(remove_barrel_from_zone(0) != 0); + button_unload_end = 0; + remove_barrel_from_zone(0); } // кнопка удаления барабана из 22 зоны if (button_unload_remove) { - button_unload_remove = (char)(remove_barrel_from_zone(22) != 0); + button_unload_remove = 0; + remove_barrel_from_zone(22); } // таймер, применяется ко всем существующим барабанам @@ -166,7 +167,7 @@ void scheduler_main() } } - if (_scheduler_one_robot_mode) { + if (one_robot_mode) { // режим одного робота if (hla_robot1_en && robot1_code.PC < 0) { schedule_one_robot(tasks, &robot1, &robot1_code, 1); diff --git a/utils.c b/utils.c index 11e9e19..fe0dee2 100644 --- a/utils.c +++ b/utils.c @@ -37,7 +37,7 @@ short can_move(struct barrel* bar) { } #ifdef EMULATOR - if (!_scheduler_one_robot_mode) { + if (!one_robot_mode) { printf("WARMING: нет проверки того, что для перемещения барабана не мешает второй робот\n"); } #endif @@ -163,7 +163,7 @@ short can_move(struct barrel* bar) { case ZONE_UNLOAD: // последняя промывка, нужно разрешение на выгрузку - if (_scheduler_one_robot_mode && button_unload) { + if (one_robot_mode && button_unload) { // нужно промывку загрузку 0 if (!zone_is_busy(ZONE_LOAD_1)) { return ZONE_LOAD_1; @@ -525,7 +525,7 @@ void create_operation(struct robot_code *code, const short barrel_id, const shor } } - if (!_scheduler_one_robot_mode) { + if (!one_robot_mode) { if (robot_id == 1) { if (dest_zone >= ZONE_GALVANIZING_1) { // из промывки 2б он перекладывал, пусть едет в промывку 2а