From 66c69f4e0f3611dab50c3f7e7573940ae8ee91bb Mon Sep 17 00:00:00 2001 From: VladislavOstapov Date: Mon, 20 Feb 2023 12:37:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B2=20=D1=8D=D0=BC=D1=83=D0=BB=D1=8F?= =?UTF-8?q?=D1=82=D0=BE=D1=80=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6?= =?UTF-8?q?=D0=BA=D0=B8=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=86=D0=B8=D0=BD=D0=BA=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F,?= =?UTF-8?q?=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++-- emulator.cpp | 27 +++++++++++++++------------ utils.h | 2 ++ 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b9dba52..1c8d85c 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,11 @@ * нельзя отключить сразу все зоны цинкования или травления * коррекцию нужно описать так, чтобы не произошло ничего страшного * время скапывания нельзя поставить больше 200 секунд (в текущей реализации можно до 8К секунд) -* время каждого процесса не больше чем 32К секунд (можно уменьшить до 8К для упрощения логики) -* устанавливать режим работы роботов (один робот/второй робот/два робота) можно только в ручном режиме +* время каждого процесса не больше чем 8К секунд +* устанавливать режим работы роботов (первый робот/второй робот/два робота) можно только в ручном режиме ## Известные баги +* ночных барабанов на линии не может быть больше 8, если барабанов больше то они останутся в цинковании, поэтому следует * не работают регистры добавления/удаления барабанов с панели diff --git a/emulator.cpp b/emulator.cpp index f75b40b..1f6d732 100644 --- a/emulator.cpp +++ b/emulator.cpp @@ -56,6 +56,7 @@ char scheduler_en = 1; char scheduler_start_signal = 1; char auto_mode_pause = 0; char hla_night_mode = 0; +char hla_zinc_again = 0; short hla_exchange_zone = ZONE_GALVANIZING_2; @@ -228,15 +229,15 @@ static void showAll() { image_init(); image_draw_borders(); char tmp[64]; - sprintf(tmp, "Lock2=%2d Lock1=%2d FNZ=%d", robot2_lock_zone, robot1_lock_zone, get_first_night_zone()); + sprintf(tmp, "Lock2=%2d Lock1=%2d FNZ=%2d", robot2_lock_zone, robot1_lock_zone, get_first_night_zone()); image_insert_sprite(0, 2, tmp); collectBarrelsStatistic(); - sprintf(tmp, "barrels=%2d time=%d max_time=%d", barrels_count, barrels_time, max_time); + sprintf(tmp, "barrels=%02d time=%d max_time=%d", barrels_count, barrels_time, max_time); image_insert_sprite(0, 30, tmp); - sprintf(tmp, "MODE: night=%d pause=%d", hla_night_mode, auto_mode_pause); - image_insert_sprite(0, 70, tmp); + sprintf(tmp, "MODE: night=%d pause=%d zinc_again=%d", hla_night_mode, auto_mode_pause, hla_zinc_again); + image_insert_sprite(0, 66, tmp); // рисование бочек for (int i = 0; i < BARRELS_COUNT; i++) { @@ -339,12 +340,14 @@ int main() { // подсчитаем статистику collectBarrelsStatistic(); - // грузим не больше 5 барабанов -// if (barrels_count < 5) { + // грузим не больше 8 барабанов +// if (barrels_count < 8) { // button_load = 1; // } +// button_unload = 1; +// button_unload_end = 1; - // ======= БЛОК КОДА bittons_logic ======= + // ======= БЛОК КОДА buttons_logic ======= // авто сброс кнопок на выгрузке, если там нет барабана if (!zone_is_busy(ZONE_UNLOAD)) { @@ -428,10 +431,6 @@ int main() { if (robot2_code.PC >= 0) debug_print_robot_code(&robot2_code, 2, sock_fd); -#ifdef DEBUG_CORRECTION - -#endif - send_str("cmd >> "); std::string in; while (true) { @@ -471,8 +470,12 @@ int main() { } else if (in == "p") { auto_mode_pause = !auto_mode_pause; message = "Переключен режим паузы"; + } else if (in == "z") { + hla_zinc_again = !hla_zinc_again; + message = "Переключен флаг повторного цинкования"; } else { - message = "Неизвестная команда. q - выход, u - выгрузка, 1 - загрузка 1, 2 - загрузка 2"; + message = "Неизвестная команда. q - выход, u - выгрузка, 1 - загрузка 1, 2 - загрузка 2,\n" + " n - ночной режим, p - пауза, z - повторное цинкование"; } } current_tic++; diff --git a/utils.h b/utils.h index 21c31b6..c16b1ac 100644 --- a/utils.h +++ b/utils.h @@ -197,6 +197,7 @@ extern char auto_mode_pause; // Кнопки с панели extern char hla_night_mode; extern char hla_correct_command; +extern char hla_zinc_again; // разрешение на работу планировщика extern char scheduler_en; @@ -241,6 +242,7 @@ extern short scheduler_stage; #define auto_mode_pause _c_auto_mode_pause #define hla_night_mode _c_hla_night_mode +#define hla_zinc_again _c_hla_zinc_again #define hla_correct_command _c_hla_correct_command #define scheduler_stage _c_scheduler_stage