From 5c0d8802b9c825d4971d94bf96aeb9bdd539b640 Mon Sep 17 00:00:00 2001 From: Artem30801 Date: Fri, 3 Apr 2020 15:32:04 +0300 Subject: [PATCH] Updated server menu docs and images --- docs/assets/server-drone-restart.png | Bin 0 -> 7115 bytes docs/assets/server-drone-send.png | Bin 0 -> 8843 bytes docs/assets/server-drone.png | Bin 15438 -> 0 bytes docs/assets/server-music.png | Bin 3482 -> 3684 bytes docs/assets/server-server.png | Bin 16430 -> 0 bytes docs/assets/server-table.png | Bin 0 -> 3364 bytes docs/ru/server.md | 104 +++++++++++++++++++-------- 7 files changed, 73 insertions(+), 31 deletions(-) create mode 100644 docs/assets/server-drone-restart.png create mode 100644 docs/assets/server-drone-send.png delete mode 100644 docs/assets/server-drone.png delete mode 100644 docs/assets/server-server.png create mode 100644 docs/assets/server-table.png diff --git a/docs/assets/server-drone-restart.png b/docs/assets/server-drone-restart.png new file mode 100644 index 0000000000000000000000000000000000000000..9431851d84e3ea1e1e287b5ddb8eae74fe20f600 GIT binary patch literal 7115 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 literal 0 HcmV?d00001 diff --git a/docs/assets/server-drone-send.png b/docs/assets/server-drone-send.png new file mode 100644 index 0000000000000000000000000000000000000000..53dc779b58255b8ecc3324c7702d2363e89754fd GIT binary patch literal 8843 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 diff --git a/docs/assets/server-table.png b/docs/assets/server-table.png new file mode 100644 index 0000000000000000000000000000000000000000..b565c125b9d0e5fb5b04782e211f5d4fe6395b7a GIT binary patch literal 3364 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 literal 0 HcmV?d00001 diff --git a/docs/ru/server.md b/docs/ru/server.md index 3d6dc7b..3829c40 100644 --- a/docs/ru/server.md +++ b/docs/ru/server.md @@ -7,6 +7,8 @@ * [Настройка](#настройка-сервера) * [Дополнительные операции](#дополнительные-операции) +[TOC] + ## Интерфейс сервера Сервер имеет визуальный графический интерфейс для удобства взаимодействия. @@ -47,51 +49,83 @@ ### Меню -#### Раздел Server +#### Раздел Selected drones -![Скриншот раздела Server](../assets/server-server.png) +![Скриншот раздела Selected drones - Send](../assets/server-drone-send.png) -Данный раздел содержит несколько утилит по отправке различных данных на *выбранные* клиенты. **Внимание!** Не используйте данные команды во время полёта коптеров! +Данный раздел содержит несколько утилит по отправке различных данных и команд на *выбранные* клиенты. **Внимание!** Не используйте данные команды во время полёта коптеров! -* `Send animations` - отправка файлов анимации, экспортированных аддоном к Blender, на выбранные коптеры. В диалоговом окне необходимо выбрать *папку*, содержащую файлы анимации. Каждый файл анимации будет отправлен на клиент с именем, соответствующим имени файла без расширения. -* `Send configurations` - отправка *единого* файла конфигурации клиента на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл конфигурации в установленном формате. Файл конфигурации может быть неполным, в таком случае будут перезаписаны лишь указанные в файле параметры. **Внимание!** Не рекомендуется использовать данное действие для массовой перезаписи `copter ID`, кроме значения `/hostname`. **Внимание!** НЕ отправляйте на клиенты файл конфигурации сервера. -* `Send launch files` - отправка launch-файлов конфигурации сервиса `clever`. В диалоговом окне необходимо выбрать *папку*, содержащую файлы конфигурации с сширением `.launch`. Все файлы с таким расширением будут отправлены *на каждый* из клиентов. **Внимание!** Существующие файлы конфигурации на коптерах будут перезаписаны, однако файлы, не отправленные сервером, не будут удалены или модифицированы. -* `Send aruco map` - отправка *единого* файла карты aruco маркеров на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл карты в установленном формате. Файл на клиенте будет перезаписан. После получения и записи файла клиент автоматически перезапустит сервис `clever`. Для возобновления работоспособности полётных функций и получения некоторых значений телеметрии *необходимо подождать* некоторое время до полного запуска сервиса. -* `Send camera calibrations` - отправка yaml-файлов калибровки камеры для сервиса `clever`. В диалоговом окне необходимо выбрать *папку*, содержащую файлы конфигурации с расширением `.yaml`. Каждый файл калибровки будет отправлен на клиент с именем (copter ID), соответствующим имени файла без расширения. **Внимание!** Существующий файл калибровки на коптере будет перезаписан. -* `Send FCU parameters` - отправка и запись *единого* файла конфигураций полётного контроллера (FCU) на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл параметров в установленном формате. Параметры на полётном контроллере будут перезаписаны. -* `Developer mode`: **Внимание!** Используйте данные действия с большой осторожностью. - * `Send any file` - отправка *одного* любого файла на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл. Далее, необходимо указать путь, по которому данный файл будет записан на клиенты (не включая имя файла). - * `Send any command` - отправка и выполнение любой команды терминала на все выбранные клиенты. В диалоговом окне необходимо ввести требуемую команду. Команды *могут* использовать `sudo`-права. -* `Select all drones` (`Ctrl+A`) - выделяет все коптеры в таблице. При следующем вызове команды, выделение всех коптеров будет отменено. +- ##### Подраздел Send -#### Раздел Drone + - `Animations` - отправка файлов анимации, экспортированных аддоном к Blender, на выбранные коптеры. В диалоговом окне необходимо выбрать *папку*, содержащую файлы анимации. Каждый файл анимации будет отправлен на клиент с именем, соответствующим имени файла без расширения. -![Скриншот раздела Drone](../assets/server-drone.png) + - `Configuration` - отправка *единого* файла конфигурации клиента на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл конфигурации в установленном формате. Файл конфигурации может быть неполным, в таком случае будут перезаписаны лишь указанные в файле параметры. **Внимание!** Не рекомендуется использовать данное действие для массовой перезаписи `copter ID`, кроме значения `/hostname`. **Внимание!** НЕ отправляйте на клиенты файл конфигурации сервера. + + - `Launch files` - отправка launch-файлов конфигурации сервиса `clever`. В диалоговом окне необходимо выбрать *папку*, содержащую файлы конфигурации с сширением `.launch`. Все файлы с таким расширением будут отправлены *на каждый* из клиентов. **Внимание!** Существующие файлы конфигурации на коптерах будут перезаписаны, однако файлы, не отправленные сервером, не будут удалены или модифицированы. + + - `Aruco map` - отправка *единого* файла карты aruco маркеров на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл карты в установленном формате. Файл на клиенте будет перезаписан. После получения и записи файла клиент автоматически перезапустит сервис `clever`. Для возобновления работоспособности полётных функций и получения некоторых значений телеметрии *необходимо подождать* некоторое время до полного запуска сервиса. + + - `Camera calibrations` - отправка yaml-файлов калибровки камеры для сервиса `clever`. В диалоговом окне необходимо выбрать *папку*, содержащую файлы конфигурации с расширением `.yaml`. Каждый файл калибровки будет отправлен на клиент с именем (copter ID), соответствующим имени файла без расширения. **Внимание!** Существующий файл калибровки на коптере будет перезаписан. + + - `FCU parameters` - отправка и запись *единого* файла конфигураций полётного контроллера (FCU) на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл параметров в установленном формате. Параметры на полётном контроллере будут перезаписаны. + + - `File` - отправка *одного* любого файла на все выбранные клиенты. В диалоговом окне необходимо выбрать *один* файл. Далее, необходимо указать путь, по которому данный файл будет записан на клиенты (не включая имя файла). + + - `Command` - отправка и выполнение любой команды терминала на все выбранные клиенты. В диалоговом окне необходимо ввести требуемую команду. Команды *могут* использовать `sudo`-права. + + ------ + +- `Retrive file` - позволяет скачать любой файл с клиентов в выбранную директорию в файловой системе сервера. Если при скачивании был выбран более чем один клиент, то к имени файла от каждого клиента будет добавлен его ID. В диалоговом окне сначала введите путь к требуемому файлу на клиенте. Далее, в диалоговом окне необходимо указать путь, по которому данный файл будет записан на сервер. + + ------ + +- ##### Подраздел Restart + + ![Скриншот раздела Selected drones - Restart](../assets/server-drone-restart.png) + + * `chrony` - перезапускает сервис синхронизации времени `chrony` на выбранных клиентах. Используйте для ручной синхронизации в случаях, если время между сервером и клиентами не синхронизировано. + * `clever` - перезапускает сервис `clever` на выбранных клиентах. Для возобновления работоспособности полётных функций и получения некоторых значений телеметрии *необходимо подождать* некоторое время до полного запуска сервиса. + * `clever-show` - перезапускает сервис шоу коптеров `clever-show` на выбранных клиентах. Во время перезапуска клиенты будут отключены. + +- ------ + + `Set start X Y to current position` - устанавливает точку старта анимации у выбранных клиентов в значения текущей позиции по X Y. + +- `Reset start position` - устанавливает точку старта анимации у выбранных клиентов в значения `0.0`, `0.0`. * `Set Z offfset to ground` - устанавливает собственный отступ по Z каждого из выбранных клиентов в значение, равное текущему положению по координате Z. Можно применять для выравнимания общей высоты полёта коптеров. * `Reset Z offfset` - устанавливает собственный отступ по Z каждого из выбранных клиентов в значение `0`. -* `Restart chrony` - перезапускает сервис синхронизации времени `chrony` на выбранных клиентах. Используйте для ручной синхронизации в случаях, если время между сервером и клиентами не синхронихированно. -* `Remove from table` - удаляет выбранные коптеры из таблицы. **Внимание!** В случае, если клиент был подключен, будет произведено отключение. В случае если удалённый таким образом клиент исправно функционировал, он переподключится в кратчайшие сроки. * `Developer mode`: **Внимание!** Используйте данные действия с большой осторожностью. - * `Restart clever service` - перезапускает сервис `clever` на выбранных клиентах. Для возобновления работоспособности полётных функций и получения некоторых значений телеметрии *необходимо подождать* некоторое время до полного запуска сервиса. - * `Restart clever-show service` - перезапускает сервис шоу коптеров `clever-show` на выбранных клиентах. Во время перезапуска клиенты будут отключены. * `Update clever-show git` - обновляет папку репозитория `clever-show` на выбранных клиентах. Файлы конфигурации клиента *не будут* перезаписаны. **Внимание!** Для того, чтобы изменения вступили в силу, *необходимо* перезапустить сервис `clever-show`. - * `Reboot all` - полностью перезагружает полётный контроллер и компьютер на выбранных коптерах. Во время перезапуска клиенты будут отключены. +* `Reboot` - полностью перезагружает полётный контроллер и компьютер на выбранных коптерах. Во время перезапуска клиенты будут отключены. -#### Раздел Animation +#### Раздел Server -![Скриншот раздела Animation](../assets/server-animation.png) +- ##### Подраздел Music -* `Set start X Y to current position` - устанавливает точку старта анимации у выбранных клиентов в значения текущей позиции по X Y. -* `Reset start position` - устанавливает точку старта анимации у выбранных клиентов в значения `0.0`, `0.0`. + ![Скриншот раздела Server - music](../assets/server-music.png) -#### Раздел Music + - `Select music file` - загружает выбранный музыкальный файл для дальнейшего воспроизведения вручную или через определённое время после старта анимации. Поддерживаемые расширения: `.mp3` или `.wav`. + - `Play music` - воспроизводит загруженную музыку. + - `Stop music` - останавливает воспроизведение проигрываемой музыки. -![Скриншот раздела Music](../assets/server-music.png) +- ------ -* `Select music file` - загружает выбранный музыкальный файл для дальнейшего воспроизведения вручную или через определённое время после старта анимации. Поддерживаемые расширения: `.mp3` или `.wav`. -* `Play music` - воспроизводит загруженную музыку. -* `Stop music` - останавливает воспроизведение проигрываемой музыки. + `Edit server config` - открывает [встроенный редактор конфигурационных файлов](#config-editor) с текущей конфигурацией сервера для редактирования. Доступен чекбокс `Restart` - в случае, если он нажат, то при сохранении конфигурации сервер будет перезапущен. **Внимание!** Изменённые параметры конфигурации будут применены к серверу только после его перезапуска (ручного или автоматического). + +- `Edit any config` - открывает [встроенный редактор конфигурационных файлов](#config-editor) и позволяет выбрать для редактирования в файловой системе любой файл конфигурации c расширением `.ini` или же открыть файл спецификации конфигурации для создания файла конфигурации на его основе. + +- `Restart server` - полностью перезапускает сервер. **Внимание!** После перезапуска сервер более не будет соединён с консолью, из которой был запущен, если сервер изначально был запущен из консоли. + +#### Раздел Table + +![Скриншот раздела Table](../assets/server-table.png) + +- `Toggle select` (`Ctrl+A`) - выделят все коптеры\снимает выделение со всех коптеров. Если в таблице выбраны не все коптеры, то *выделяет все* коптеры. Иначе (если были выделены все коптеры) *снимает выделение* со всех коптеров. +- `Select all` - выделят все коптеры в таблице. +- `Deselect all` - снимает выделение со всех коптеров в таблице. +- `Remove selected drones` - удаляет выбранные коптеры из таблицы. **Внимание!** В случае, если клиент был подключен, будет произведено отключение. В случае если удалённый таким образом клиент исправно функционировал, он переподключится в кратчайшие сроки. +- `Configure columns` - открывает [встроенный конфигуратор](#column-preset-editor) наборов настроек столбцов таблицы. ### Боковая панель команд @@ -116,7 +150,7 @@ * Кнопка `Land ALL` - ВСЕ коптеры прекращают выполнение своих полётных заданий, очищают очередь заданий и немедленно переходят в режим посадки AUTO.LAND. **Используйте в экстренных случаях как одно из средств перехвата.** * Кнопка `Emergency land` - все выбранные коптеры прекращают выполнение своих полётных заданий, очищают очередь заданий и немедленно переходят в режим экстренной посадки - на все моторы подаётся небольшая мощность, которая уменьшается через определённое время до нуля. **Используйте в экстренных случаях как одно из средств перехвата.** -* Кнопка `Visual land` - открывает диалоговое окно модуля визуальной посадки неисправного коптера. Полное описание находится в [конце статьи](#visual-land). +* Кнопка `Visual land` - открывает [диалоговое окно](#visual-land) модуля визуальной посадки неисправного коптера. * Кнопка `Disarm selected` - все выбранные коптеры прекращают выполнение своих полётных заданий, очищают очередь заданий и немедленно отключают моторы. Это может привести к падению и повреждению коптеров. * Кнопка `Disarm ALL` - ВСЕ коптеры прекращают выполнение своих полётных заданий, очищают очередь заданий и немедленно отключают моторы. Это может привести к падению и повреждению коптеров **Используйте в крайних случаях как последнее из средств перехвата.** @@ -253,7 +287,7 @@ config_version = 1.0 * `host` - имя хоста или IP адрес NTP сервера (локального или удаленного) * `port` - порт, используемый NTP сервером -## Дополнительные операции +## Дополнительные операции и окна ### Visual land @@ -268,3 +302,11 @@ config_version = 1.0 Нажимая на кнопки, соответствующие цвету группы, в которой находится неисправный коптер, можно определить его номер и выполнить экстренную посадку за логарифмическое количество шагов от количества коптеров, т.е. гораздо быстрее, чем перебирая коптеры по одному. На любом шаге можно произвести посадку или выключение моторов всех коптеров, на которых включена светодиодная лента, нажав кнопку `Land` или `Disarm`. + +### Config editor + +... + +### Column preset editor + +... \ No newline at end of file