Программный модуль подготовки полетного задания
Для сборки необходимо установить среду выполнения и комплект средств разработки .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-слушатель" разрывает соединение с клиентом.