diff --git a/index.html b/index.html index 151627a..0694331 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - Hello World! + Probody diff --git a/package-lock.json b/package-lock.json index 6e9288c..97674a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "1.0.0", "license": "MIT", "dependencies": { + "@vueuse/core": "^14.2.1", + "copy-to-clipboard": "^3.3.3", "electron-squirrel-startup": "^1.0.1", "izitoast": "^1.4.0", "vue": "^3.5.28" @@ -2510,6 +2512,12 @@ "@types/node": "*" } }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, "node_modules/@types/wrap-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", @@ -2652,6 +2660,44 @@ "integrity": "sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ==", "license": "MIT" }, + "node_modules/@vueuse/core": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.2.1.tgz", + "integrity": "sha512-3vwDzV+GDUNpdegRY6kzpLm4Igptq+GA0QkJ3W61Iv27YWwW/ufSlOfgQIpN6FZRMG0mkaz4gglJRtq5SeJyIQ==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.2.1", + "@vueuse/shared": "14.2.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.2.1.tgz", + "integrity": "sha512-1ButlVtj5Sb/HDtIy1HFr1VqCP4G6Ypqt5MAo0lCgjokrk2mvQKsK2uuy0vqu/Ks+sHfuHo0B9Y9jn9xKdjZsw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.2.1.tgz", + "integrity": "sha512-shTJncjV9JTI4oVNyF1FQonetYAiTBd+Qj7cY89SWbXSkx7gyhrgtEdF2ZAVWS1S3SHlaROO6F2IesJxQEkZBw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -3591,6 +3637,15 @@ "dev": true, "license": "MIT" }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, "node_modules/cross-dirname": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", @@ -7778,6 +7833,12 @@ "node": ">=8.0" } }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", diff --git a/package.json b/package.json index dcbc836..f0de7b3 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,8 @@ "vite": "^5.4.21" }, "dependencies": { + "@vueuse/core": "^14.2.1", + "copy-to-clipboard": "^3.3.3", "electron-squirrel-startup": "^1.0.1", "izitoast": "^1.4.0", "vue": "^3.5.28" diff --git a/shablons/README.md b/public/shablons/README.md similarity index 100% rename from shablons/README.md rename to public/shablons/README.md diff --git a/shablons/color.py b/public/shablons/color.txt similarity index 99% rename from shablons/color.py rename to public/shablons/color.txt index 2ae7ea2..6571542 100644 --- a/shablons/color.py +++ b/public/shablons/color.txt @@ -44,10 +44,6 @@ class ColorDetect(): else: self.color = None - - - - #в MAIN для вызова функции должно быть: # cd = ColorDetect() #color_sub = rospy.Subscriber('main_camera/image_raw', Image, @@ -56,4 +52,3 @@ class ColorDetect(): # print(cd.getColor()) #rospy.sleep(2) #color_sub.unregister() - diff --git a/shablons/emergency_and_navigate.py b/public/shablons/emergency_and_navigate.txt similarity index 95% rename from shablons/emergency_and_navigate.py rename to public/shablons/emergency_and_navigate.txt index 6bea297..708ff95 100644 --- a/shablons/emergency_and_navigate.py +++ b/public/shablons/emergency_and_navigate.txt @@ -18,8 +18,6 @@ navigate = rospy.ServiceProxy('navigate', srv.Navigate) #сервис для п land = rospy.ServiceProxy('land', Trigger) #сервис для посадки - - def navigate_wait(x=0, y=0, z=1, speed=0.5, frame_id='aruco_map', auto_arm=False, tolerance=0.2,sleep=2): """ Летит в указанную точку и ждет, пока дрон туда ДОЛЕТИТ. @@ -36,9 +34,6 @@ def navigate_wait(x=0, y=0, z=1, speed=0.5, frame_id='aruco_map', auto_arm=False rospy.sleep(sleep) - - - def emergency_stop(): """Функция экстренной остановки, срабатывает при нажатии Ctrl + C""" @@ -78,8 +73,6 @@ def emergency_stop(): print(f"Warning: {e}") - - def signal_handler(sig, frame): """Перехват Ctrl+C: вместо аварийного завершения программы @@ -98,12 +91,10 @@ def main(): #в дальнейшем не передавать переменной auto_arm значение True - # тут будут navigate_wait и подписчики - # navigate_wait(x=3,z=1,sleep=1) - # navigate_wait(y=5,x=2,z=1,sleep = 4) + <> land() #посадка if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/public/shablons/qr.txt b/public/shablons/qr.txt new file mode 100644 index 0000000..b31ddde --- /dev/null +++ b/public/shablons/qr.txt @@ -0,0 +1,26 @@ +class QrDetect(): + def __init__(self): + self.qr_data = '' + + def getQrData(self): + return self.qr_data + + def qr_detection(self,data): + '''сканирование qr кода''' + if self.qr_data!= '': + return + cv_image = bridge.imgmsg_to_cv2(data, 'bgr8') + 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() diff --git a/shablons/qr.py b/shablons/qr.py deleted file mode 100644 index 8cd6251..0000000 --- a/shablons/qr.py +++ /dev/null @@ -1,26 +0,0 @@ -qr_data='' - -def qr_detection(data): - '''сканирование qr кода''' - global qr_data - if qr_data!= '': - return - cv_image = bridge.imgmsg_to_cv2(data, 'bgr8') - barcodes = pyzbar.decode(cv_image) - - if barcodes: - qr_data = barcodes[0].data.decode('utf-8') - - return qr_data - - - - -#в MAIN для вызова функции необходимо следующее: -#1. создаём и вызываем подписчика, который вызывает функцию чтения кьюаркода -qr_sub = rospy.Subscriber('main_camera/image_raw',Image, qr_detection,queue_size=1) -#2. задаём время работы подписчика (за 1 секунду примерно 20 раз вызывается функция) -rospy.sleep(2) -#3. выключаем подписчика -qr_sub.unregister() - diff --git a/src/App.vue b/src/App.vue index 73d85ad..f61d5cb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,14 +1,18 @@ \ No newline at end of file diff --git a/src/copyToclipboard.js b/src/copyToclipboard.js new file mode 100644 index 0000000..662f9e9 --- /dev/null +++ b/src/copyToclipboard.js @@ -0,0 +1,17 @@ +import copy from 'copy-to-clipboard'; +import iziToast from '@/iziToast.js'; + +function copyToclipboard(text) { + try { + copy(text) + } catch (error) { + console.error("Ошибка при копировании текста: ", error); + iziToast.error({ + title: 'Ошибка', + message: "Ошибка при копировании текста. Подробности смотри в консоли", + }); + return; + } +} + +export default copyToclipboard \ No newline at end of file diff --git a/vite.renderer.config.mjs b/vite.renderer.config.mjs index 1c6c6ef..79f986d 100644 --- a/vite.renderer.config.mjs +++ b/vite.renderer.config.mjs @@ -1,7 +1,13 @@ import { defineConfig } from 'vite'; +import { resolve } from 'path'; import vue from '@vitejs/plugin-vue'; // https://vitejs.dev/config export default defineConfig({ - plugins: [vue()] + plugins: [vue()], + resolve: { + alias: { + '@': resolve(__dirname, 'src'), + }, + }, }); \ No newline at end of file