From 22eab960605b39dc1738d3aa7d01b5bce9d22cd5 Mon Sep 17 00:00:00 2001 From: alisagerasimova Date: Mon, 2 Mar 2026 21:05:09 +0300 Subject: [PATCH 01/11] =?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=B4=D0=B2.=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BC=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - сделала функцию с кьюар кодом --- public/shablons/emergency_and_navigate.txt | 1 + public/shablons/qr.txt | 12 +--------- src/App.vue | 26 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/public/shablons/emergency_and_navigate.txt b/public/shablons/emergency_and_navigate.txt index 5889c07..f80df0d 100644 --- a/public/shablons/emergency_and_navigate.txt +++ b/public/shablons/emergency_and_navigate.txt @@ -85,6 +85,7 @@ def signal_handler(sig, frame): signal.signal(signal.SIGINT, signal_handler) +<> def main(): navigate_wait(z=1,frame_id='body',auto_arm=True) #должно быть. включает моторы и поднимает дрон на метр вверх diff --git a/public/shablons/qr.txt b/public/shablons/qr.txt index b31ddde..73e211e 100644 --- a/public/shablons/qr.txt +++ b/public/shablons/qr.txt @@ -13,14 +13,4 @@ class QrDetect(): barcodes = pyzbar.decode(cv_image) if barcodes: - self.qr_data = barcodes[0].data.decode('utf-8') - - -#в MAIN для вызова функции необходимо следующее: -#1. создаём и вызываем подписчика, который вызывает функцию чтения кьюаркода -qd = QrDetect() -qr_sub = rospy.Subscriber('main_camera/image_raw',Image, qd.qr_detection,queue_size=1) -#2. задаём время работы подписчика (за 1 секунду примерно 20 раз вызывается функция) -rospy.sleep(2) -#3. выключаем подписчика -qr_sub.unregister() + self.qr_data = barcodes[0].data.decode('utf-8') \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 6f5d21d..46a1257 100644 --- a/src/App.vue +++ b/src/App.vue @@ -11,6 +11,14 @@ const clickCount = ref(1); // Счетчик нажатий const listOfTrips = ref([]); const isModalVisible = ref(false); let finallyText = ""; +const qr_sub_text = [ + "\tqd = QrDetect()\n", + "\tqr_sub = rospy.Subscriber('main_camera/image_raw',Image, qd.qr_detection,queue_size=1)\n", + "\trospy.sleep(2)\n", + "\tqr_sub.unregister()\n" +]; +let is_qr_used = 0; +let head = ""; onMounted(() => { for (let i = 0; i < 100; i++) { @@ -49,13 +57,31 @@ function saveResult() { let navigate_waites = ""; for (const item of listOfTrips.value) { navigate_waites += `\tnavigate_wait(${item.x}, ${item.y})\n`; + if (item.x===1 && item.y === 1) { + navigate_waites += qr_sub_text.join('') + is_qr_used=1 } + } + fetch("/shablons/emergency_and_navigate.txt") .then((response) => response.text()) .then((textOfCode) => { finallyText = textOfCode.replace("<>", navigate_waites); }); isModalVisible.value = true; + if (is_qr_used === 1) { + Qr_head() + is_qr_used +=1 + } +} + +function Qr_head() { + fetch("/shablons/qr.txt") + .then((response) => response.text()) + .then((textOfCode) => { + head = textOfCode; + finallyText = finallyText.replace("<>", head); + }) } function cancel() { -- 2.52.0 From 3e66e2d6aa8fa2733dd689646ccd863eadf7ddd5 Mon Sep 17 00:00:00 2001 From: Ilia Miheev Date: Mon, 2 Mar 2026 21:12:43 +0300 Subject: [PATCH 02/11] =?UTF-8?q?=D0=A4=D0=BE=D1=80=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=B4=D0=B0=20=D0=B8=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B0=20=D1=82=D0=B8=D0=BF=D0=BE=D0=B2=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20isSuccess?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/src/App.vue b/src/App.vue index 6f5d21d..0ace86e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,7 +1,7 @@