diff --git a/index.html b/index.html index 0694331..98f3860 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - Probody + SkyVue diff --git a/package-lock.json b/package-lock.json index 2c416e6..bac231d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "probody", + "name": "SkyVue", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "probody", + "name": "SkyVue", "version": "1.0.0", "license": "MIT", "dependencies": { @@ -14,6 +14,7 @@ "copy-to-clipboard": "^3.3.3", "electron-squirrel-startup": "^1.0.1", "izitoast": "^1.4.0", + "prismjs": "^1.30.0", "vue": "^3.5.28" }, "devDependencies": { @@ -616,6 +617,7 @@ "integrity": "sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.1.1", "fs-extra": "^9.0.1", @@ -1752,6 +1754,7 @@ "integrity": "sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@inquirer/checkbox": "^3.0.1", "@inquirer/confirm": "^4.0.1", @@ -2910,6 +2913,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2976,6 +2980,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -3193,6 +3198,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -4499,17 +4505,6 @@ "dev": true, "license": "MIT" }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/end-of-stream": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", @@ -6832,6 +6827,15 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/proc-log": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", @@ -8030,6 +8034,7 @@ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -8089,6 +8094,7 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.28.tgz", "integrity": "sha512-BRdrNfeoccSoIZeIhyPBfvWSLFP4q8J3u8Ju8Ug5vu3LdD+yTM13Sg4sKtljxozbnuMu1NB1X5HBHRYUzFocKg==", "license": "MIT", + "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.28", "@vue/compiler-sfc": "3.5.28", @@ -8142,6 +8148,7 @@ "integrity": "sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", diff --git a/package.json b/package.json index dceac85..0c3547e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "probody", - "productName": "probody", + "name": "SkyVue", + "productName": "SkyVue", "version": "1.0.0", "description": "My Electron application description", "main": ".vite/build/main.js", @@ -35,6 +35,7 @@ "copy-to-clipboard": "^3.3.3", "electron-squirrel-startup": "^1.0.1", "izitoast": "^1.4.0", + "prismjs": "^1.30.0", "vue": "^3.5.28" } } diff --git a/public/images/logo.jpg b/public/images/logo.jpg new file mode 100644 index 0000000..be449f0 Binary files /dev/null and b/public/images/logo.jpg differ diff --git a/public/shablons/color.txt b/public/shablons/color.txt index b61e0f9..71cdb2c 100644 --- a/public/shablons/color.txt +++ b/public/shablons/color.txt @@ -34,7 +34,7 @@ def color_detection(data, print_type='str'): color = 'green' elif r > b + 20 and r > g + 20 and r > 100: color = 'red' - elif r > 150 and g > 150 and g > 150: + elif r > 150 and g > 150 and b > 150: color= 'white' else: color = None diff --git a/src/App.vue b/src/App.vue index 8650d0d..97917e3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,17 +1,20 @@ diff --git a/src/components/CodeBlock.vue b/src/components/CodeBlock.vue new file mode 100644 index 0000000..b36929d --- /dev/null +++ b/src/components/CodeBlock.vue @@ -0,0 +1,32 @@ + + + + + \ No newline at end of file diff --git a/src/components/CodeView.vue b/src/components/CodeView.vue new file mode 100644 index 0000000..d26ecfc --- /dev/null +++ b/src/components/CodeView.vue @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file diff --git a/src/components/MovementButtons.vue b/src/components/MovementButtons.vue new file mode 100644 index 0000000..1d5ee6d --- /dev/null +++ b/src/components/MovementButtons.vue @@ -0,0 +1,62 @@ + + + + + \ No newline at end of file diff --git a/src/components/MyDialog.vue b/src/components/MyDialog.vue index c27b895..3ef2430 100644 --- a/src/components/MyDialog.vue +++ b/src/components/MyDialog.vue @@ -1,21 +1,22 @@ \ No newline at end of file + +/* Начало появления: ниже и прозрачный */ +.modal-fade-enter-from { + opacity: 0; +} + +/* Конец появления: на месте и видим */ +.modal-fade-enter-to { + opacity: 1; +} + +/* Начало исчезания: на месте и видим */ +.modal-fade-leave-from { + opacity: 1; +} + +/* Конец исчезания: выше и прозрачный */ +.modal-fade-leave-to { + opacity: 0; +} + +/* Общие настройки анимации (скорость + плавность) */ +.modal-fade-enter-active, +.modal-fade-leave-active { + transition: transform 0.7s cubic-bezier(.22, .9, .31, 1), opacity 0.7s ease; + will-change: transform, opacity; +} + \ No newline at end of file diff --git a/src/components/MyDropMenu.vue b/src/components/MyDropMenu.vue index 679e06c..80653d9 100644 --- a/src/components/MyDropMenu.vue +++ b/src/components/MyDropMenu.vue @@ -1,120 +1,182 @@ diff --git a/src/components/UI/CustomButton.vue b/src/components/UI/CustomButton.vue new file mode 100644 index 0000000..cf2f853 --- /dev/null +++ b/src/components/UI/CustomButton.vue @@ -0,0 +1,43 @@ + + + + + \ No newline at end of file diff --git a/src/data/informationForDirectory.js b/src/data/informationForDirectory.js new file mode 100644 index 0000000..2224cb6 --- /dev/null +++ b/src/data/informationForDirectory.js @@ -0,0 +1,56 @@ +export default [ + { + title: 'ROS', + body: 'ROS (Robot Operating System) — экосистема для программирования роботов с открытым исходным кодом', + hrefToDoc: 'https://www.ros.org/', + hrefToCourse: 'https://stepik.org/lesson/2260739/step/1?unit=2294748' + }, + { + title: 'OpenCV', + body: 'OpenCV (Open Source Computer Vision Library) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом.', + hrefToDoc: 'https://opencv.org/', + hrefToCourse: 'https://stepik.org/lesson/2272700/step/1?unit=2306893' + }, + { + title: 'navigate_wait', + body: 'Navigate_wait — функция в библиотеке CLOVER, которая ожидает, пока дрон долетит до целевой точки, перед выполнением следующей команды. Это полезно, так как функция navigate сразу возвращает управление: скрипт продолжает выполняться, даже если дрон ещё летит к цели. ', + hrefToDoc: 'https://clover.coex.tech/ru/snippets.html', + hrefToCourse: 'https://stepik.org/lesson/2264712/step/1?unit=2298803' + }, + { + title: 'Topic', + body: 'Топик (Topic) в ROS — это именованный канал передачи данных, через который ноды обмениваются сообщениями.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' + }, + { + title: 'Нода', + body: 'Нода в ROS - исполняемая программа, которая выполняет одну задачу. ', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2261765/step/1?unit=2295758' + }, + { + title: 'Издатель', + body: 'Издатель (Publisher) в ROS — это узел, который производит данные. Он может публиковать сообщения определённого типа в заданной теме и делать их доступными для других узлов (подписчиков). ', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' + }, + { + title: 'Подписчик', + body: 'Подписчик (Subscriber) в ROS — это узел, который получает сообщения и информацию, публикуемые в определённой теме (канале) ROS.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' + }, + { + title: 'Сервис', + body: 'Сервис в ROS - это функция, которую мы можем вызвать, чтобы либо дать команду роботу,либо получить от него какую-то информацию.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2263182/step/1?unit=2297206' + }, + { + title: 'Системы координат', + body: 'Системы координат в Clover позволяют определять местоположение дрона относительно разных точек отсчёта, что важно для автономного полёта, навигации и других задач. Наиболее часто используемые: aruco_map и body', + hrefToCourse: 'https://stepik.org/lesson/2264336/step/1?unit=2298407', + hrefToDoc: 'https://clover.coex.tech/ru/frames.html' + }, +] \ No newline at end of file diff --git a/src/main.js b/src/main.js index 8668dab..0ca4c63 100644 --- a/src/main.js +++ b/src/main.js @@ -15,10 +15,12 @@ const createWindow = () => { const mainWindow = new BrowserWindow({ width: width, height: height, + icon: './public/images/logo.jpg', webPreferences: { preload: path.join(__dirname, 'preload.js'), }, }); + mainWindow.menuBarVisible = false; // and load the index.html of the app. if (MAIN_WINDOW_VITE_DEV_SERVER_URL) { diff --git a/src/renderer.js b/src/renderer.js index 4099886..c191d27 100644 --- a/src/renderer.js +++ b/src/renderer.js @@ -29,5 +29,9 @@ import { createApp } from 'vue'; import App from './App.vue'; import '@imengyu/vue3-context-menu/lib/vue3-context-menu.css' +import Prism from 'prismjs' +import 'prismjs/themes/prism-okaidia.css' + + import ContextMenu from '@imengyu/vue3-context-menu' createApp(App).use(ContextMenu).mount('#app');