From 1474bf6fc35652238b7bdff1636f2bb09b3c673f Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Sun, 16 Jun 2019 17:08:01 +0300 Subject: [PATCH 01/80] Modify flip function to work better in aruco_map frame with both Clever 3 & 4 (cherry picked from commit a5021d4b6e133c04a16732cdaa9e7baf089c221a) --- Drone/FlightLib/FlightLib.py | 8 ++++---- Drone/copter_client.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Drone/FlightLib/FlightLib.py b/Drone/FlightLib/FlightLib.py index 334caeb..b08e59b 100644 --- a/Drone/FlightLib/FlightLib.py +++ b/Drone/FlightLib/FlightLib.py @@ -359,10 +359,10 @@ def takeoff(z=Z_TAKEOFF, speed=SPEED_TAKEOFF, frame_id='body', freq=FREQUENCY, #print("Takeoff succeeded!") return 'success' -def flip(min_z = FLIP_MIN_Z): #TODO Flip in different directions +def flip(min_z = FLIP_MIN_Z, frame_id = FRAME_ID): #TODO Flip in different directions logger.info("Flip started!") - start_telemetry = get_telemetry() # memorize starting position + start_telemetry = get_telemetry(frame_id=frame_id) # memorize starting position if start_telemetry.z < min_z - TOLERANCE: logger.warning("Can't do flip! Flip failed!") @@ -377,9 +377,9 @@ def flip(min_z = FLIP_MIN_Z): #TODO Flip in different directions while True: telem = get_telemetry() - if -math.pi + 0.1 < telem.roll < -0.2: + if abs(telem.roll) > math.pi/2: break logger.info('Flip succeeded!') #print('Flip succeeded!') - navto(x=start_telemetry.x, y=start_telemetry.y, z=start_telemetry.z, yaw=start_telemetry.yaw) # finish flip + navto(x=start_telemetry.x, y=start_telemetry.y, z=start_telemetry.z, yaw=start_telemetry.yaw, frame_id=frame_id) # finish flip diff --git a/Drone/copter_client.py b/Drone/copter_client.py index facecb4..8f2bbdc 100644 --- a/Drone/copter_client.py +++ b/Drone/copter_client.py @@ -108,7 +108,7 @@ def _command_emergency_led_fill(**kwargs): @messaging.message_callback("flip") def _copter_flip(): - FlightLib.flip() + FlightLib.flip(frame_id=client.active_client.FRAME_ID) @messaging.message_callback("takeoff") def _command_takeoff(**kwargs): From f35126440210cca93e3f21c95f661b07ddd8dc42 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 8 Jul 2019 11:32:33 +0300 Subject: [PATCH 02/80] Simplify bug report template --- .github/ISSUE_TEMPLATE/bug_report.md | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f3d5c41..377da27 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -7,11 +7,10 @@ assignees: '' --- -**Describe the bug** +**The bug description** A clear and concise description of what the bug is. -**To Reproduce** -Steps to reproduce the behavior: +**Steps to reproduce the behavior** 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' @@ -23,16 +22,8 @@ A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] +**Version** +v0.3-alpha.2 (for example) -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. +**Additional information** +Add any other information about the problem here. \ No newline at end of file From 2523f0b60f5b41f29c152d9e974dc0740a585808 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 8 Jul 2019 11:37:18 +0300 Subject: [PATCH 03/80] Update feauture request template --- .github/ISSUE_TEMPLATE/feature_request.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 11fc491..6f8ddbc 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -7,7 +7,7 @@ assignees: '' --- -**Is your feature request related to a problem? Please describe.** +**Request description** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** From 3e283222cb8ec5916320ff4d9b096be6c0f18bd8 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 8 Jul 2019 11:59:45 +0300 Subject: [PATCH 04/80] Add blender-csv-animation addon v0.4.0 --- blender-addon/README.md | 25 +++++ blender-addon/addon.py | 213 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 238 insertions(+) create mode 100644 blender-addon/README.md create mode 100644 blender-addon/addon.py diff --git a/blender-addon/README.md b/blender-addon/README.md new file mode 100644 index 0000000..5c594ba --- /dev/null +++ b/blender-addon/README.md @@ -0,0 +1,25 @@ +# blender-csv-animation +A Blender extension that export paths of objects in blender animation to a csv files + +## CSV file format +First row is the animation filename. +Every next row of the file contains following information about an object: +- frame number, +- x coordinate, +- y coordinate, +- z coordinate, +- rotaion around z-axis angle (yaw for copter), +- rgb. + +## How to use it +Clone or download this repository +```bash +git clone https://github.com/artem30801/blender-csv-animation +``` +Open Blender and install the addon: +1) Open User Prerences windows using main menu or shortcut (Ctrl + Alt + U): Files - User Preferences +2) Under Add-ons tab click Install Add-on from File... +3) Choose addon.py file from the directory of this repository +4) Enable the Add-on + +Use [official docs](https://docs.blender.org/manual/en/latest/preferences/addons.html) for getting additional information diff --git a/blender-addon/addon.py b/blender-addon/addon.py new file mode 100644 index 0000000..1a9d527 --- /dev/null +++ b/blender-addon/addon.py @@ -0,0 +1,213 @@ +import os +import csv +import math + +import bpy +from bpy_extras.io_utils import ExportHelper +from bpy.types import Operator +from bpy.props import StringProperty, BoolProperty, FloatProperty, IntProperty + +bl_info = { + "name": "Export > CSV Drone Swarm Animation Exporter (.csv)", + "author": "Artem Vasiunik", + "version": (0, 4, 0), + "blender": (2, 80, 0), + #"api": 36079, + "location": "File > Export > CSV Drone Swarm Animation Exporter (.csv)", + "description": "Export > CSV Drone Swarm Animation Exporter (.csv)", + "warning": "", + "wiki_url": "https://github.com/artem30801/blender-csv-animation/blob/master/README.md", + "tracker_url": "https://github.com/artem30801/blender-csv-animation/issues", + "category": "Import-Export" +} + + +class ExportCsv(Operator, ExportHelper): + bl_idname = "export_swarm_anim.folder" + bl_label = "Export Drone Swarm animation" + filename_ext = '' + use_filter_folder = True + + use_namefilter: bpy.props.BoolProperty( + name="Use name filter for objects", + default=True, + ) + + drones_name: bpy.props.StringProperty( + name="Name identifier", + description="Name identifier for all drone objects", + default="copter" + ) + + show_warnings: bpy.props.BoolProperty( + name="Show detailed animation warnings", + default=False, + ) + + speed_warning_limit: bpy.props.FloatProperty( + name="Speed limit", + description="Limit of drone movement speed (m/s)", + unit='VELOCITY', + default=3, + min=0, + ) + drone_distance_limit: bpy.props.FloatProperty( + name="Distance limit", + description="Closest possible distance between drones (m)", + unit='LENGTH', + default=1.5, + min=0, + ) + + filepath: StringProperty( + name="File Path", + description="File path used for exporting CSV files", + maxlen=1024, + subtype='DIR_PATH', + default="" + ) + + def execute(self, context): + + create_folder_if_does_not_exist(self.filepath) + scene = context.scene + objects = context.visible_objects + + drone_objects = [] + if self.use_namefilter: + for drone_obj in objects: + if self.drones_name.lower() in drone_obj.name.lower(): + drone_objects.append(drone_obj) + else: + drone_objects = objects + + frame_start = scene.frame_start + frame_end = scene.frame_end + + for drone_obj in drone_objects: + with open(os.path.join(self.filepath, '{}.csv'.format(drone_obj.name.lower())), 'w') as csv_file: + animation_file_writer = csv.writer( + csv_file, + delimiter=',', + quotechar='|', + quoting=csv.QUOTE_MINIMAL + ) + speed_exeeded = False + distance_exeeded = False + + prev_x, prev_y, prev_z = 0, 0, 0 + + animation_file_writer.writerow([ + os.path.splitext(bpy.path.basename(bpy.data.filepath))[0] + ]) + + for frame_number in range(frame_start, frame_end + 1): + scene.frame_set(frame_number) + rgb = get_rgb_from_object(drone_obj) + x, y, z = drone_obj.matrix_world.to_translation() + rot_z = drone_obj.matrix_world.to_euler('XYZ')[2] + + speed = calc_speed((x, y, z), (prev_x, prev_y, prev_z)) if frame_number != frame_start else 1 + prev_x, prev_y, prev_z = x, y, z + + if speed > self.speed_warning_limit: + speed_exeeded = True + if self.show_warnings: + self.report({'WARNING'}, + "Speed of drone '%s' is greater than %s m/s (%s m/s) on frame %s" % + (drone_obj.name, round(self.speed_warning_limit, 5), round(speed, 5), frame_number)) + + for second_drone_obj in drone_objects: + if second_drone_obj is not drone_obj: + x2, y2, z2 = second_drone_obj.matrix_world.to_translation() + distance = calc_distance((x, y, z), (x2, y2, z2)) + if distance < self.drone_distance_limit: + distance_exeeded = True + if self.show_warnings: + self.report({'WARNING'}, + "Distance beteween drones '%s' and '%s' is less than %s m (%s m) on frame %s" % + (drone_obj.name, second_drone_obj.name, + round(self.drone_distance_limit, 5), round(distance, 5), frame_number)) + + animation_file_writer.writerow([ + str(frame_number), + round(x, 5), round(y, 5), round(z, 5), + round(rot_z, 5), + *rgb, + ]) + + + + if speed_exeeded: + self.report({'WARNING'}, "Drone '%s' speed limits exeeded" % drone_obj.name) + if distance_exeeded: + self.report({'WARNING'}, "Drone '%s' distance limits exeeded" % drone_obj.name) + self.report({'WARNING'}, "Animation file exported for drone '%s'" % drone_obj.name) + return {'FINISHED'} + + +def create_folder_if_does_not_exist(folder_path): + if os.path.isdir(folder_path): + return + os.mkdir(folder_path) + + +def get_rgb_from_object(obj): + rgb = [0, 0, 0] + try: + if len(obj.material_slots) > 0: + print('material slots true') + for slot in obj.material_slots: + if "led_color" in slot.name.lower(): + print('led color') + if slot.material.use_nodes: + for node in slot.material.node_tree.nodes: + if node.type in ('EMISSION', 'BSDF_DIFFUSE'): + alpha = node.inputs[0].default_value[3] + for component in range(3): + rgb[component] = int(node.inputs[0].default_value[component] * alpha * 255) + else: + print('no led color') + for component in range(3): + rgb[component] = int(slot.material.diffuse_color[component] * 255) + + except AttributeError: + pass + finally: + return rgb + + +def calc_speed(start_point, end_point): + time_delta = 0.1 + distance = calc_distance(start_point, end_point) + return distance / time_delta + + +def calc_distance(start_point, end_point): + distance = math.sqrt( + (start_point[0] - end_point[0]) ** 2 + + (start_point[1] - end_point[1]) ** 2 + + (start_point[2] - end_point[2]) ** 2 + ) + return distance + + +def menu_func(self, context): + self.layout.operator( + ExportCsv.bl_idname, + text="CSV Drone Swarm Animation Exporter (.csv)" + ) + + +def register(): + bpy.utils.register_class(ExportCsv) + bpy.types.TOPBAR_MT_file_export.append(menu_func) + + +def unregister(): + bpy.utils.unregister_class(ExportCsv) + bpy.types.TOPBAR_MT_file_export.remove(menu_func) + + +if __name__ == "__main__": + register() From 3e3658491a152593812752c9afa0d24bf96456db Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 8 Jul 2019 12:20:17 +0300 Subject: [PATCH 05/80] Initial documentation commit --- docs/blender-addon.md | 23 +++++++++++++++++++++++ docs/client.md | 0 docs/image-building | 0 docs/server.md | 0 docs/start-tutorial.md | 0 5 files changed, 23 insertions(+) create mode 100644 docs/blender-addon.md create mode 100644 docs/client.md create mode 100644 docs/image-building create mode 100644 docs/server.md create mode 100644 docs/start-tutorial.md diff --git a/docs/blender-addon.md b/docs/blender-addon.md new file mode 100644 index 0000000..8c8b009 --- /dev/null +++ b/docs/blender-addon.md @@ -0,0 +1,23 @@ +# Установка и настройка аддона +## Установка +1. Скачайте [аддон](https://github.com/artem30801/blender-csv-animation) для экспорта анимации из Blender в полётные пути для коптеров. +2. Скачайте и установите согласно инструкциям последнюю версию Blender 2.8 (beta) с [оффициального сайта](https://builder.blender.org/download/) или при использовании OS Linux через команду терминала: +```bash +snap install blender --channel=beta --classic +``` +3. Откройте Blender, в верхнем меню выберите `Edit > Preferences`. В открывшемся окне настроек в боковой панели выберите пункт `Add-ons`. Нажмите на кнопку `Install...` в верхнем правом углу окна. В диалоговом окне откройте путь к папке со склонированным репозиторием проекта и выберите файл `addon.py` по пути [`blender-csv-animation/addon.py`](https://github.com/artem30801/blender-csv-animation/blob/master/addon.py). Нажмите `Install Add-on from file...`. Аддон установлен. +## Активация +В выпадающем списке `All` выберите пункт `User`. Поставьте "галочку" напротив аддона `Import-Export: Export > CSV Drone Swarm Animation Exporter` для активации аддона. Аддон активирован и готов к работе. Выполнение этих операций не понадобится при дальнейших запусках Blender. +## Дополнительно +Для деактивации аддона уберите "галочку" напротив имени аддона, как описано в предыдущем пункте. Для получения дополнительных сведений (версия, путь к файлу...) нажмите знак стрелочки слева от поля активации. В развернувшемся блоке так же есть кнопки: `Documentation` - ведет на страницу документации аддона (вы тут); `Report a bug` - ведет на страницу багтрекера на репозитории аддона; `Remove` - удалят (деинсталлирует) аддон (перед установокой новой версии рекомендуется удалить старую). +# Подготовка и создание анимации дронов +... +[Пример](https://github.com/artem30801/blender-csv-animation/blob/master/Examples/copter_base_animation.blend) можно использовать в качестве шаблона. +# Экпорт при помощи аддона +Для вызова диалогового окна экспорта нажмите в верхнем меню `File > Export > CSV Drone Swarm Animation Exporter`. В открывшемся окне экспорта необходимо выбрать целевой путь экспорта и название папки, которую создаст аддон в процессе экспорта. В боковом меню доступна панель параметров экспорта: +* `Use name filter for objects` - при отключении этого параметра будут экспортированы _все видимые объекты_ +* `Name identifier` +* `Show detailed animation warnings` - +* `Speed limit` - при нарушении указанного ограничения по скорости передвижения дронов будут выведены предупреждения +* `Distance limit` - при нарушении указанной минимальной дистанции между дронами будут выведены предупреждения +После настройки (при необходимости) нужных параметров нажмите кнопку `Export Drone Swarm animation` \ No newline at end of file diff --git a/docs/client.md b/docs/client.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/image-building b/docs/image-building new file mode 100644 index 0000000..e69de29 diff --git a/docs/server.md b/docs/server.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/start-tutorial.md b/docs/start-tutorial.md new file mode 100644 index 0000000..e69de29 From e5ff50458518a98718ba89765b477f310865a74b Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 8 Jul 2019 13:11:24 +0300 Subject: [PATCH 06/80] Update README.md --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 68673b6..38e9c1e 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,16 @@ -# CleverSwarm -Програмное обеспечение для запуска шоу дронов под управлением Raspberry Pi с пакетом COEX Clever. - -[![Build Status](https://travis-ci.org/artem30801/CleverSwarm.svg?branch=master)](https://travis-ci.org/artem30801/CleverSwarm) +# clever-show +Програмное обеспечение для запуска шоу дронов под управлением Raspberry Pi с пакетом COEX [Clever](https://github.com/copterexpress/clever). ### Пакет включает в себя: -* Набор ПО для дрона, включащее в себя библиотеку для автономного полёта, модуль для воспроизведения анимаций и клиентское приложение для удаленного синхронизированного управления -* Серверное приложение для удаленного синхронизированного управления дронами и удобной передачи анимации +* [Набор ПО для дрона](https://github.com/artem30801/CleverSwarm/tree/master/Drone), включащее в себя библиотеку для автономного полёта, модуль для воспроизведения анимаций и клиентское приложение для удаленного синхронизированного управления +* [Серверное приложение](https://github.com/artem30801/CleverSwarm/tree/master/Server) для удаленного синхронизированного управления дронами и удобной настройки системы для воспроизведения анимации +* [Аддон для Blender 2.8](https://github.com/artem30801/CleverSwarm/tree/master/blender-addon) для преобразования анимации полёта коптеров, созданной в Blender, в файлы полётов для каждого коптера +* [Образ для Raspberry Pi](https://github.com/artem30801/CleverSwarm/releases/latest) для быстрого запуска ПО на коптере +[![Build Status](https://travis-ci.org/artem30801/CleverSwarm.svg?branch=master)](https://travis-ci.org/artem30801/CleverSwarm) ## Установка Скачайте или склонируйте этот репозиторий на компьютер и дроны: ```bash git clone https://github.com/artem30801/CleverSwarm.git ``` -Для дальнейших инструкций перейдите на Wiki +Для дальнейших инструкций перейдите в папку [docs](https://github.com/artem30801/CleverSwarm/tree/master/docs). From 14c989a0e98f9011a44b3b5817422491183c2832 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 8 Jul 2019 14:58:11 +0300 Subject: [PATCH 07/80] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 38e9c1e..ff12512 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ # clever-show +[![Build Status](https://travis-ci.org/artem30801/CleverSwarm.svg?branch=master)](https://travis-ci.org/artem30801/CleverSwarm) + Програмное обеспечение для запуска шоу дронов под управлением Raspberry Pi с пакетом COEX [Clever](https://github.com/copterexpress/clever). ### Пакет включает в себя: @@ -6,7 +8,6 @@ * [Серверное приложение](https://github.com/artem30801/CleverSwarm/tree/master/Server) для удаленного синхронизированного управления дронами и удобной настройки системы для воспроизведения анимации * [Аддон для Blender 2.8](https://github.com/artem30801/CleverSwarm/tree/master/blender-addon) для преобразования анимации полёта коптеров, созданной в Blender, в файлы полётов для каждого коптера * [Образ для Raspberry Pi](https://github.com/artem30801/CleverSwarm/releases/latest) для быстрого запуска ПО на коптере -[![Build Status](https://travis-ci.org/artem30801/CleverSwarm.svg?branch=master)](https://travis-ci.org/artem30801/CleverSwarm) ## Установка Скачайте или склонируйте этот репозиторий на компьютер и дроны: From cc2dc93203b23f2d9857d31808a2d4ef248f9279 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 8 Jul 2019 14:22:16 +0300 Subject: [PATCH 08/80] blender-addon: Update README.md --- blender-addon/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blender-addon/README.md b/blender-addon/README.md index 5c594ba..50a5992 100644 --- a/blender-addon/README.md +++ b/blender-addon/README.md @@ -14,7 +14,7 @@ Every next row of the file contains following information about an object: ## How to use it Clone or download this repository ```bash -git clone https://github.com/artem30801/blender-csv-animation +git clone https://github.com/artem30801/CleverSwarm.git ``` Open Blender and install the addon: 1) Open User Prerences windows using main menu or shortcut (Ctrl + Alt + U): Files - User Preferences From c16ba87d10453bd967c347ea3373b79fb0d564b2 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 8 Jul 2019 17:03:08 +0300 Subject: [PATCH 09/80] builder: Add ability to move custom files from clever-config directory to clever image --- builder/assets/animation_map.txt | 25 ------- builder/clever-config/launch/aruco.launch | 37 ++++++++++ builder/clever-config/launch/clever.launch | 71 +++++++++++++++++++ .../clever-config/launch/main_camera.launch | 37 ++++++++++ builder/clever-config/map/animation_map.txt | 8 +++ builder/image-build.sh | 7 +- builder/image-configure.sh | 10 +-- 7 files changed, 160 insertions(+), 35 deletions(-) delete mode 100644 builder/assets/animation_map.txt create mode 100644 builder/clever-config/launch/aruco.launch create mode 100644 builder/clever-config/launch/clever.launch create mode 100644 builder/clever-config/launch/main_camera.launch create mode 100644 builder/clever-config/map/animation_map.txt diff --git a/builder/assets/animation_map.txt b/builder/assets/animation_map.txt deleted file mode 100644 index 8e04a74..0000000 --- a/builder/assets/animation_map.txt +++ /dev/null @@ -1,25 +0,0 @@ -0 0.3375 0.0 4.6 0 0 0 0 -1 0.3375 1.15 4.6 0 0 0 0 -2 0.3375 2.3 4.6 0 0 0 0 -3 0.3375 3.45 4.6 0 0 0 0 -4 0.3375 4.6 4.6 0 0 0 0 -5 0.3375 0.0 3.45 0 0 0 0 -6 0.3375 1.15 3.45 0 0 0 0 -7 0.3375 2.3 3.45 0 0 0 0 -8 0.3375 3.45 3.45 0 0 0 0 -9 0.3375 4.6 3.45 0 0 0 0 -10 0.3375 0.0 2.3 0 0 0 0 -11 0.3375 1.15 2.3 0 0 0 0 -12 0.3375 2.3 2.3 0 0 0 0 -13 0.3375 3.45 2.3 0 0 0 0 -14 0.3375 4.6 2.3 0 0 0 0 -15 0.3375 0.0 1.15 0 0 0 0 -16 0.3375 1.15 1.15 0 0 0 0 -17 0.3375 2.3 1.15 0 0 0 0 -18 0.3375 3.45 1.15 0 0 0 0 -19 0.3375 4.6 1.15 0 0 0 0 -20 0.3375 0.0 0.0 0 0 0 0 -21 0.3375 1.15 0.0 0 0 0 0 -22 0.3375 2.3 0.0 0 0 0 0 -23 0.3375 3.45 0.0 0 0 0 0 -24 0.3375 4.6 0.0 0 0 0 0 diff --git a/builder/clever-config/launch/aruco.launch b/builder/clever-config/launch/aruco.launch new file mode 100644 index 0000000..d7754d9 --- /dev/null +++ b/builder/clever-config/launch/aruco.launch @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/builder/clever-config/launch/clever.launch b/builder/clever-config/launch/clever.launch new file mode 100644 index 0000000..1020ea2 --- /dev/null +++ b/builder/clever-config/launch/clever.launch @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/builder/clever-config/launch/main_camera.launch b/builder/clever-config/launch/main_camera.launch new file mode 100644 index 0000000..92bec22 --- /dev/null +++ b/builder/clever-config/launch/main_camera.launch @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/builder/clever-config/map/animation_map.txt b/builder/clever-config/map/animation_map.txt new file mode 100644 index 0000000..9a54274 --- /dev/null +++ b/builder/clever-config/map/animation_map.txt @@ -0,0 +1,8 @@ +107 0.33 0 0 0 0 0 0 +106 0.33 0.77 0 0 0 0 0 +105 0.33 0 0.77 0 0 0 0 +104 0.33 0.77 0.77 0 0 0 0 +103 0.33 0 1.54 0 0 0 0 +102 0.33 0.77 1.54 0 0 0 0 +101 0.33 0 2.31 0 0 0 0 +100 0.33 0.77 2.31 0 0 0 0 diff --git a/builder/image-build.sh b/builder/image-build.sh index 5432a5f..e2f70d5 100755 --- a/builder/image-build.sh +++ b/builder/image-build.sh @@ -30,10 +30,12 @@ echo_stamp() { REPO_DIR="/mnt" SCRIPTS_DIR="${REPO_DIR}/builder" +CONFIG_DIR="${SCRIPTS_DIR}/clever-config" IMAGES_DIR="${REPO_DIR}/images" [[ ! -d ${SCRIPTS_DIR} ]] && (echo_stamp "Directory ${SCRIPTS_DIR} doesn't exist" "ERROR"; exit 1) [[ ! -d ${IMAGES_DIR} ]] && mkdir ${IMAGES_DIR} && echo_stamp "Directory ${IMAGES_DIR} was created successful" "SUCCESS" +[[ ! -d ${CONFIG_DIR} ]] && mkdir ${CONFIG_DIR} && echo_stamp "Directory ${CONFIG_DIR} was created successful" "SUCCESS" if [[ -z ${TRAVIS_TAG} ]]; then IMAGE_VERSION="$(cd ${REPO_DIR}; git log --format=%h -1)"; else IMAGE_VERSION="${TRAVIS_TAG}"; fi # IMAGE_VERSION="${TRAVIS_TAG:=$(cd ${REPO_DIR}; git log --format=%h -1)}" @@ -105,7 +107,10 @@ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" # Copy service file for clever show client img-chroot ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/clever-show.service' '/lib/systemd/system/' -img-chroot ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/animation_map.txt' '/home/pi/catkin_ws/src/clever/aruco_pose/map/' + +# Copy config files for clever +if [[ -d "${CONFIG_DIR}/launch" ]]; then img-chroot ${IMAGE_PATH} copy ${CONFIG_DIR}'/launch' '/home/pi/catkin_ws/src/clever/clever'; fi +if [[ -d "${CONFIG_DIR}/map" ]]; then img-chroot ${IMAGE_PATH} copy ${CONFIG_DIR}'/map' '/home/pi/catkin_ws/src/clever/aruco_pose'; fi # Shrink image img-resize ${IMAGE_PATH} diff --git a/builder/image-configure.sh b/builder/image-configure.sh index 3ad8cf5..f7e0885 100755 --- a/builder/image-configure.sh +++ b/builder/image-configure.sh @@ -23,7 +23,7 @@ echo_stamp() { } # rename wifi ssid -sed -i "s/NEW_SSID='CLEVER/NEW_SSID='CleverShow/" /root/init_rpi.sh +sed -i "s/NEW_SSID='CLEVER/NEW_SSID='CLEVERSHOW/" /root/init_rpi.sh # add sudoers variables to make sudo works with ros (for led strip) grep -qxF 'Defaults env_keep += "ROS_LOG_DIR"' /etc/sudoers || cat << EOT >> /etc/sudoers @@ -38,13 +38,5 @@ Defaults env_keep += "ROS_HOME" Defaults env_keep += "ROS_LOG_DIR" EOT -# configure aruco.launch and clever.launch (for positioning with aruco map) -sed -i '/' /home/pi/catkin_ws/src/clever/clever/launch/aruco.launch -sed -i '/' /home/pi/catkin_ws/src/clever/clever/launch/aruco.launch -sed -i '/' /home/pi/catkin_ws/src/clever/clever/launch/aruco.launch -sed -i '/' /home/pi/catkin_ws/src/clever/clever/launch/clever.launch -sed -i '/' /home/pi/catkin_ws/src/clever/clever/launch/clever.launch -sed -i '/' /home/pi/catkin_ws/src/clever/clever/launch/clever.launch - echo_stamp "Image was configured!" "SUCCESS" From c84d5501f83c0ecaee0bfef3c80aee39c31c5eab Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Fri, 12 Jul 2019 17:19:43 +0300 Subject: [PATCH 10/80] Fix merge conflict --- Drone/FlightLib/FlightLib.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/Drone/FlightLib/FlightLib.py b/Drone/FlightLib/FlightLib.py index 57a7443..cb653a1 100644 --- a/Drone/FlightLib/FlightLib.py +++ b/Drone/FlightLib/FlightLib.py @@ -396,8 +396,5 @@ def flip(min_z = FLIP_MIN_Z, frame_id = FRAME_ID): #TODO Flip in different direc logger.info('Flip succeeded!') #print('Flip succeeded!') navto(x=start_telemetry.x, y=start_telemetry.y, z=start_telemetry.z, yaw=start_telemetry.yaw, frame_id=frame_id) # finish flip -<<<<<<< HEAD -======= return True ->>>>>>> alpha From 07d47bbfc2af4db8cd23573995a4c8a3818a7deb Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Thu, 18 Jul 2019 16:20:05 +0300 Subject: [PATCH 11/80] Change checks type for takeoff and flip actions --- Server/server_qt.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Server/server_qt.py b/Server/server_qt.py index ed3339f..1d3247d 100644 --- a/Server/server_qt.py +++ b/Server/server_qt.py @@ -143,14 +143,14 @@ class MainWindow(QtWidgets.QMainWindow): @pyqtSlot() def takeoff_selected(self, **kwargs): for copter in self.model.user_selected(): - if all_checks(copter): + if takeoff_checks(copter): copter.client.send_message("takeoff") @confirmation_required("This operation will flip(!!!) copters immediately. Proceed?") @pyqtSlot() def flip(self, **kwargs): for copter in self.model.user_selected(): - if all_checks(copter): + if takeoff_checks(copter): copter.client.send_message("flip") @pyqtSlot() From b3ffa26132d3606a25dca946d47b6418d4e7bd2d Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 22 Jul 2019 00:33:13 +0300 Subject: [PATCH 12/80] builder: remove git depth from .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9fe38dd..5603a77 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ env: - if [[ -z ${TRAVIS_TAG} ]]; then IMAGE_VERSION="${TRAVIS_COMMIT}}"; else IMAGE_VERSION="${TRAVIS_TAG}"; fi - IMAGE_NAME="$(basename -s '.git' ${TARGET_REPO})_${IMAGE_VERSION}.img" git: - depth: 50 + depth: false jobs: fast_finish: true include: From eee8e831d96644a1e33a8b066f3863272eea5c85 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 22 Jul 2019 02:30:25 +0300 Subject: [PATCH 13/80] docs: Rename article file about image building --- docs/{image-building => image-building.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{image-building => image-building.md} (100%) diff --git a/docs/image-building b/docs/image-building.md similarity index 100% rename from docs/image-building rename to docs/image-building.md From c03d0d61bd9f49d88ca868b90c7e50eafc4bf204 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 22 Jul 2019 02:31:22 +0300 Subject: [PATCH 14/80] Server: add chrony example configuration file --- Server/chrony.conf | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Server/chrony.conf diff --git a/Server/chrony.conf b/Server/chrony.conf new file mode 100644 index 0000000..bccbf9e --- /dev/null +++ b/Server/chrony.conf @@ -0,0 +1,5 @@ +server master iburst +driftfile /var/lib/chrony/drift +allow 192.168.0.0/16 +makestep 1.0 3 +rtcsync \ No newline at end of file From 4947efe19f6181b590e3bb8268fb2ebf08388f51 Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 22 Jul 2019 02:49:59 +0300 Subject: [PATCH 15/80] docs: Add start tutorial --- docs/start-tutorial.md | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/docs/start-tutorial.md b/docs/start-tutorial.md index e69de29..104243c 100644 --- a/docs/start-tutorial.md +++ b/docs/start-tutorial.md @@ -0,0 +1,50 @@ +# Инструкция по настройке и запуску клиента и сервера + +## Список оборудования +Данное ПО предназначено для управления несколькими квадракоптерами с компьютера-сервера. Для полноценной работы необходимо следующее оборудование: +* Один или несколько квадрокоптеров, работающих на базе ПО [Клевер](https://github.com/copterexpress/clever). +* Компьютер с операционной системой Linux. +* Wifi роутер, работающий на частоте 2.4 ГГц, либо 5.8 ГГц, если эту частоту поддерживают wifi модули коптеров и компьютера. + +## Подготовка ПО +Скачайте на компьютер последний образ (CleverSwarm-XXX.img.zip) и исходный код (Source code) из последнего [релиза](https://github.com/artem30801/CleverSwarm/releases/latest). Разархивируйте исходный код в удобную директорию. + +## Настройка роутера +Для управления одним или несколькими коптерами требуется подключение коптеров и сервера к одной сети. Для этого требуется отдельный wifi роутер с известным SSID и паролем. Подключите компьютер, который будет использоваться в качестве сервера, к сети роутера и узнайте его ip адрес - он понадобится для дальнейшей настройки. + +## Настройка и запуск клиента + +* Запишите образ на microSD карту, используя [Etcher](https://www.balena.io/etcher/). +* Вставьте флешку в Raspberry Pi, включите коптер. Дождитесь появления сети `CLEVERSHOW-XXXX`. +* Подключитесь к сети коптера, используя пароль `cleverwifi`. +* Настройте коптер, чтобы корректно работал режим позиции. По-умолчанию образ сконфигурирован для получения позиции с камеры с помощью aruco-маркеров и optical flow. Камера направлена вниз и вперёд, загружена тестовая карта меток. Если ваш способ позиционирования отличается - можно либо настроить данный образ, либо [собрать образ](image-building.md) со своими настройками. +* Перейдите в директорию клиента и запустите скрипт настройки клиента +```bash +cd ~/CleverSwarm/Drone +sudo ./client_setup.sh +``` +* Выполните скрипт настройки клиента с указанными параметрами - SSID, пароль точки доступа, имя коптера, ip сервера. +* Коптер переключится в режим клиента указанной точки доступа и настроит автозапуск клиента copter_client.py + +Документация по клиентской части находится [здесь](client.md). + +## Настройка и запуск сервера + +* Установите [chrony](https://chrony.tuxfamily.org/index.html), Python 3 и PyQt5 на ваш компьютер +```bash +sudo apt install chrony python3 python3-pip +pip3 install PyQt5 +``` +* Подключитесь к wifi сети роутера, к которому подключены коптеры. +* Скопируйте [файл настроек chrony](../Server/chrony.conf) в `/etc/chrony/chrony.conf`. Если ip адрес сети начинается не с `192.168.`, то исправьте адрес после слова allow в скопированном файле настроек. +* Перезапустите сервис chrony +```bash +sudo systemctl restart chrony +``` +* Перейдите в директорию сервера из директории с исходным кодом и запустите сервер +```bash +cd source-code-dir/Server +python3 server_qt.py +``` + +Документация по серверной части находится [здесь](server.md). \ No newline at end of file From aa206a7f0148b0590ab977d8713ea9bfd2cde7ac Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 22 Jul 2019 02:59:22 +0300 Subject: [PATCH 16/80] Update README.md --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ff12512..ff3c0a0 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,7 @@ * [Аддон для Blender 2.8](https://github.com/artem30801/CleverSwarm/tree/master/blender-addon) для преобразования анимации полёта коптеров, созданной в Blender, в файлы полётов для каждого коптера * [Образ для Raspberry Pi](https://github.com/artem30801/CleverSwarm/releases/latest) для быстрого запуска ПО на коптере -## Установка -Скачайте или склонируйте этот репозиторий на компьютер и дроны: -```bash -git clone https://github.com/artem30801/CleverSwarm.git -``` -Для дальнейших инструкций перейдите в папку [docs](https://github.com/artem30801/CleverSwarm/tree/master/docs). +## Документация +Инструкция по запуску ПО находится [здесь](docs/start-tutorial.md). + +Подробная документация расположена в папке [docs](https://github.com/artem30801/CleverSwarm/tree/master/docs). From 0d5e25921a8487e9a0a2ff10bdce7ee63f5e9f2c Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 22 Jul 2019 04:16:04 +0300 Subject: [PATCH 17/80] docs: Add image building article --- docs/image-building.md | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/docs/image-building.md b/docs/image-building.md index e69de29..748ef30 100644 --- a/docs/image-building.md +++ b/docs/image-building.md @@ -0,0 +1,46 @@ +# Сборка модифицированного образа + +Иногда возникает необходимость собрать образ с настройками коптера, отличными от релизной версии образа. Есть несколько способов это сделать. + +## Подготовка к сборке +Установите [docker](https://www.docker.com): +```bash +sudo apt install docker.io +``` + +## Локальная сборка с изменением настроек Клевера + +* Замените файлы настроек Клевера (launch файлы и карту) в [папке](../builder/clever-config) `builder/clever-config` в директории с исходным кодом CleverSwarm. +* Соберите свой образ с помощью docker: +```bash +cd source-dir +sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 +``` + +## Ручная настройка образа + +* Разархивируйте файл со скачанным образом, перейдите в директорию с этим образом, и войдите в консоль сборщика образа с помощью команды: +```bash +cd image-dir +sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 img-chroot /mnt/ +``` + где - имя файла образа. + В открывшемся терминале с помощью стандартных программ (nano, git, cp, apt-get) вы можете донастроить образ. +* Внешние файлы вы можете перенести в образ с помощью команды: +```bash +sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 img-chroot /mnt/ copy /mnt/ +``` + где - файл, который нужно перенести в образ (расположение относительно папки с образом, например `../builder/assets/clever-show.service`), а - путь в образе, куда нужно переместить файл. +* Если в образе не хватает места для всех необходимых файлов, можно расширить образ с помощью команды: +```bash +sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 img-resize /mnt/ max +``` + где - размер в байтах. Например 5G будет означать 5GB, а 5M - 5MB. +* После расширения образа его можно сжать до минимального размера + 10МB командой +```bash +sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 img-resize /mnt/ min +``` + +## Изменение скриптов сборки + +Статья по изменению скриптов сборки образа и создания кастомной сборки написана [здесь](https://clever.copterexpress.com/ru/image_building.html) \ No newline at end of file From c6fe2e76f246336df7f9c579babf491f253d1d2a Mon Sep 17 00:00:00 2001 From: Arthur Golubtsov Date: Mon, 22 Jul 2019 04:21:13 +0300 Subject: [PATCH 18/80] docs: image-building - fix style --- docs/image-building.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/image-building.md b/docs/image-building.md index 748ef30..855f3a9 100644 --- a/docs/image-building.md +++ b/docs/image-building.md @@ -24,18 +24,17 @@ sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-t cd image-dir sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 img-chroot /mnt/ ``` - где - имя файла образа. - В открывшемся терминале с помощью стандартных программ (nano, git, cp, apt-get) вы можете донастроить образ. +где `` - имя файла образа. В открывшемся терминале с помощью стандартных программ (nano, git, cp, apt-get) вы можете донастроить образ. * Внешние файлы вы можете перенести в образ с помощью команды: ```bash sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 img-chroot /mnt/ copy /mnt/ ``` - где - файл, который нужно перенести в образ (расположение относительно папки с образом, например `../builder/assets/clever-show.service`), а - путь в образе, куда нужно переместить файл. +где `` - файл, который нужно перенести в образ (расположение относительно папки с образом, например `../builder/assets/clever-show.service`), а `` - путь в образе, куда нужно переместить файл. * Если в образе не хватает места для всех необходимых файлов, можно расширить образ с помощью команды: ```bash sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 img-resize /mnt/ max ``` - где - размер в байтах. Например 5G будет означать 5GB, а 5M - 5MB. +где `` - размер в байтах. Например 5G будет означать 5GB, а 5M - 5MB. * После расширения образа его можно сжать до минимального размера + 10МB командой ```bash sudo docker run --privileged -it --rm -v /dev:/dev -v $(pwd):/mnt goldarte/img-tool:v0.5 img-resize /mnt/ min From bba9ff72a6cc9332c813418b6df689be550b8375 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 11:24:07 +0300 Subject: [PATCH 19/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/server.md b/docs/server.md index e69de29..cbf66cb 100644 --- a/docs/server.md +++ b/docs/server.md @@ -0,0 +1,4 @@ +#Установка и настройка серв + \ No newline at end of file From 2827990de63730f1a0516bdb14fe609a32386d5d Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 11:58:01 +0300 Subject: [PATCH 20/80] docs/start-tutorial.md updated from https://stackedit.io/ --- docs/start-tutorial.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/start-tutorial.md b/docs/start-tutorial.md index 104243c..0a665b2 100644 --- a/docs/start-tutorial.md +++ b/docs/start-tutorial.md @@ -30,11 +30,11 @@ sudo ./client_setup.sh ## Настройка и запуск сервера -* Установите [chrony](https://chrony.tuxfamily.org/index.html), Python 3 и PyQt5 на ваш компьютер +* Установите [chrony](https://chrony.tuxfamily.org/index.html), Python 3 и необходимые python-модули на ваш компьютер ```bash sudo apt install chrony python3 python3-pip -pip3 install PyQt5 ``` + * Подключитесь к wifi сети роутера, к которому подключены коптеры. * Скопируйте [файл настроек chrony](../Server/chrony.conf) в `/etc/chrony/chrony.conf`. Если ip адрес сети начинается не с `192.168.`, то исправьте адрес после слова allow в скопированном файле настроек. * Перезапустите сервис chrony @@ -47,4 +47,7 @@ cd source-code-dir/Server python3 server_qt.py ``` -Документация по серверной части находится [здесь](server.md). \ No newline at end of file +Документация по серверной части находится [здесь](server.md). + \ No newline at end of file From 2049e5dc61ec1c88bc506cddca2620ffd70c52e1 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 11:59:34 +0300 Subject: [PATCH 21/80] docs/start-tutorial.md updated from https://stackedit.io/ --- docs/start-tutorial.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/start-tutorial.md b/docs/start-tutorial.md index 0a665b2..b431cbf 100644 --- a/docs/start-tutorial.md +++ b/docs/start-tutorial.md @@ -30,7 +30,7 @@ sudo ./client_setup.sh ## Настройка и запуск сервера -* Установите [chrony](https://chrony.tuxfamily.org/index.html), Python 3 и необходимые python-модули на ваш компьютер +* Установите [chrony](https://chrony.tuxfamily.org/index.html) и Python 3 и на ваш компьютер ```bash sudo apt install chrony python3 python3-pip ``` @@ -49,5 +49,5 @@ python3 server_qt.py Документация по серверной части находится [здесь](server.md). \ No newline at end of file From b81ecae900741765848eb8a52ef6aa32e5fe2091 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:01:08 +0300 Subject: [PATCH 22/80] docs/start-tutorial.md updated from https://stackedit.io/ --- docs/start-tutorial.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/start-tutorial.md b/docs/start-tutorial.md index b431cbf..7a8c58c 100644 --- a/docs/start-tutorial.md +++ b/docs/start-tutorial.md @@ -30,10 +30,12 @@ sudo ./client_setup.sh ## Настройка и запуск сервера -* Установите [chrony](https://chrony.tuxfamily.org/index.html) и Python 3 и на ваш компьютер +* Установите [chrony](https://chrony.tuxfamily.org/index.html) и Python 3 на ваш компьютер: ```bash sudo apt install chrony python3 python3-pip ``` +* Установите необходимые python-пакеты с помощью + * Подключитесь к wifi сети роутера, к которому подключены коптеры. * Скопируйте [файл настроек chrony](../Server/chrony.conf) в `/etc/chrony/chrony.conf`. Если ip адрес сети начинается не с `192.168.`, то исправьте адрес после слова allow в скопированном файле настроек. @@ -49,5 +51,5 @@ python3 server_qt.py Документация по серверной части находится [здесь](server.md). \ No newline at end of file From e3783ef3d7841e11f5094e49101745c427f1424e Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:02:42 +0300 Subject: [PATCH 23/80] docs/start-tutorial.md updated from https://stackedit.io/ --- docs/start-tutorial.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/start-tutorial.md b/docs/start-tutorial.md index 7a8c58c..2b504f0 100644 --- a/docs/start-tutorial.md +++ b/docs/start-tutorial.md @@ -29,13 +29,12 @@ sudo ./client_setup.sh Документация по клиентской части находится [здесь](client.md). ## Настройка и запуск сервера - * Установите [chrony](https://chrony.tuxfamily.org/index.html) и Python 3 на ваш компьютер: ```bash sudo apt install chrony python3 python3-pip ``` -* Установите необходимые python-пакеты с помощью - +* Установите необходимые python-пакеты с помощью команды (запущенной из директории с исходным кодом) +* ' * Подключитесь к wifi сети роутера, к которому подключены коптеры. * Скопируйте [файл настроек chrony](../Server/chrony.conf) в `/etc/chrony/chrony.conf`. Если ip адрес сети начинается не с `192.168.`, то исправьте адрес после слова allow в скопированном файле настроек. @@ -51,5 +50,5 @@ python3 server_qt.py Документация по серверной части находится [здесь](server.md). \ No newline at end of file From cfff3afce3366df4a7fcccfe83f0126b486ade6f Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:03:44 +0300 Subject: [PATCH 24/80] docs/start-tutorial.md updated from https://stackedit.io/ --- docs/start-tutorial.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/start-tutorial.md b/docs/start-tutorial.md index 2b504f0..38a5381 100644 --- a/docs/start-tutorial.md +++ b/docs/start-tutorial.md @@ -34,12 +34,15 @@ sudo ./client_setup.sh sudo apt install chrony python3 python3-pip ``` * Установите необходимые python-пакеты с помощью команды (запущенной из директории с исходным кодом) -* ' +```bash +pip3 install -r requirements.txt +``` * Подключитесь к wifi сети роутера, к которому подключены коптеры. * Скопируйте [файл настроек chrony](../Server/chrony.conf) в `/etc/chrony/chrony.conf`. Если ip адрес сети начинается не с `192.168.`, то исправьте адрес после слова allow в скопированном файле настроек. * Перезапустите сервис chrony ```bash +cd source-code-dir sudo systemctl restart chrony ``` * Перейдите в директорию сервера из директории с исходным кодом и запустите сервер @@ -50,5 +53,5 @@ python3 server_qt.py Документация по серверной части находится [здесь](server.md). \ No newline at end of file From 6c9f735145bf8fbde50a440c65c6b3bc708ecd1b Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:05:18 +0300 Subject: [PATCH 25/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index cbf66cb..5752614 100644 --- a/docs/server.md +++ b/docs/server.md @@ -1,4 +1,6 @@ -#Установка и настройка серв +# Настройка сервера +## Файл конфигурации +Конфигурация \ No newline at end of file From b066e0e361fee571bec3add2bc93af2e79c35d13 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:18:40 +0300 Subject: [PATCH 26/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index 5752614..c549b8d 100644 --- a/docs/server.md +++ b/docs/server.md @@ -1,6 +1,19 @@ # Настройка сервера ## Файл конфигурации -Конфигурация +Конфигурация сервера задаётся в файле Server/server_config.ini, имеющем вид: +```ini +[SERVER] +port = 25000 +broadcast_port = 8181 +broadcast_delay = 5 +buffer_size = 1024 + +[NTP] +use_ntp = False +host = ntp1.stratum2.ru +port = 123 +``` +### Раздел \ No newline at end of file From fef0d8a1dc4f974ab4c8dd631c3ac184c52e72bc Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:20:16 +0300 Subject: [PATCH 27/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index c549b8d..e0b7212 100644 --- a/docs/server.md +++ b/docs/server.md @@ -13,7 +13,12 @@ use_ntp = False host = ntp1.stratum2.ru port = 123 ``` -### Раздел +### Раздел 'Server' +В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: + + * `port` + + \ No newline at end of file From 9588e14935247417db4ee46842c19ed6dce197f9 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:21:51 +0300 Subject: [PATCH 28/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index e0b7212..a749bd6 100644 --- a/docs/server.md +++ b/docs/server.md @@ -16,9 +16,9 @@ port = 123 ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: - * `port` + * `port` - TCP порт, на котором будут приниматься входящие соединения от \ No newline at end of file From cb687ee118067f7c084d3afa068840acc6b6a2b1 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:23:27 +0300 Subject: [PATCH 29/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index a749bd6..6787a21 100644 --- a/docs/server.md +++ b/docs/server.md @@ -16,9 +16,10 @@ port = 123 ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: - * `port` - TCP порт, на котором будут приниматься входящие соединения от + * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров) + * `broadcast_port` - UDP \ No newline at end of file From e7bca6789db54f9fb8420b4b5fea2d77f500d3e3 Mon Sep 17 00:00:00 2001 From: Artem30801 Date: Fri, 26 Jul 2019 12:24:56 +0300 Subject: [PATCH 30/80] Added requirements.txt and install tools --- install_requirements.bash | 1 + install_requirements.bat | 0 requirements.txt | 4 ++++ 3 files changed, 5 insertions(+) create mode 100644 install_requirements.bash create mode 100644 install_requirements.bat create mode 100644 requirements.txt diff --git a/install_requirements.bash b/install_requirements.bash new file mode 100644 index 0000000..212c4ba --- /dev/null +++ b/install_requirements.bash @@ -0,0 +1 @@ +#!/usr/bin/env bash \ No newline at end of file diff --git a/install_requirements.bat b/install_requirements.bat new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..501b028 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +numpy==1.16.4 +PyQt5==5.13.0 +PyQt5-sip==4.19.18 +selectors2==2.0.1 From 35118dd7407176afd211232a56bc82b5e4d2710c Mon Sep 17 00:00:00 2001 From: Artem30801 Date: Fri, 26 Jul 2019 12:33:18 +0300 Subject: [PATCH 31/80] Install req tools code --- install_requirements.bash | 3 ++- install_requirements.bat | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/install_requirements.bash b/install_requirements.bash index 212c4ba..ddc36f6 100644 --- a/install_requirements.bash +++ b/install_requirements.bash @@ -1 +1,2 @@ -#!/usr/bin/env bash \ No newline at end of file +#!/usr/bin/env bash +pip3 install -r requirements.txt \ No newline at end of file diff --git a/install_requirements.bat b/install_requirements.bat index e69de29..db13ba8 100644 --- a/install_requirements.bat +++ b/install_requirements.bat @@ -0,0 +1,2 @@ +pip3 install -r requirements.txt +pause \ No newline at end of file From eceb5a7f71d4dc76d91fdcc6455947e2f6d600b3 Mon Sep 17 00:00:00 2001 From: Artem30801 Date: Fri, 26 Jul 2019 12:36:33 +0300 Subject: [PATCH 32/80] Minor config changes (added ability to turn off broadcast) --- Server/server.py | 18 ++++++++++++------ Server/server_config.ini | 5 ++++- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Server/server.py b/Server/server.py index 51f6e27..bf8ed6c 100644 --- a/Server/server.py +++ b/Server/server.py @@ -65,17 +65,22 @@ class Server: def load_config(self): self.config.read(self.config_path) self.port = int(self.config['SERVER']['port']) # TODO try, init def - self.broadcast_port = int(self.config['SERVER']['broadcast_port']) - self.BROADCAST_DELAY = int(self.config['SERVER']['broadcast_delay']) Server.BUFFER_SIZE = int(self.config['SERVER']['buffer_size']) + self.use_broadcast = self.config.getboolean('BROADCAST', 'use_broadcast') + self.broadcast_port = int(self.config['BROADCAST']['broadcast_port']) + self.BROADCAST_DELAY = int(self.config['BROADCAST']['broadcast_delay']) + self.USE_NTP = self.config.getboolean('NTP', 'use_ntp') self.NTP_HOST = self.config['NTP']['host'] self.NTP_PORT = int(self.config['NTP']['port']) - def start(self): # do_auto_connect=True, do_ip_broadcast=True, do_listen_broadcast=False + def start(self, do_ip_broadcast=None): # do_auto_connect=True, , do_listen_broadcast=False self.time_started = time.time() + if do_ip_broadcast is None: + do_ip_broadcast = self.use_broadcast + logging.info("Starting server with id: {} on {}:{} !".format(self.id, self.ip, self.port)) logging.info("Starting server socket!") self.server_socket.bind((self.ip, self.port)) @@ -84,9 +89,10 @@ class Server: self.client_processor_thread_running.set() self.autoconnect_thread.start() - logging.info("Starting broadcast sender thread!") - self.broadcast_thread_running.set() - self.broadcast_thread.start() + if do_ip_broadcast: + logging.info("Starting broadcast sender thread!") + self.broadcast_thread_running.set() + self.broadcast_thread.start() logging.info("Starting broadcast listener thread!") self.listener_thread_running.set() diff --git a/Server/server_config.ini b/Server/server_config.ini index e3361fa..0614208 100644 --- a/Server/server_config.ini +++ b/Server/server_config.ini @@ -1,8 +1,11 @@ [SERVER] port = 25000 +buffer_size = 1024 + +[BROADCAST] +use_broadcast = True broadcast_port = 8181 broadcast_delay = 5 -buffer_size = 1024 [NTP] use_ntp = False From 030bfabbf2352a027a9f11df5d4c9db5a5b30866 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:37:15 +0300 Subject: [PATCH 33/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index 6787a21..e7f7906 100644 --- a/docs/server.md +++ b/docs/server.md @@ -4,9 +4,12 @@ ```ini [SERVER] port = 25000 +buffer_size = 1024 + +[BROADCAST] +use_broadcast = True broadcast_port = 8181 broadcast_delay = 5 -buffer_size = 1024 [NTP] use_ntp = False @@ -17,9 +20,12 @@ port = 123 В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров) + * + * `broadcast_port` - UDP \ No newline at end of file From 1d0b3a79d4f1d45dc34da2ca95dfdf1546d02f88 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:38:49 +0300 Subject: [PATCH 34/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index e7f7906..26b693e 100644 --- a/docs/server.md +++ b/docs/server.md @@ -19,13 +19,13 @@ port = 123 ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: - * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров) - * + * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров). При использовании + * `buffer_size` - размер буфера при приёме и передаче данных, не рекомендуется изменять * `broadcast_port` - UDP \ No newline at end of file From 42294f4c2d9aa99a283acffa242a2ac283d26c8c Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:40:23 +0300 Subject: [PATCH 35/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 26b693e..11e9640 100644 --- a/docs/server.md +++ b/docs/server.md @@ -19,13 +19,13 @@ port = 123 ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: - * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров). При использовании + * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров). При использовании broadcast данный порт будет сконфигурирован у клиента автоматически. Рекомендуется изменить значение по умолчанию в целях безопасности (любое пятизначное чис * `buffer_size` - размер буфера при приёме и передаче данных, не рекомендуется изменять * `broadcast_port` - UDP \ No newline at end of file From 3724761ff5ce8f04c40f6af34f3af9ec77739649 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:41:57 +0300 Subject: [PATCH 36/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index 11e9640..819696a 100644 --- a/docs/server.md +++ b/docs/server.md @@ -19,13 +19,15 @@ port = 123 ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: - * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров). При использовании broadcast данный порт будет сконфигурирован у клиента автоматически. Рекомендуется изменить значение по умолчанию в целях безопасности (любое пятизначное чис - * `buffer_size` - размер буфера при приёме и передаче данных, не рекомендуется изменять + * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров). При использовании broadcast данный порт будет сконфигурирован у клиента автоматически. Рекомендуется изменить значение по умолчанию в целях безопасности (любое пятизначное и более число, если другое ПО не использует выбранный порт). + * `buffer_size` - размер буфера при приёме и передаче данных. Не рекомендуется изменять. +### Раздел 'Broadcast' +Сервер использует * `broadcast_port` - UDP \ No newline at end of file From 4892b4ab4c9bde2cefd090fdd9c0057845452e9d Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:43:33 +0300 Subject: [PATCH 37/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index 819696a..6507bf5 100644 --- a/docs/server.md +++ b/docs/server.md @@ -23,11 +23,11 @@ port = 123 * `buffer_size` - размер буфера при приёме и передаче данных. Не рекомендуется изменять. ### Раздел 'Broadcast' -Сервер использует +Сервер используетUDP broadcast (255.255.255.255 * `broadcast_port` - UDP \ No newline at end of file From 60421d9f4a2fbcfb601da310f6ce8715ad866ac2 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:45:12 +0300 Subject: [PATCH 38/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index 6507bf5..0e01933 100644 --- a/docs/server.md +++ b/docs/server.md @@ -23,11 +23,12 @@ port = 123 * `buffer_size` - размер буфера при приёме и передаче данных. Не рекомендуется изменять. ### Раздел 'Broadcast' -Сервер используетUDP broadcast (255.255.255.255 +Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). + * `broadcast_port` * `broadcast_port` - UDP \ No newline at end of file From 97ad82e1dda8c584e9e1ae9fa3d4d54ffd23583f Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:46:46 +0300 Subject: [PATCH 39/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index 0e01933..1893136 100644 --- a/docs/server.md +++ b/docs/server.md @@ -23,12 +23,12 @@ port = 123 * `buffer_size` - размер буфера при приёме и передаче данных. Не рекомендуется изменять. ### Раздел 'Broadcast' -Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). - * `broadcast_port` +Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. + * `use_broadcast` - * `broadcast_port` - UDP \ No newline at end of file From 81ee17fcb5b5c939b60c0bc980b3bd51b4fe5fef Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:48:26 +0300 Subject: [PATCH 40/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 1893136..0947f21 100644 --- a/docs/server.md +++ b/docs/server.md @@ -24,11 +24,11 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. - * `use_broadcast` - + * `use_broadcast` - будут ли использованы br * `broadcast_port` - UDP \ No newline at end of file From d60df34e2b0b2226789f3ffc85c0ec9a320c3153 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:50:02 +0300 Subject: [PATCH 41/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 0947f21..8f12df1 100644 --- a/docs/server.md +++ b/docs/server.md @@ -24,11 +24,11 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. - * `use_broadcast` - будут ли использованы br + * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований ез * `broadcast_port` - UDP \ No newline at end of file From e6685fdf757c7fdf3480276f76fac203f85b366c Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:51:37 +0300 Subject: [PATCH 42/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index 8f12df1..b7c112a 100644 --- a/docs/server.md +++ b/docs/server.md @@ -24,11 +24,11 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. - * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований ез + * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации б * `broadcast_port` - UDP \ No newline at end of file From 67bb756113cc2194891df48fee4092556908f60d Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:53:11 +0300 Subject: [PATCH 43/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index b7c112a..5f67873 100644 --- a/docs/server.md +++ b/docs/server.md @@ -24,11 +24,11 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. - * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации б - * `broadcast_port` - UDP + * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) + * `broadcast_port` - UDP порт, по которому \ No newline at end of file From 366f4460a5fef1716334e6a1a9dc1b043cb76b52 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:54:46 +0300 Subject: [PATCH 44/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 5f67873..2588df5 100644 --- a/docs/server.md +++ b/docs/server.md @@ -25,10 +25,10 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) - * `broadcast_port` - UDP порт, по которому + * `broadcast_port` - UDP порт, по которому будет осущес \ No newline at end of file From aa2f6462f8937b0dbceb07faa49e86c53fe692a2 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:56:20 +0300 Subject: [PATCH 45/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/server.md b/docs/server.md index 2588df5..22aab4b 100644 --- a/docs/server.md +++ b/docs/server.md @@ -1,6 +1,6 @@ # Настройка сервера ## Файл конфигурации -Конфигурация сервера задаётся в файле Server/server_config.ini, имеющем вид: +Конфигурация сервера задаётся в файле Server/server_config.ini, имеющем вид (по умолчанию): ```ini [SERVER] port = 25000 @@ -25,10 +25,8 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) - * `broadcast_port` - UDP порт, по которому будет осущес - - + * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений с \ No newline at end of file From 9db4dbcba210e8d463de7b5ed2a4a300ec92ddcc Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:57:57 +0300 Subject: [PATCH 46/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/server.md b/docs/server.md index 22aab4b..8b45ff7 100644 --- a/docs/server.md +++ b/docs/server.md @@ -19,14 +19,14 @@ port = 123 ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: - * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров). При использовании broadcast данный порт будет сконфигурирован у клиента автоматически. Рекомендуется изменить значение по умолчанию в целях безопасности (любое пятизначное и более число, если другое ПО не использует выбранный порт). - * `buffer_size` - размер буфера при приёме и передаче данных. Не рекомендуется изменять. + * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров). При использовании broadcast данный порт будет сконфигурирован у клиента автоматически. *Рекомендуется изменить значение по умолчанию в целях безопасности* (любое пятизначное и более число, если другое ПО не использует выбранный порт). + * `buffer_size` - размер буфера при приёме и передаче данных. *Не рекомендуется изменять.* ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) - * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений с + * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию.* Внимание! При изменении этого \ No newline at end of file From fdc48abe3a20394a75c1937a8ec532fe8c8573c1 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 12:59:32 +0300 Subject: [PATCH 47/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 8b45ff7..4ab1e2c 100644 --- a/docs/server.md +++ b/docs/server.md @@ -25,8 +25,8 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) - * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию.* Внимание! При изменении этого + * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию.* Внимание! При изменении этого параметра клиенты не смогут принимать сообщения автоконфигурации до изменения \ No newline at end of file From fc7fee1229c2b382faeb78410fe684145521b215 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:01:06 +0300 Subject: [PATCH 48/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 4ab1e2c..14ca318 100644 --- a/docs/server.md +++ b/docs/server.md @@ -25,8 +25,9 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) - * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию.* Внимание! При изменении этого параметра клиенты не смогут принимать сообщения автоконфигурации до изменения + * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. + * \ No newline at end of file From 071768f684b2138e8a68852ddabb94025c8934a3 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:02:39 +0300 Subject: [PATCH 49/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 14ca318..6eafc29 100644 --- a/docs/server.md +++ b/docs/server.md @@ -16,6 +16,7 @@ use_ntp = False host = ntp1.stratum2.ru port = 123 ``` +Конфигурация по умолчанию является полностью работоспособной и не требует а ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: @@ -25,9 +26,9 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) - * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. + * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. * \ No newline at end of file From 40eca80cfc2c56ef92d70b6ac34352f157dd9a79 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:04:18 +0300 Subject: [PATCH 50/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 6eafc29..815dd97 100644 --- a/docs/server.md +++ b/docs/server.md @@ -16,7 +16,7 @@ use_ntp = False host = ntp1.stratum2.ru port = 123 ``` -Конфигурация по умолчанию является полностью работоспособной и не требует а +Конфигурация по умолчанию является полностью работоспособной и не требует изменений для быстрого начала работы системы. Тем не менее, для обеспечения дополнительной безопасности ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: @@ -29,6 +29,6 @@ port = 123 * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. * \ No newline at end of file From f77cc23f64e8afdd4aae1ed760a5c36d6ec7e5ca Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:05:51 +0300 Subject: [PATCH 51/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index 815dd97..37e2627 100644 --- a/docs/server.md +++ b/docs/server.md @@ -16,7 +16,7 @@ use_ntp = False host = ntp1.stratum2.ru port = 123 ``` -Конфигурация по умолчанию является полностью работоспособной и не требует изменений для быстрого начала работы системы. Тем не менее, для обеспечения дополнительной безопасности +Конфигурация по умолчанию является полностью работоспособной и не требует изменений для быстрого начала работы системы. ### Раздел 'Server' В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: @@ -27,8 +27,8 @@ port = 123 Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. - * + * `broadcast_delay` - Периодичность (в секундах, целочисленное значение), с которой будет происходить отправка broadcast сообщений. Увеличьте задежр \ No newline at end of file From 2194b02f538de2b7a0bf3555c67ba76b163e5d95 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:07:26 +0300 Subject: [PATCH 52/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 37e2627..e849f82 100644 --- a/docs/server.md +++ b/docs/server.md @@ -27,8 +27,8 @@ port = 123 Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. - * `broadcast_delay` - Периодичность (в секундах, целочисленное значение), с которой будет происходить отправка broadcast сообщений. Увеличьте задежр + * `broadcast_delay` - Периодичность (в секундах, целочисленное значение), с которой будет происходить отправка broadcast сообщений. Увеличьте задержку для уменьшения нагрузки на сеть. *ИЛИ* Уменьшите задержку для уменьшения времени отклик \ No newline at end of file From 39e021dad6d8cd0950a7ec93949ec375e415ec02 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:09:01 +0300 Subject: [PATCH 53/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index e849f82..48acfb1 100644 --- a/docs/server.md +++ b/docs/server.md @@ -27,8 +27,10 @@ port = 123 Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. - * `broadcast_delay` - Периодичность (в секундах, целочисленное значение), с которой будет происходить отправка broadcast сообщений. Увеличьте задержку для уменьшения нагрузки на сеть. *ИЛИ* Уменьшите задержку для уменьшения времени отклик + * `broadcast_delay` - Периодичность (в секундах, целочисленное значение), с которой будет происходить отправка broadcast сообщений. Увеличьте задержку для уменьшения нагрузки на сеть. *ИЛИ* Уменьшите задержку для уменьшения времени отклика и подключения при первом запуске клиентов. + ### Раздел 'NTP' + Помимо синхронизации времени (с миллисекундной т с помощью пакета chrony, предоставляется возможность использования внешних (или \ No newline at end of file From 3cbaf4234a096f1cf12fa61297b7809721977613 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:10:35 +0300 Subject: [PATCH 54/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 48acfb1..752566d 100644 --- a/docs/server.md +++ b/docs/server.md @@ -29,8 +29,9 @@ port = 123 * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. * `broadcast_delay` - Периодичность (в секундах, целочисленное значение), с которой будет происходить отправка broadcast сообщений. Увеличьте задержку для уменьшения нагрузки на сеть. *ИЛИ* Уменьшите задержку для уменьшения времени отклика и подключения при первом запуске клиентов. ### Раздел 'NTP' - Помимо синхронизации времени (с миллисекундной т с помощью пакета chrony, предоставляется возможность использования внешних (или + Помимо синхронизации времени (с миллисекундной точностью) с помощью пакета chrony, предоставляется альтернатива - возможность использования внешних (при наличии соединения локальной сети с интернетом) или внутрисетевых NTP-серверов. D + * `use_ntp` \ No newline at end of file From 5d8e06be25cac14edabf6b370b6ee600a70a33bc Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:12:12 +0300 Subject: [PATCH 55/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 752566d..ca31a38 100644 --- a/docs/server.md +++ b/docs/server.md @@ -26,12 +26,12 @@ port = 123 ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. * `use_broadcast` - будут ли использованы broadcast'ы для передачи данных (при значении `False` broadcast'ы НЕ будут отправляться). Используйте `False` в случае повышенных требований безопасности, перегруженности сети или невозможности передачи по широковещательному каналу (из-за конфигурации брандмауэра или сети) - * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* Внимание! При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. + * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* **Внимание!** При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. * `broadcast_delay` - Периодичность (в секундах, целочисленное значение), с которой будет происходить отправка broadcast сообщений. Увеличьте задержку для уменьшения нагрузки на сеть. *ИЛИ* Уменьшите задержку для уменьшения времени отклика и подключения при первом запуске клиентов. ### Раздел 'NTP' - Помимо синхронизации времени (с миллисекундной точностью) с помощью пакета chrony, предоставляется альтернатива - возможность использования внешних (при наличии соединения локальной сети с интернетом) или внутрисетевых NTP-серверов. D + Помимо синхронизации времени (с миллисекундной точностью) с помощью пакета chrony, предоставляется альтернатива - возможность использования внешних (при наличии соединения локальной сети с интернетом) или внутрисетевых NTP-серверов. **Внимание!** Для корректной работы системы, и сервер, **и** клиенты должны использовать единый способ синхронизации времени (набор параметров в этом разделе) * `use_ntp` \ No newline at end of file From c19123d8128e3e77e83eee97e01fc044a227ee3f Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:23:24 +0300 Subject: [PATCH 56/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index ca31a38..d674dbe 100644 --- a/docs/server.md +++ b/docs/server.md @@ -21,7 +21,7 @@ port = 123 В этом разделе задаются параметры сетевого взаимодействия сервера, доступны следующие параметры: * `port` - TCP порт, на котором будут приниматься входящие соединения от клиентов (коптеров). При использовании broadcast данный порт будет сконфигурирован у клиента автоматически. *Рекомендуется изменить значение по умолчанию в целях безопасности* (любое пятизначное и более число, если другое ПО не использует выбранный порт). - * `buffer_size` - размер буфера при приёме и передаче данных. *Не рекомендуется изменять.* + * `buffer_size` - размер буфера при приёме и передаче данных. *Не рекомендуется изменять. Рекомендуется использовать единое значение у сервера и клиентов.* ### Раздел 'Broadcast' Сервер использует UDP broadcast (на адрес 255.255.255.255 с выбранным портом), чтобы передавать клиентам (коптерам) актуальную информацию о конфигурации сервера и собственном адресе сервера для подключения (IP адрес и порт сервера). Таким образом, обеспечивается автоматическое подключение клиентов к серверу без необходимости дополнительной ручной конфигурации. В данном разделе задаются параметры этого механизма. @@ -29,9 +29,14 @@ port = 123 * `broadcast_port` - UDP порт, по которому будет осуществляться отправка сообщений. *Рекомендуется изменить значение по умолчанию в целях безопасности.* **Внимание!** При изменении этого параметра клиенты НЕ смогут принимать сообщения автоконфигурации до изменения (вручную) соответствующего параметра в конфигурации клиента на равное значение. * `broadcast_delay` - Периодичность (в секундах, целочисленное значение), с которой будет происходить отправка broadcast сообщений. Увеличьте задержку для уменьшения нагрузки на сеть. *ИЛИ* Уменьшите задержку для уменьшения времени отклика и подключения при первом запуске клиентов. ### Раздел 'NTP' - Помимо синхронизации времени (с миллисекундной точностью) с помощью пакета chrony, предоставляется альтернатива - возможность использования внешних (при наличии соединения локальной сети с интернетом) или внутрисетевых NTP-серверов. **Внимание!** Для корректной работы системы, и сервер, **и** клиенты должны использовать единый способ синхронизации времени (набор параметров в этом разделе) - * `use_ntp` + Помимо синхронизации времени (с миллисекундной точностью) с помощью пакета chrony, предоставляется альтернатива - возможность использования внешних (при наличии соединения локальной сети с интернетом) или внутрисетевых NTP-серверов. **Внимание!** Для корректной работы системы, и сервер, *и* клиенты должны использовать единый способ синхронизации времени (набор параметров в этом разделе). Данный раздел полностью унифицирован и для сервера, и для клиентов. + * `use_ntp` - Определяет, будет ли использоваться синхронизация времени с помощью NTP. (при значении `False` будет использовано локальное время ОС (синхронизируется автоматически при использовании chrony). *Рекомендуется использование crhony, а не NTP* + * `host` - имя хоста или IP адрес NTP сервера (локального или удаленного) + * `port` - порт, используемый NTP сервером + +# Интерфейс сервера + \ No newline at end of file From 2dddd147f927beec2e3c407befa6f654207c8b8f Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:28:04 +0300 Subject: [PATCH 57/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index d674dbe..1e19178 100644 --- a/docs/server.md +++ b/docs/server.md @@ -35,8 +35,11 @@ port = 123 * `port` - порт, используемый NTP сервером # Интерфейс сервера +Сервер имеет визуальный графический интерфейс для удобства взаимодействия. +## Меню +### Раздел 'Actions' \ No newline at end of file From 53c3019a89a04fe7fc3e170396fe3d8115236a61 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 13:29:39 +0300 Subject: [PATCH 58/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 1e19178..45c81f5 100644 --- a/docs/server.md +++ b/docs/server.md @@ -38,8 +38,9 @@ port = 123 Сервер имеет визуальный графический интерфейс для удобства взаимодействия. ## Меню ### Раздел 'Actions' - +Данный раздел содержит несколько утилит по отправке различных данных на *выбранные* клиенты +* `Send Animations` - отправк \ No newline at end of file From 1c9edf449a6b0d9b3dc3feec4ea9b5caadd80d8f Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:05:28 +0300 Subject: [PATCH 59/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 45c81f5..c11b02f 100644 --- a/docs/server.md +++ b/docs/server.md @@ -38,9 +38,17 @@ port = 123 Сервер имеет визуальный графический интерфейс для удобства взаимодействия. ## Меню ### Раздел 'Actions' -Данный раздел содержит несколько утилит по отправке различных данных на *выбранные* клиенты -* `Send Animations` - отправк +Данный раздел содержит несколько утилит по отправке различных данных на *выбранные* клиенты. **Внимание!** Не пытайтесь использовать данные команды во время полёта коптеров! +* `Send Animations` - отправка файлов анимации (экспортированных аддоном к Blender) на выбранные клиенты (коптеры). В диалоговом окне необходимо выбрать *папку*, содержащую файлы анимации (автоматически создается аддоном). Каждый файл анимации будет отправлен на клиент с именем (copter ID), соответствующим имени файла без расширения. +* `Send Configurations` - отправка *единого* файла конфигурации клиента на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл конфигурации в установленном формате. Файл конфигурации может быть неполным, в таком случае будут перезаписаны лишь указанные в файле параметры. *Не рекомендуется использовать данное действие для массовой перезаписи `Copter ID`, кроме значения `/hostname`.* **Внимание!** НЕ отправляйте на клиенты файл конфигурации сервера. +* `Send Aruco map` - отправка *единого* файла карты aruco маркеров на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл карты в установленном формате. Файл на клиенте будет перезаписан. После получения и записи файла клиент автоматически перезапустит сервис `clever`. Для работоспособности полётных функция *необходимо подождать* некоторое время до полного запуска сервиса. + +## Боковая панель инструментов (команд) +### Управление + + * + \ No newline at end of file From 952464e04ca3df51c255f1ad414fc3217a20f8e0 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:10:18 +0300 Subject: [PATCH 60/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index c11b02f..324776a 100644 --- a/docs/server.md +++ b/docs/server.md @@ -45,10 +45,9 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление - - * + * `Preflight check` - выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере по \ No newline at end of file From 1bca54dec2f6f607c4891948e279886ba37d1b6f Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:11:58 +0300 Subject: [PATCH 61/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 324776a..6807a56 100644 --- a/docs/server.md +++ b/docs/server.md @@ -45,9 +45,9 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление - * `Preflight check` - выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере по - + * `Preflight check` - все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. +*Спинбокс `` - \ No newline at end of file From e4dcfb1632081a88e369af52be8b16eee073c750 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:13:33 +0300 Subject: [PATCH 62/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index 6807a56..bafd579 100644 --- a/docs/server.md +++ b/docs/server.md @@ -45,9 +45,9 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление - * `Preflight check` - все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. -*Спинбокс `` - + * `Preflight check` - Отправка команды: все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. +*Спинбокс `Star after N seconds` - \ No newline at end of file From 5f6a7237407c15d5889bf612b549a3f5af340e32 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:15:16 +0300 Subject: [PATCH 63/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index bafd579..1125489 100644 --- a/docs/server.md +++ b/docs/server.md @@ -46,8 +46,11 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление * `Preflight check` - Отправка команды: все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. -*Спинбокс `Star after N seconds` - +*Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. + * [ ] + * [x] List item + \ No newline at end of file From ba121697cec9cc10a2e40fd28e821fed859f7acd Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:16:52 +0300 Subject: [PATCH 64/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/server.md b/docs/server.md index 1125489..9034441 100644 --- a/docs/server.md +++ b/docs/server.md @@ -46,11 +46,9 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление * `Preflight check` - Отправка команды: все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. -*Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. - * [ ] - * [x] List item +*Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехами* \ No newline at end of file From 82358db5e7e2620c2128f5b8107f6a4fd237bd2d Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:18:26 +0300 Subject: [PATCH 65/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index 9034441..934d211 100644 --- a/docs/server.md +++ b/docs/server.md @@ -45,10 +45,11 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление - * `Preflight check` - Отправка команды: все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. -*Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехами* + * Ке`Preflight check` - Отправка команды: все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. +*Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* +* \ No newline at end of file From bd1274564e74b84e3a8e602f7ae1a0f1341d1993 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:20:00 +0300 Subject: [PATCH 66/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/server.md b/docs/server.md index 934d211..ef34aa4 100644 --- a/docs/server.md +++ b/docs/server.md @@ -45,11 +45,11 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление - * Ке`Preflight check` - Отправка команды: все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. -*Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* - + * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. +* Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* +* Кнопка `Star animation` - Все выбранные коптеры совершат взлётные процедуры * \ No newline at end of file From ff84194a9acda3fe80781f75db3f386e6b6702ee Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:21:35 +0300 Subject: [PATCH 67/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index ef34aa4..e13cf0f 100644 --- a/docs/server.md +++ b/docs/server.md @@ -46,10 +46,10 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. -* Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* -* Кнопка `Star animation` - Все выбранные коптеры совершат взлётные процедуры +* Спинбокс с N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* +* Кнопка `Start animation` - По истечению заданного в Все выбранные коптеры совершат взлётные процедуры * \ No newline at end of file From f1c2595440b2cde1b7a2994b94d356b7b0719d74 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:23:13 +0300 Subject: [PATCH 68/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index e13cf0f..0b9aaf0 100644 --- a/docs/server.md +++ b/docs/server.md @@ -46,10 +46,10 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. -* Спинбокс с N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* -* Кнопка `Start animation` - По истечению заданного в Все выбранные коптеры совершат взлётные процедуры +* Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* +* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят * \ No newline at end of file From 926a9cf1ad8facd025c0b6375f9f75e61d2d1f97 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:24:49 +0300 Subject: [PATCH 69/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 0b9aaf0..c94ee6e 100644 --- a/docs/server.md +++ b/docs/server.md @@ -47,9 +47,9 @@ port = 123 ### Управление * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. * Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* -* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят +* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. * \ No newline at end of file From 7033747cbf7f719a179ec9962f0ee52eb6f196ba Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:27:55 +0300 Subject: [PATCH 70/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index c94ee6e..5b27295 100644 --- a/docs/server.md +++ b/docs/server.md @@ -47,9 +47,10 @@ port = 123 ### Управление * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. * Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* -* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. +* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть не прошедшие (`Preflight check`) * \ No newline at end of file From 38f05b6c4d17fbc61fcc8527155f6b3158aab1fa Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:29:29 +0300 Subject: [PATCH 71/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index 5b27295..ff51311 100644 --- a/docs/server.md +++ b/docs/server.md @@ -47,10 +47,10 @@ port = 123 ### Управление * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. * Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* -* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть не прошедшие (`Preflight check`) +* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть не прошедшие предполётную проверку (`Preflight check`) (не имеющие её результатов в таблице - жё) или же имеющие * \ No newline at end of file From 8469bc4bf1828e15cae35af663d6b180c6f0dd06 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:31:01 +0300 Subject: [PATCH 72/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index ff51311..b6fb038 100644 --- a/docs/server.md +++ b/docs/server.md @@ -47,10 +47,11 @@ port = 123 ### Управление * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. * Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* -* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть не прошедшие предполётную проверку (`Preflight check`) (не имеющие её результатов в таблице - жё) или же имеющие +* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть не прошедшие предполётную проверку (`Preflight check`) (не имеющие её результатов в таблице - жёлтые ячейки) или же имеющие неудовлетворительные результаты (красные * + \ No newline at end of file From 3e35452283a008440fd041ce83a57fec45bdb20e Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 14:32:35 +0300 Subject: [PATCH 73/80] docs/server.md updated from https://stackedit.io/ --- docs/server.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/server.md b/docs/server.md index b6fb038..aa6a8ff 100644 --- a/docs/server.md +++ b/docs/server.md @@ -47,11 +47,11 @@ port = 123 ### Управление * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. * Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* -* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть не прошедшие предполётную проверку (`Preflight check`) (не имеющие её результатов в таблице - жёлтые ячейки) или же имеющие неудовлетворительные результаты (красные +* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть не прошедшие предполётную проверку (`Preflight check`) (не имеющие её результатов в таблице - жёлтые ячейки) или же имеющие неудовлетворительные результаты (красные ячейки в таблице). * \ No newline at end of file From 4566937ee2834f99858546780f03acf78b8ed47f Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 15:41:29 +0300 Subject: [PATCH 74/80] docs/server.md updated --- docs/server.md | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/docs/server.md b/docs/server.md index aa6a8ff..d4404d2 100644 --- a/docs/server.md +++ b/docs/server.md @@ -36,6 +36,13 @@ port = 123 # Интерфейс сервера Сервер имеет визуальный графический интерфейс для удобства взаимодействия. +## Глоссарий +Некоторые термины, используемые для краткости записи: +* Готовый [к полёту] коптер: + Прошедший предполётную проверку (`Preflight check`) и имеющий удовлетворительные результаты по всем необходимым столбцам (зелёные ячейки в таблице). Учитываются проверки аккумулятора и сообщения selfcheck. +* Не готовый [к полёту] коптер: +НЕ прошедший предполётную проверку (`Preflight check`) (не имеющий её результатов в таблице - жёлтые ячейки) или же имеющий НЕудовлетворительные результаты (красные ячейки в таблице). Учитываются проверки аккумулятора и сообщения selfcheck. + ## Меню ### Раздел 'Actions' Данный раздел содержит несколько утилит по отправке различных данных на *выбранные* клиенты. **Внимание!** Не пытайтесь использовать данные команды во время полёта коптеров! @@ -45,13 +52,21 @@ port = 123 ## Боковая панель инструментов (команд) ### Управление +Данный раздел команд предназначен для выскоуровневого управления роем дронов. * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. -* Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* -* Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат взлётные процедуры и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть не прошедшие предполётную проверку (`Preflight check`) (не имеющие её результатов в таблице - жёлтые ячейки) или же имеющие неудовлетворительные результаты (красные ячейки в таблице). -* - + * Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* + * Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат **взлёт**ные процедуры, перелетают на стартовые точки своих анимаций и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть *не готовые коптеры* (все выбранные коптеры должны быть готовыми). *При нажатии запрашивается дополнительное предупреждение!* + * Кнопка `Pause` - Ставит на 'паузу' все выбранные коптеры (их очередь заданий): приостанавливается выполенение любого полётного задания. *Используйте в чрезвычайных случаях.* **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) + * Кнопка `Resume` - Все выбранные коптеры *синхронизированно* продолжат выполнение своих очередей заданий (например: исполнение анимации) + * Кнопка `Stop` - Прерывает выполенение полётных заданий *ВСЕХ* подключенных коптеров. Сбрасывает очередь заданий - *действие необратимо*. **Используйте в экстерьерных случаев как одно из средств перехвата.** **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) + * Кнопка `Emergency land` - Открывает диалоговое окно дополнительного модуля быстрого выбора коптера и его последующей экстренной посадки \ дизарма. *Подробности далее.* +### Полётные функции (команды) +В данном разделе находятся команды, позволяющие напрямую управлять коптером(ами). + * Кнопка `Test leds` - Все выбранные коптеры выполняют двухсекундную анимацию (бегущие точки) светодиодной лентой (белым цветом). Команда *безопасна* и может быть использована для проверки работы светодиодных лент \ качества и задержки подключения к серверу \ определения соответствия коптера и его `Copter ID` в таблице. + * Кнопка `Takeoff` - Все выбранные коптеры **совершают взлёт**, после чего зависают над точкой взлёта. Аналогично `Start animation`, кнопка активна, *только* если все выбранные коптеры готовы. **Внимание!** Используйте осторожно, соблюдайте технику безопасности. + * \ No newline at end of file From 149e82592f8e617cea72f828a2b35a1f4cc54ac2 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 15:49:36 +0300 Subject: [PATCH 75/80] docs/server.md updated --- docs/server.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/server.md b/docs/server.md index d4404d2..9dfde55 100644 --- a/docs/server.md +++ b/docs/server.md @@ -58,15 +58,17 @@ port = 123 * Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат **взлёт**ные процедуры, перелетают на стартовые точки своих анимаций и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть *не готовые коптеры* (все выбранные коптеры должны быть готовыми). *При нажатии запрашивается дополнительное предупреждение!* * Кнопка `Pause` - Ставит на 'паузу' все выбранные коптеры (их очередь заданий): приостанавливается выполенение любого полётного задания. *Используйте в чрезвычайных случаях.* **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) * Кнопка `Resume` - Все выбранные коптеры *синхронизированно* продолжат выполнение своих очередей заданий (например: исполнение анимации) - * Кнопка `Stop` - Прерывает выполенение полётных заданий *ВСЕХ* подключенных коптеров. Сбрасывает очередь заданий - *действие необратимо*. **Используйте в экстерьерных случаев как одно из средств перехвата.** **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) + * Кнопка `Stop` - Прерывает выполенение полётных заданий *ВСЕХ* подключенных коптеров. Сбрасывает очередь заданий - *действие необратимо*. **Используйте в экстренных случаях как одно из средств перехвата.** **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) * Кнопка `Emergency land` - Открывает диалоговое окно дополнительного модуля быстрого выбора коптера и его последующей экстренной посадки \ дизарма. *Подробности далее.* ### Полётные функции (команды) В данном разделе находятся команды, позволяющие напрямую управлять коптером(ами). * Кнопка `Test leds` - Все выбранные коптеры выполняют двухсекундную анимацию (бегущие точки) светодиодной лентой (белым цветом). Команда *безопасна* и может быть использована для проверки работы светодиодных лент \ качества и задержки подключения к серверу \ определения соответствия коптера и его `Copter ID` в таблице. - * Кнопка `Takeoff` - Все выбранные коптеры **совершают взлёт**, после чего зависают над точкой взлёта. Аналогично `Start animation`, кнопка активна, *только* если все выбранные коптеры готовы. **Внимание!** Используйте осторожно, соблюдайте технику безопасности. - * + * Кнопка `Takeoff` - Все выбранные коптеры **совершают взлёт**, после чего зависают над точкой взлёта. Аналогично `Start animation`, кнопка активна, *только* если все выбранные коптеры готовы. **Внимание!** Используйте осторожно, соблюдайте технику безопасности. Не применяйте во время выполнения других полётных функций! + * Кнопка `Flip` - Все выбранные коптеры **совершают флип (flip)** - переворот на 360 градусов вокруг одной из *горизонтальных* осей. **Внимание!** Используйте осторожно, соблюдайте технику безопасности. *Для исполнения флипа коптер должен иметь минимальную высоту >2м.* Не применяйте во время выполнения других полётных функций! + * Кнопка `Land` - ВСЕ коптеры прекращают выполнение своих полётных заданий, очищают очередь заданий и немедленно *переходят в режим посадки.* **Используйте в экстренных случаях как одно из средств перехвата.** + * Кнопка `Diarm` - ВСЕ коптеры прекращают выполнение своих полётных заданий, очищают очередь заданий и немедленно *отключают моторы (disarm).* ==Это может привести к падению и повреждению коптеров== **Используйте в крайних случаях как последнее из средств перехвата.** \ No newline at end of file From 1f27a6580728d158a5840c94bf2a3604f75768a6 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 16:26:37 +0300 Subject: [PATCH 76/80] docs/server.md updated --- docs/server.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/server.md b/docs/server.md index 9dfde55..f1a0239 100644 --- a/docs/server.md +++ b/docs/server.md @@ -67,8 +67,16 @@ port = 123 * Кнопка `Flip` - Все выбранные коптеры **совершают флип (flip)** - переворот на 360 градусов вокруг одной из *горизонтальных* осей. **Внимание!** Используйте осторожно, соблюдайте технику безопасности. *Для исполнения флипа коптер должен иметь минимальную высоту >2м.* Не применяйте во время выполнения других полётных функций! * Кнопка `Land` - ВСЕ коптеры прекращают выполнение своих полётных заданий, очищают очередь заданий и немедленно *переходят в режим посадки.* **Используйте в экстренных случаях как одно из средств перехвата.** * Кнопка `Diarm` - ВСЕ коптеры прекращают выполнение своих полётных заданий, очищают очередь заданий и немедленно *отключают моторы (disarm).* ==Это может привести к падению и повреждению коптеров== **Используйте в крайних случаях как последнее из средств перехвата.** + +## Таблица состояния коптеров (клиентов) +При первом подключении клиента к серверу в таблицу добавляется строка для отображения состояния клиента, содержащая начальные данные, переданные клиентом при подключении (`Copter ID`). Строки НЕ удаляются после зарегистрированного отключения клиента. Строки можно сортировать по возрастанию \ убыванию значений любого из столбцов (кликнув по заголовку столбца). +### Столбцы таблицы +* `copter ID` - имя (идентификатор) клиента. Может быт сконфигурирован на стороне клиента. Отображается сразу при подключении клиента. Рядом с каждым ID коптера расположен чекбокс - коптеры, чей ID отмечен чекбоксом положительно (галочка), считаются *выбранными*. +* `animation ID` - внутреннее название файла анимации, подгруженного клиентом. Отображается после выполнения `selfcheck`. *Проверьте соответствие названий файлов анимаций у коптеров* +* `battery V` - абсолютное значение напряжения на аккумуляторе коптера (в Вольтах, по данным полётного контроллера). *Убедитесь, что напряжение не ниже порогового для вашего аккумулятора.* **При критически низком значении коптер считается не готовым** - блокируется возможность взлёта и старта анимации. +* `battery %` - относительное значение напряжения на аккумуляторе коптера. Значение рассчитывается по среднему напряжению (по данным полётного контроллера) на ячейку аккумулятора (банку). *Убедитесь, что уровень заряда перед вылетом не менее 30%* **При критически низком значении коптер считается не готовым** - блокируется возможность взлёта и старта анимации. \ No newline at end of file From 8e3b93130f6b13783231ca006336a2fd7ab1a4bc Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 16:38:34 +0300 Subject: [PATCH 77/80] docs/server.md updated --- docs/server.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index f1a0239..312827a 100644 --- a/docs/server.md +++ b/docs/server.md @@ -59,7 +59,7 @@ port = 123 * Кнопка `Pause` - Ставит на 'паузу' все выбранные коптеры (их очередь заданий): приостанавливается выполенение любого полётного задания. *Используйте в чрезвычайных случаях.* **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) * Кнопка `Resume` - Все выбранные коптеры *синхронизированно* продолжат выполнение своих очередей заданий (например: исполнение анимации) * Кнопка `Stop` - Прерывает выполенение полётных заданий *ВСЕХ* подключенных коптеров. Сбрасывает очередь заданий - *действие необратимо*. **Используйте в экстренных случаях как одно из средств перехвата.** **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) - * Кнопка `Emergency land` - Открывает диалоговое окно дополнительного модуля быстрого выбора коптера и его последующей экстренной посадки \ дизарма. *Подробности далее.* + * Кнопка `Emergency land` - Открывает диалоговое окно дополнительного модуля быстрого выбора коптера и его последующей экстренной посадки \ дизарма. *Смотреть далее.* ### Полётные функции (команды) В данном разделе находятся команды, позволяющие напрямую управлять коптером(ами). * Кнопка `Test leds` - Все выбранные коптеры выполняют двухсекундную анимацию (бегущие точки) светодиодной лентой (белым цветом). Команда *безопасна* и может быть использована для проверки работы светодиодных лент \ качества и задержки подключения к серверу \ определения соответствия коптера и его `Copter ID` в таблице. @@ -70,13 +70,20 @@ port = 123 ## Таблица состояния коптеров (клиентов) При первом подключении клиента к серверу в таблицу добавляется строка для отображения состояния клиента, содержащая начальные данные, переданные клиентом при подключении (`Copter ID`). Строки НЕ удаляются после зарегистрированного отключения клиента. Строки можно сортировать по возрастанию \ убыванию значений любого из столбцов (кликнув по заголовку столбца). + +Ячейки таблицы подсвечиваются: +* жёлтым, если необходимое значение отсутствует +* красным, если значение (состояние) ячейки неудовлетворительно (согласно внутренним проверкам) +* зелёным, если значение (состояние) ячейки удовлетворительно (согласно внутренним проверкам) ### Столбцы таблицы * `copter ID` - имя (идентификатор) клиента. Может быт сконфигурирован на стороне клиента. Отображается сразу при подключении клиента. Рядом с каждым ID коптера расположен чекбокс - коптеры, чей ID отмечен чекбоксом положительно (галочка), считаются *выбранными*. * `animation ID` - внутреннее название файла анимации, подгруженного клиентом. Отображается после выполнения `selfcheck`. *Проверьте соответствие названий файлов анимаций у коптеров* * `battery V` - абсолютное значение напряжения на аккумуляторе коптера (в Вольтах, по данным полётного контроллера). *Убедитесь, что напряжение не ниже порогового для вашего аккумулятора.* **При критически низком значении коптер считается не готовым** - блокируется возможность взлёта и старта анимации. * `battery %` - относительное значение напряжения на аккумуляторе коптера. Значение рассчитывается по среднему напряжению (по данным полётного контроллера) на ячейку аккумулятора (банку). *Убедитесь, что уровень заряда перед вылетом не менее 30%* **При критически низком значении коптер считается не готовым** - блокируется возможность взлёта и старта анимации. +* `selfcheck` - Все дополнительные сообщения и ошибки при самодиагностике (*Смотреть далее.*). При успешном прохождении самодиагностики без ошибок выводится значение `OK`, ячейка подсвечивается зелёным цветом. **При наличии ошибок коптер считается не готовым** - блокируется возможность взлёта и старта анимации. +* `time delta` - Разница между временем на сервере и клиенте (в секундах). *При слишком больших значениях сигнализирует об отсутствии синхронизации времени между коптером и клиентом!* В это значение так же входит сетевая задержка. \ No newline at end of file From d6bce0d7b4fffaef53a06bcf94287012cfba352f Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Fri, 26 Jul 2019 16:59:55 +0300 Subject: [PATCH 78/80] docs/server.md updated --- docs/server.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/server.md b/docs/server.md index 312827a..3e591ce 100644 --- a/docs/server.md +++ b/docs/server.md @@ -82,8 +82,14 @@ port = 123 * `battery %` - относительное значение напряжения на аккумуляторе коптера. Значение рассчитывается по среднему напряжению (по данным полётного контроллера) на ячейку аккумулятора (банку). *Убедитесь, что уровень заряда перед вылетом не менее 30%* **При критически низком значении коптер считается не готовым** - блокируется возможность взлёта и старта анимации. * `selfcheck` - Все дополнительные сообщения и ошибки при самодиагностике (*Смотреть далее.*). При успешном прохождении самодиагностики без ошибок выводится значение `OK`, ячейка подсвечивается зелёным цветом. **При наличии ошибок коптер считается не готовым** - блокируется возможность взлёта и старта анимации. * `time delta` - Разница между временем на сервере и клиенте (в секундах). *При слишком больших значениях сигнализирует об отсутствии синхронизации времени между коптером и клиентом!* В это значение так же входит сетевая задержка. + +# Дополнительные операции +## Selfcheck + +## Emergency land + \ No newline at end of file From cc309ba2831cce60e892b6f4cfbcf028706ea8ac Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Sat, 27 Jul 2019 15:00:22 +0300 Subject: [PATCH 79/80] docs/server.md updated --- docs/server.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/server.md b/docs/server.md index 3e591ce..09d44ee 100644 --- a/docs/server.md +++ b/docs/server.md @@ -56,9 +56,9 @@ port = 123 * Кнопка `Preflight check` - Все выбранные клиенты выполняют самодиагностику и предполётную проверку. Результаты, вместе с другими параметрами клиента, будут отображены в таблице по мере поступления данных. * Спинбокс `Start after N seconds` - Задаёт время задержки до синхронного запуска выполнения анимаций коптерами. *Не рекомендуется использовать `0` (нулевую задержку). Для загруженных\подверженных помехам\имеющих большой пинг сетей рекомендуется использовать бо́льшие значения (>5 секунд).* * Кнопка `Start animation` - По истечению заданного в `Start after` времени, все выбранные коптеры совершат **взлёт**ные процедуры, перелетают на стартовые точки своих анимаций и *синхронно* выполнят полётное задание (анимацию). По окончанию анимации все коптеры выполнят посадку *на месте окончания своей анимации*. Кнопка деактивирована по умолчанию и если среди выбранных коптеров есть *не готовые коптеры* (все выбранные коптеры должны быть готовыми). *При нажатии запрашивается дополнительное предупреждение!* - * Кнопка `Pause` - Ставит на 'паузу' все выбранные коптеры (их очередь заданий): приостанавливается выполенение любого полётного задания. *Используйте в чрезвычайных случаях.* **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) + * Кнопка `Pause` - Ставит на 'паузу' все выбранные коптеры (их очередь заданий): приостанавливается выполнение любого полётного задания. *Используйте в чрезвычайных случаях.* **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) * Кнопка `Resume` - Все выбранные коптеры *синхронизированно* продолжат выполнение своих очередей заданий (например: исполнение анимации) - * Кнопка `Stop` - Прерывает выполенение полётных заданий *ВСЕХ* подключенных коптеров. Сбрасывает очередь заданий - *действие необратимо*. **Используйте в экстренных случаях как одно из средств перехвата.** **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) + * Кнопка `Stop` - Прерывает выполнение полётных заданий *ВСЕХ* подключенных коптеров. Сбрасывает очередь заданий - *действие необратимо*. **Используйте в экстренных случаях как одно из средств перехвата.** **Внимание!** Данная команда НЕ прерывает полёт коптера в уже указанную точку (например: элементы взлёта, посадки; следование до начальной точки анимации и т.д.) * Кнопка `Emergency land` - Открывает диалоговое окно дополнительного модуля быстрого выбора коптера и его последующей экстренной посадки \ дизарма. *Смотреть далее.* ### Полётные функции (команды) В данном разделе находятся команды, позволяющие напрямую управлять коптером(ами). @@ -85,11 +85,19 @@ port = 123 # Дополнительные операции ## Selfcheck +.. ## Emergency land - +Модуль экстренной посадки/дизарма, предназначенный для быстрого поиска оператором визуально неисправного коптера методом бинарного поиска +### Интерфейс +* Зелёная кнопка `1` - ... +* Красная кнопка `2` - ... +* Кнопка `Land` - все коптеры в выбранной ('зелёной') группе совершат процедуру экстренной посадки (аналогично кнопке `Land` в панели инструментов). +* Кнопка `Disarm` - все коптеры в выбранной ('зелёной') группе *немедленно отключают моторы (disarm).* (аналогично кнопке `Disarm` в панели инструментов) ==Это может привести к падению и повреждению коптеров==. +### Алгоритм использования +* ... \ No newline at end of file From c32fd447faae8fb51b2d50a675011daf1a21e1d2 Mon Sep 17 00:00:00 2001 From: artem30801 <38689676+artem30801@users.noreply.github.com> Date: Sat, 27 Jul 2019 21:51:24 +0300 Subject: [PATCH 80/80] Added indexed for update in alpha branch --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 501b028..728753f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +indexed.py==0.0.1 numpy==1.16.4 PyQt5==5.13.0 PyQt5-sip==4.19.18