Skip to content

geloidA/MapApplication

Repository files navigation

flight_task_preparation

Программный модуль подготовки полетного задания

Сборка

Для сборки необходимо установить среду выполнения и комплект средств разработки .NET (>=7.0) следующими командами:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-7.0  

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-7.0

После установки, откройте директорию содержащую файл с расширением *.csproj или *.sln и вызвать команду dotnet build -c Release/Debug

Запуск

После сборки, в корневой папке программы, перейдите в директорию ../map_app/bin/Release(Debug)/net7.0 и запустите исполняемый файл map_app.

Описание формата полетного задания

Полетное задание представляет собой json объект с тремя полями это: Name, Description, Graphics.

Name и Description задаются строками, Graphics же является массивом состоящим из json-объектов, каждый из которых содержит следующие поля: Type, Name, UserTags, Color, Opacity, GeoPoints, LinearPoints.

  • Type - целое число. Тип графического объекта. (0 - Точка, 1 - Прямоугольник, 2 - Ортодромия, 3 - Полигон);
  • Name - строка. Имя графического объекта.
  • UserTags - json-объект, содержащий поля и значения по этим полям, заданные пользователем. Значения являются строками. Отражает дополнительную информацию присоединенную к графическому объекту.
  • Color - json-объект, содержащий четыре поля (R G B A) содержащие целочисленные значения на отрезке [0;255].
  • Opacity - число с плавающей точкой на отрезке [0;1].
  • GeoPoints - массив, содержащий json-объекты, состоящие из трех полей (Lon Lat Alt). Каждое поле содержит число с плавающей точкой.
  • LinearPoints - массив, содержащий json-объекты, состоящий из трех полей (X Y Z). Каждое поле содержит число с плавающей точкой.

В дополнение к общим полям у графического объекта "Точка" есть еще два поля: Image, Scale.

  • Image - строка. Путь к изображению на компьютере.
  • Scale - число с плавающей точкой на полуинтервале (0;1]. Масштаб точки.

Пример

{
    "Name": "Полетное задание с одной точкой",
    "Description": "Точка с изображением",
    "Graphics": [
        {
            "Image": "/home/user/Загрузки/rewind-circle.png",
            "Scale": 0.1,
            "Type": 0,
            "Name": "Точка",
            "UserTags": {
                "Назначение": "Просто точка"
            },
            "Color": {
                "R": 128,
                "G": 128,
                "B": 128,
                "A": 255
            },
            "Opacity": 1.0,
            "GeoPoints": [
                {
                    "Lon": -66.53664469512115,
                    "Lat": 20.231811377817746,
                    "Alt": 0.0
                }
            ],
            "LinearPoints": [
                {
                    "X": -7406825.406553854,
                    "Y": 2300512.481260964,
                    "Z": 0.0
                }
            ]
        }
    ]
}

Описание взаимодействия по сети

При запуске программы, запускается TCP прослушивание по порту 8888 (Порт можно изменить в конфигурационном файле appsettings.json).

При подключении очередного клиента, "TCP-слушатель" буферно читает входящий поток байт, где каждое чтение ограничено по времени в 100 миллисекунд. После того как истекло время ожидания, "TCP-слушатель" разрывает соединение с клиентом.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages