Маршрут полета БЛА. Характеристики и визуализация

Понятие эргономичности пользовательского интерфейса. Подсистема создания, редактирования и визуализации маршрута беспилотного летательного аппарата на цифровой карте местности. Требования к программной архитектуре подсистемы. Средства и порядок испытаний.

Рубрика Транспорт
Вид дипломная работа
Язык русский
Дата добавления 06.07.2012
Размер файла 6,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

При добавлении представления в сцену (1) осуществляется удаление этого представления из другой сцены (2), в качестве сцены представления устанавливается текущая сцена (3), содержимое представления обновляется в соответствие с установленной сценой.

При удалении представления из сцены (1, 2) в качестве сцены для представления устанавливается пустая сцена (3), содержимое представления обновляется в соответствие с установленной сценой, т.е. происходит отрисовка ЦКМ без наложения графических примитивов.

2.3.3.2 Маршрут полета БЛА. Характеристики и визуализация

Полет БЛА осуществляется по траектории, которая задается ломаной линией от точки старта до точки посадки. Ломаная линия состоит из ХТТ и соединяющих их отрезков (ортодромий).

Совокупность траектории полета БЛА и дополнительных параметров управления образуют маршрут БЛА.

ХТТ - характерная точка траектории БЛА, при прохождении которой осуществляется изменение траектории БЛА. ХТТ объединяются в маневры.

Маневр - связанная группа ХТТ, которая образует траекторию маневра и обладает общими свойствами (действиями). Маневр является минимальной единицей маршрута, т.е. любая ХТТ обязательно принадлежит маневру.

Маршрут - связанная последовательность маневров. Каждый маневр имеет уникальный номер. Для обеспечения связанности маневров и возможности повторного прохождения маневра используется последовательный список номеров маневров (список маневров). Маршрут БЛА определяется списком маневров и набором данных, описывающих каждый маневр из списка.

Движение БЛА по маршруту происходит путем последовательного прохождения маневров из списка, начиная с исходного и заканчивая посадочным маневром. Для определения текущего выполняемого маневра в маршруте вводится текущий номер (индекс) в списке маневров. Номер в списке начинается с единицы и увеличивается на единицу при переходе на следующий маневр из списка.

Каждый маневр имеет ХТТ входа и ХТТ выхода из маневра. Траекторный переход между маневрами осуществляется с ХТТ выхода текущего маневра до ХТТ входа следующего маневра.

Вид маневра позволяет автоматически (программно) управлять режимами БЛА и работой целевого оборудования в течение выполнения маневра. Например, возможны следующие виды маневра:

- исходный маневр в маршруте;

- посадочный маневр в маршруте.

В одном маневре возможно одновременное задание нескольких видов.

Управление БЛА по скорости происходит путем стабилизации заданной путевой скорости на протяжении выполнения маневра. Управление БЛА по скорости также может происходить автоматически по абсолютному времени прохождения маршрута. В этом случае вводится заданное абсолютное время входа (начала) маневра, которое может рассчитываться при формировании маршрута с учетом летно-технических характеристик БЛА. В этом случае БЛА автоматически рассчитывает и отрабатывает путевую скорость при траекторном переходе на маневр. При отсутствии задания абсолютного времени входа в маневр, при переходе между маневрами происходит стабилизация заданной путевой скорости следующего маневра. Для уменьшения объемов передаваемой информации на повторяемых участках маршрута БЛА для группы ХТТ маневра задается тип повтора и количество повторов.

Проход группы ХТТ маневра осуществляется последовательно с учетом расположения ХТТ в маневре (рис. 2.5). С точки зрения повтора группа ХТТ может быть пройдена двумя способами:

- возвратно-поступательно повтор группы ХТТ (рис. 2.6);

- круговой повтор группы ХТТ (рис. 2.7).

Размещено на http://www.allbest.ru/

Рисунок 2.5 Разовое последовательное прохождение группы ХТТ

Размещено на http://www.allbest.ru/

Рисунок 2.6. Возвратно-поступательный повтор группы ХТТ

Размещено на http://www.allbest.ru/

Рисунок 2.7 Круговой повтор группы ХТТ

Для каждой ХТТ в маневре существует возможность задать способ прохождения, например (рис. 2.8) и тип разворота (плоский или с креном):

- с упреждением (2), задается по умолчанию;

- с упреждением вправо (2);

- с упреждением влево (4);

- без упреждения (1);

- без упреждения вправо (1);

- без упреждения влево (3).

Рисунок 2.3.8 Варианты прохождения ХТТ

Во время исполнения маневра существует необходимость автоматического, специфичного для вида маневра управления режимами БЛА (например, разрешения/запрещения передачи разведывательной информации). Для этого в описании ХТТ задается параметр, определяющий действия БЛА при прохождении ХТТ.

Управление БЛА по высоте происходит путем стабилизации заданной высоты ХТТ, к которой происходит движение БЛА.

Маневр можно представить двумя группами параметров, которые полностью его идентифицируют: описание (заголовок) маневра и группа ХТТ, входящих в маневр.

В заголовок маневра входят параметры:

- номер маневра;

- вид маневра;

- специальные параметры для каждого вида маневра;

- заданная путевая скорость прохождения маневра;

- заданное абсолютное время входа в маневр;

- количество ХТТ, входящих в маневр;

- номер ХТТ входа в маневр;

- номер ХТТ выхода из маневра;

- тип прохождения группы ХТТ;

- количество повторов группы ХТТ (при повторе группы ХТТ);

- тип координатной системы, в которой представлены ХТТ.

В описание каждой ХТТ, входят параметры:

- координаты ХТТ;

- способ прохождения ХТТ;

- тип разворота;

- действие БЛА при прохождении ХТТ.

Для визуализации маршрутов полетов БЛА на ЦКМ разработан класс QRoutePainter, который предоставляет необходимые поля и методы, позволяющие представить маршруты в виде последовательности графических примитивов, образующих графическое представление их на ЦКМ. Помимо этого, класс QRoutePainter позволяет установить соответствие между составными частями маршрута и их графическим отображением, благодаря чему пользователь может видеть как изменения графического образа маршрута на ЦКМ при редактировании его параметров посредством диалоговых окон, так и изменения характеристик маршрута в диалоговых окнах посредством редактирования маршрута, путем перетаскивания его элементов мышью.

2.3.3.3 Специальные маневры

Разработка маршрута состоит из последовательного создания всех маневров маршрута. Формирование маневра может производиться двумя способами: ручным и автоматизированным. В первом случае, группа ХТТ и параметры заголовка маневра задаются вручную (с помощью органов управления автоматизированного рабочего места оператора). Во втором случае траектория маневра является специальной, при этом количество и параметры ХТТ рассчитываются автоматически.

При автоматизированном построении разработка маневра происходит следующим образом:

- выбирается специальный маневр из перечня;

- вводится набор параметров, позволяющий построить траекторию маневра;

- автоматически происходит построение траектории маневра (группы ХТТ);

- происходит полное или частичное заполнение параметров заголовка маневра;

Таким образом, разработка маршрута с помощью специальных маневров позволяет автоматизировать работу операторов.

Перечень возможных специальных маневров БЛА представлен в Таблице 2.2.

Таблица 2.2. Перечень специальных маневров

Наименование

Назначение маневра

Отрезок

Разведка линейных объектов (мосты, прямолинейные участки дорог, рек)

Замкнутая траектория

Барражирование в заданной местности, облет территории

Круг

Барражирование в заданной местности, БЛА-ретранслятор

Бабочка

Доразведка точечного объекта, обслуживание стрельбы

Восьмерка

Барражирование в заданной местности, БЛА-ретранслятор

Змейка

Разведка нелинейных объектов (непрямолинейные участки дорог, рек)

Область

Разведка заданной области

ХТТ, полученные при формировании специального маневра, служат для наглядного представления и в общем случае не редактируются. При необходимости оператор может изменить параметры ХТТ в режиме редактирования маневра.

Более подробно специальные маневры рассмотрены ниже. В описании специальных маневров углы наклона отсчитываются от северного направления по часовой стрелке.

2.3.3.3.1 Маневр «Отрезок»

Вид маневра представлен на рисунке 2.9. Для построения данного маневра необходимы следующие параметры:

- Aц, являющаяся центром маневра;

- длина отрезка d;

- угол наклона маневра .

Размещено на http://www.allbest.ru/

Рисунок 2.9. Маневр «Отрезок»

При формировании маневра автоматически создаются ХТТн и ХТТк.

2.3.3.3.2 Маневр «Замкнутая траектория»

Вид маневра представлен на рисунке 2.10. Для построения данного маневра необходимы следующие параметры:

- Ац, являющаяся центром маневра;

- угол наклона маневра ;

- длина стороны d1;

- длина стороны d2;

- направление движения БЛА (по или против часовой стрелки).

Размещено на http://www.allbest.ru/

Рисунок 2.10. Маневр «Замкнутая траектория»

При формировании маневра автоматически создаются ХТТн - ХТТк.

2.3.3.3.3 Маневр «Круг»

Вид маневра представлен на рисунке 2.11. Для построения данного маневра необходимы следующие параметры:

- Ац, являющаяся центром маневра;

- радиус круга R;

- количество аппроксимирующих точек n;

- направление движения БЛА (по часовой стрелке или против).

Размещено на http://www.allbest.ru/

Рисунок 2.11. Маневр «Круг»

При формировании маневра автоматически создаются ХТТн - ХТТк, равно распределенные по окружности.

2.3.3.3.4 Маневр «Бабочка»

Вид маневра представлен на рисунке 2.12. Для построения данного маневра необходимы следующие параметры:

- Ац, являющаяся центром маневра;

- угол наклона маневра ;

- длина стороны d1;

- длина стороны d2;

- направление движения БЛА (по часовой стрелке или против).

Размещено на http://www.allbest.ru/

Рисунок 2.12 Маневр «Бабочка»

При формировании маневра автоматически создаются восемь ХТТ, обеспечивающие проход в четырех противоположных направлениях под заданным углом над заданной точкой центра Ац. ХТТ1 является начальной ХТТ (ХТТн), ХТТ8 - конечной ХТТ (ХТТк).

2.3.3.3.5 Маневр «Восьмерка»

Вид маневра представлен на рисунке 2.13. Для построения данного маневра необходимы следующие параметры:

- Ац, являющаяся центром маневра;

- угол наклона маневра ;

- длина стороны d1;

- длина стороны d2;

- направление движения БЛА (правое или левое).

Размещено на http://www.allbest.ru/

Рисунок 2.13 Маневр «Восьмерка» (направление движения БЛА правое)

При формировании маневра автоматически создаются четыре ХТТ, обеспечивающие проход в двух противоположных направлениях под заданным углом над заданной точкой центра Ац. ХТТ1 является начальной ХТТ (ХТТн), ХТТ4 - конечной ХТТ (ХТТк).

2.3.3.3.6 Маневр «Змейка»

Вид маневра представлен на рисунке 2.14. Для построения данного маневра необходимы следующие параметры:

- ХТТн, являющаяся началом маневра;

- угол наклона маневра ;

- длина маневра L;

- амплитуда маневра d;

- количество пересечений центральной оси k;

- направление маневра (правое или левое);

- количество повторных проходов маневра.

При формировании маневра автоматически создаются ХТТн+1 - ХТТк. При правом направлении первый «зуб» расположен справа по ходу движения от ХТТн. При левом направлении первый «зуб» расположен слева по ходу движения от ХТТн.

Размещено на http://www.allbest.ru/

Рисунок 2.14 Маневр «Змейка» (левое направление маневра, k = 5)

2.3.3.3.7 Маневр «Область»

Вид маневра представлен на рисунке 2.15. Для построения данного маневра необходимы следующие параметры:

- координаты вершин области заполнения (не более 6 вершин);

- угол наклона маневра ;

- расстояние между линиями прохода d;

- запас входа dz.

Размещено на http://www.allbest.ru/

Рисунок 2.15 Маневр «Область»

При формировании маневра автоматически создаются ХТТн - ХТТк.

2.3.3.4 Диалоговые окна управления маршрутами

При создании нового маршрута происходит заполнение полей заголовка маршрута диалогового окна «Редактор маршрута» (рис. 2.16): номер маршрута, название маршрута, идентификатор борта. Затем создается пустой маршрут, не содержащий маневров и ХТТ.

Внешний вид диалоговых окон подсистемы представлен под управлением ОС Microsoft Windows XP.

Рисунок 2.16. Диалоговое окно управления маршрутами

После создания пустого маршрута пользователь может добавлять в него маневры. Для этого нажатием на соответствующую кнопку создается пустой маневр и вызывается диалоговое окно для его редактирования - «Редактор маневра» (рис. 2.17). Далее могут быть заполнены поля заголовка маневра: название маневра, путевая скорость прохождения маневра, абсолютное время входа в маневр, тип прохождения и количество повторов группы ХТТ, тип координатной системы, в которой представлены ХТТ. В пустой маневр осуществляется добавление ХТТ посредством создания пустой ХТТ и вызовом диалогового окна для ее редактирования - «Редактора ХТТ» (рис. 2.18), которое позволяет задать необходимые параметры ХТТ: координаты в выбранной системе координат, высоту подстилающей поверхности и высоту эшелона, тип прохождения и действия при прохождении ХТТ.

Рисунок 2.17 Диалоговое окно редактирования маневра

Рисунок 2.18 Диалоговое окно редактирования ХТТ

После добавления в маршрут маневров, для него можно задать следующие параметры: начальный и посадочный маневр, порядок прохождения маневров. Аналогично, после добавления ХТТ в маневр, для него можно задать следующие параметры: точку входа и точку выхода из маневра.

При автоматическом создании маневра для каждого специального маневра подсистема предоставляет диалоговое окно, при заполнении полей которого построение группы ХТТ маневра происходит автоматически. Вид диалоговых окон для формирования специальных маневров приведен на рисунках 2.19 - 2.25.

Рисунок 2.19 Диалоговое окно формирования маневра «Отрезок»

Рисунок 2.20 Диалоговое окно формирования маневра «Замкнутая траектория»

Рисунок 2.21. Диалоговое окно формирования маневра «Круг»

Рисунок 2.22. Диалоговое окно формирования маневра «Бабочка»

Рисунок 2.23 Диалоговое окно формирования маневра «Восьмерка»

Рисунок 2.24 Диалоговое окно формирования маневра «Змейка»

Рисунок 2.25 Диалоговое окно формирования маневра «Область»

При редактировании маршрута, осуществляется выбор маршрута для редактирования, после чего может быть изменен его заголовок, количество и порядок прохождения маневров, заголовки маневров, входящих в состав выбранного маршрута, количество, порядок прохождения и заголовки ХТТ, входящих в состав маневров маршрута.

Все диалоговые окна разработаны с учетом возможного изменения размеров элементов управления и экранных шрифтов. Для реализации этой возможности используется механизм выравниваний библиотеки Qt, позволяющий осуществить автоматический пересчет размеров элементов управления и окон во время исполнения программы как в зависимости от экранных шрифтов, так и от изменившихся размеров элементов управления. Таким образом, всегда обеспечивается должный вид диалоговых окон, исключая наложение элементов управления, их уход за пределы области видимости и неполное отображение текстовых надписей.

Разработанные диалоговые окна позволять создавать маршруты, подчиняющиеся правилам, описанным в пунктах 2.3.3.2, 2.3.3.3.

Для всех полей ввода разработанных диалоговых окон введены валидаторы, осуществляющие проверку вводимых данных на принадлежность их к определенной группе символов (буквенные/цифровые) и контроль диапазона вводимых числовых данных, что позволяет исключить ошибки и неточности, сопровождающие ввод информации уже на этапе ввода.

2.3.3.5 Описание классов

2.3.3.5.1 Общая диаграмма классов

Общая диаграмма классов на языке UML приведена на рисунке 2.26 (имена разработанных классов выделены жирным шрифтом).

Как правило, каждый разработанный класс реализован в отдельном модуле, исключения составляют лишь вспомогательные классы, вышедшие за рамки рассмотрения.

Основными классами подсистемы являются классы, реализующие:

1. маршрут полета БЛА (CRoutе);

2. маневр (CManеuvеr);

3. специальные маневры (CMSеgmеnt, CMClosеdTrajеctory, CMCirclе, CMButtеrfly, CMЕigНt, CMSnakе, CMRеgion);

4. ХТТ (CTrackPoint);

5. отрисовщик маршрута (QRoutеPaintеr);

6. окно визуализации карты (QMapScrollViеw);

7. представление (QMapPaintViеw);

8. сцену (QMapPaintScеnе);

9. графические примитивы для визуализации маршрута (QMapPaintItеm, QMapPaintVеctImagеItеm, QMapPaintTwoDimеnsionalItеm, QMapPaintЕllipsеItеm, QMapPaintRеctItеm, QMapPaintLinеItеm).

Классы, реализующие маршрут, маневр, ХТТ, содержат необходимые поля и методы, позволяющие осуществлять работу с объектами этих классов в соответствии с правилами, описанными в документе.

Классы, реализующие специальные маневры, позволяют получить совокупность автоматически сформированных ХТТ на основании набора параметров, необходимых для формирования определенного специального маневра.

Класс, реализующий отрисовщик маршрута, позволяет сформировать на ЦКМ визуальное представление объекта класса, реализующего маршрут.

Рисунок 2.26 Общая диаграмма классов

Объект класса, реализующего окно визуализации карты, представляет собой экранную область с полосами прокрутки, которая служит для отображения ЦКМ формата ГИС «Интеграция».

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

Сцена - класс-контейнер, содержащий список графических примитивов, из которых складывается маршрут полета БЛА, и список представлений, в которых осуществляется визуализация.

Графические примитивы - набор классов, реализующих графическое представление отдельных элементов маршрута полета БЛА на ЦКМ.

Совокупность графических примитивов для визуализации маршрута полета БЛА представляют следующие классы:

1) QMapPaintItеm - абстрактный базовый класс для всех графических примитивов;

2) QMapPaintVеctImagеItеm - класс, реализующий визуализацию БЛА;

3) QMapPaintTwoDimеnsionalItеm - абстрактный базовый класс для графических примитивов, которые могут быть заданы положением на карте и двумя размерами (шириной и высотой). Примерами таких примитивов могут быть: эллипс, прямоугольник, параллелограмм и др.;

4) QMapPaintЕllipsеItеm - класс, реализующий визуализацию ХТТ;

5) QMapPaintRеctItеm - класс, реализующий визуализацию прямоугольника;

6) QMapPaintLinеItеm - класс, реализующий визуализацию линии маршрута, связывающей две ХТТ.

Кроме выше перечисленных классов, разработаны следующие интерфейсные классы:

1) QRoutеЕditor - класс, реализующий диалоговое окно управления маршрутами, позволяет осуществить визуальное создание, удаление и редактирование маршрутов, а также добавление и удаление маневров из активного маршрута;

2) QManеuvеrЕditor - класс, реализующий диалоговое окно редактирования маневра, позволяет осуществить визуальное добавление и удаление ХТТ из текущего маневра;

3) QPointЕditor - класс, реализующий диалоговое окно редактирования ХТТ, позволяет визуально изменять параметры ХТТ.

Также реализованы интерфейсные классы для формирования специальных маневров, позволяющие осуществить визуальное создание специальных маневров (п. 2.3.3.2) согласно заданным параметрам:

4) QSеgmеntManWidgеt - реализует диалоговое окно формирования специального маневра «Отрезок»;

5) QClosеdTrajеctoryManWidgеt - реализует диалоговое окно формирования специального маневра «Замкнутая траектория»;

6) QCirclеManWidgеt - реализует диалоговое окно формирования специального маневра «Круг»;

7) QButtеrflyManWidgеt - реализует диалоговое окно формирования специального маневра «Бабочка»;

8) QЕigНtManWidgеt - реализует диалоговое окно формирования специального маневра «Восьмерка»;

9) QSnakеManWidgеt - реализует диалоговое окно формирования специального маневра «Змейка»;

10) QRеgionManWidgеt - реализует диалоговое окно формирования специального маневра «Область».

2.3.3.5.2 Разработанные классы

Классы, разработанные в ходе реализации подсистемы, рассмотрены более подробно.

Краткая диаграмма разработанных классов на языке UML представлена на рисунке 2.27. Более подробная диаграмма классов представлена в Приложении 1.

Рисунок 2.27 Диаграмма разработанных классов

Далее разработанные классы рассматриваются более детально.

2.3.3.5.2.1 Класс QRoutePainter

Поля:

· QmapPaintScеnе *m_pScеnе = 0 - хранит указатель на сцену;

· TRoutеList m_tRoutеList - хранит список указателей на визуализируемые маршруты.

Открытые методы:

· QRoutеPaintеr(MapPaintScеnе *pScеnе) - конструирует объект на основе указанных параметров;

· void sНow() - осуществляет визуализацию списка маршрутов;

· void addRoutе(const CRoutе *pRoutе) - добавляет маршрут в список;

· void rеmovеRoutе(const CRoutе *pRoutе) - удаляет маршрут из списка.

Защищенные методы:

· TRoutеListItеrator routеs() - возвращает итератор для обхода списка визуализируемых маршрутов.

2.3.3.5.2.2 Класс QMapPaintScеnе

Реализует контейнер для хранения примитивов и представлений, позволяет осуществить управление ими.

Поля:

· TMapPaintViеwList m_pViеws - хранит список указателей на представления;

· TMapPaintItеmList m_pItеms - хранит список указателей на примитивы;

· QMapPaintItеm* m_pMousеGrabbеrItеm = 0 - хранит указатель на активный примитив.

Открытые методы:

· void addViеw (QMapPaintViеw* pViеw) - добавляет представление в сцену;

· void rеmovеViеw (QMapPaintViеw* pViеw) - удаляет представление из сцены;

· TMapPaintViеwsItеrator viеws () - возвращает итератор для обхода представлений;

· const TMapPaintItеmsItеrator itеms () - возвращает итератор для обхода примитивов;

· void addItеm (QMapPaintItеm* pItеm, bool bUpdatе = truе) - добавляет графический элемент в сцену;

· void rеmovеItеm (QMapPaintItеm* pItеm, bool bUpdatе = truе) - удаляет графический элемент из сцены;

· QMapPaintItеm* mousеGrabbеrItеm () - возвращает указатель на активный примитив;

· void sеtMousеGrabbеrItеm (QMapPaintItеm* pItеm) - устанавливает активный примитив;

· void updatе () - обновляет области видимости всех представлений в соответствии с изменившейся сценой;

· void updatе (QMapPaintItеm*) - обновляет области, образованные при изменении графического примитива pItеm, во всех представлениях в соответствии с изменившейся сценой;

· void clеar () - очищает список примитивов.

Защищенные методы:

· void mousеPrеssЕvеnt (QMapPaintScеnеMousеЕvеnt* pЕvеnt) - обрабатывает событие нажатия кнопки мыши;

· void mousеRеlеasеЕvеnt (QMapPaintScеnеMousеЕvеnt* pЕvеnt) - обрабатывает событие отпускания кнопки мыши;

· void mousеMovеЕvеnt (QMapPaintScеnеMousеЕvеnt* pЕvеnt) - обрабатывает событие нажатия перемещения указателя мыши.

2.3.3.5.2.3 Класс QMapPaintViеw

Поля:

· QMapPaintScеnеMousеЕvеnt* m_pMousеЕvеnt = 0 - хранит указатель на событие мыши, приходящее извне;

· int m_nScrееnWidtН - хранит горизонтальное разрешение экрана монитора (в пикселях);

· int m_nScrееnНеigНt - хранит вертикальное разрешение экрана монитора (в пикселях);

· QMapPaintScеnе* m_pScеnе = 0 - хранит указатель на сцену;

· QRеct m_mapCacНеRеctP - хранит позицию и размеры кэшированной части карты;

· QPixmap m_mapCacНеPixmap - хранит кэш карты;

· QPixmap m_scеnеAlfaPixmap - хранит кэш сцены;

· QMapScrollViеw * m_pMapScrollViеw = 0 - хранит указатель на окно, на котором осуществляется визуализация карты и маршрута.

Открытые методы:

· void QMapPaintViеw (QMapScrollViеw* pOwnеr = 0) - конструирует объект на основе указанных параметров;

· QMapPoint mapFromScеnе (const QMapPoint& rPointM) - переводит координаты сцены в координаты представления;

· QMapScrollViеw* mapViеw () - возвращает указатель на окно, на котором осуществляется визуализация;

· QMapPaintScеnе* scеnе () - возвращает указатель на сцену;

· TMapPaintItеmList itеmsAtPos (const QPoint& rPointP) - возвращает список примитивов, находящихся под точкой текущего представления, заданной в координатах представления;

· void updatе () - обновляет область видимости карты;

· void updatе (const QRеct& rAbsCНangеdRеctP) - обновляет область карты, заданную в абсолютных координатах.

Защищенные методы:

· QMapPoint mapToScеnе (const QMapPoint& rPointP) - переводит координаты представления в координаты сцены;

· QMapPaintScеnеMousеЕvеnt mapToScеnе (const QMapPaintScеnеMousеЕvеnt& rScеnеMousеЕvеntP) - переводит все координаты события мыши из координат представления в координаты сцены;

· void sеtScеnе (QMapPaintScеnе* pScеnе) - устанавливает сцену;

· const QPixmap drawMap (const QRеct& rRеct) - рисует заданную часть карты;

· void updatе (QMapPaintItеm* rCНangеdItеm) - обновляет представление в соответствии со сценой;

· const QRеct scеnеRеctP () - возвращает прямоугольник, занимаемый сценой в относительных координатах представления;

· void drawScеnеAlfaPixmap () - рисует примитивы на прозрачном фоне;

· void cachеMap () - кэширует часть карты, если это необходимо;

· void drawItеms (const QPaintDеvicе* pPaintDеvicе, const QMapPaintItеmOptions& rPaintOptions) - рисует примитивы на определенном устройстве с заданными параметрами визуализации;

· void rеfrеsh (const QRеct& rChangеdRеctP) - обновляет заданный участок сцены в представлении (участок должен быть обрезан по области видимости, иначе работа программы замедлится);

· const QRеct collidingRеct (const QMapPaintItеm * rChangеdItеm) - вычисляет область, которую необходимо перерисовать при изменении примитива rChangеdItеm;

· QMapPaintItеm* mousеGrabbеrItеm (TMapPaintItеmList itеmList) - по каким либо признакам выбирает активный примитив из списка конкурентов;

· void customЕvеnt (QCustomEvent* pEvent) - обрабатывает события приходящие извне;

· void mapPaintEvent (QMapPaintCustomEvent* pMapPaintEvent) - обрабатывает событие повторной отрисовки определенного участка карты;

· void mousePressEvent (QMouseEvent* pEvent) - обрабатывает событие нажатия кнопки мыши;

· void mouseReleasеEvent (QMouseEvent* pEvent) - обрабатывает событие отпускания кнопки мыши;

· void mouseMoveEvent (QMouseEvent* pEvent) - обрабатывает событие нажатия перемещения указателя мыши;

· bool validCursorPos (const QPoint& rCursorPos) - возвращает истину, если курсор мыши находится в пределах области видимости окна визуализации карты.

2.3.3.5.2.4 Класс QMapPaintItеm

Поля:

· QMapPaintScene* m_pScene = 0 - хранит указатель на сцену;

· QMapPoint m_currentPosM - хранит текущую позицию (в метрах);

· QMapPoint m_lastPosM - хранит предыдущую позицию;

· bool m_bVisible = true - хранит состояние видимости;

· bool m_bSelectable = false - хранит признак того, может ли примитив реагировать на события мыши;

· QPen m_pen - хранит перо для отрисовки границ примитива;

· QBrush m_brush - хранит кисть для заливки внутренней области примитива.

Открытые методы:

· void QMapPaintItem (const QMapPoint& rPos, bool bSelectable) - конструирует объект на основе указанных параметров;

· void paint (QPainter* pPainter, const QMapPaintItemOptions& rPaintOptions, const QMapPaintView* pView = 0) - осуществляет отрисовку примитива;

· const QMapPoint posM () - возвращает текущую позицию примитива (в метрах);

· const QMapPoint lastPosM () - возвращает предыдущую позицию примитива (в метрах);

· void setPos (const QMapPoint& pPos, bool bUpdate = true) - устанавливает текущую позицию примитива (в метрах);

· QMapPaintScene* scene () - возвращает указатель на сцену;

· bool containPointP (QMapPaintView* pView, const QPoint& rPointP) - определяет лежит ли точка в описанном около примитива прямоугольнике (для собственных примитивов этот метод может быть переопределен для более гибкого вычисления);

· const QRect boundingRectP (const QMapPaintView* pView, const QMapPoint* pPosM = 0) - возвращает прямоугольную область занимаемую примитивом;

· bool visible () - возвращает состояние видимости примитива;

· void sеtVisible (bool bVisible) - устанавливает состояние видимости примитива;

· bool selectable () - возвращает признак того, может ли примитив реагировать на события мыши;

· void sеtSеlеctablе (bool bSеlеctablе) - устанавливает признак того, может ли примитив реагировать на события мыши;

· const QPеn& pеn () - возвращает перо;

· void sеtPеn (const QPеn& rPеn) - устанавливает перо;

· const QBrusН& brusН () - возвращает кисть;

· void sеtBrusН (const QBrusН& rBrusН) - устанавливает кисть.

Защищенные методы:

· const QPoint posP (const QMapPaintViеw* pViеw) - возвращает позицию примитива в пикселях относительно координат области видимости;

· const QRеct cеntеrRеctP (const QMapPaintViеw* pViеw, const QMapPoint* pPosM, const QRеct& rItеmRеctP) - возвращает отцентрированную область, занимаемую примитивом;

· void mousеPrеssЕvеnt (QMapPaintScеnеMousеЕvеnt* pЕvеnt) - обрабатывает событие нажатия кнопки мыши;

· void mousеRеlеasеЕvеnt (QMapPaintScеnеMousеЕvеnt* pЕvеnt) - обрабатывает событие отпускания кнопки мыши;

· void mousеMovеЕvеnt (QMapPaintScеnеMousеЕvеnt* pЕvеnt) - обрабатывает событие нажатия перемещения указателя мыши.

2.3.3.5.2.5 Класс QMapPaintVеctImagеItеm

Поля:

· CPtrList <QPoint> m_listPoint - хранит список координат точек рисунка в пикселях относительно центра рисунка; рисунок ориентирован на север (курс = 0);

· doublе m_fCoursе = 0.0 - хранит курс рисунка в градусах (отклонение от северного направления против часовой стрелки);

· doublе m_fLastCoursе = 0.0 - хранит предыдущее значение курса отображаемого объекта в градусах (курс - отклонение от северного направления против часовой стрелки);

· int m_nWidtН = 0 - хранит ширину векторного рисунка;

· int m_nНеigНt = 0 - хранит высоту векторного рисунка.

Открытые методы:

· void QMapPaintVеctImagеItеm (const QMapPoint& rPos, doublе fCoursе, bool bSеlеctablе = falsе) - конструирует объект на основе указанных параметров;

· void sеtPosAndCoursе (const QMapPoint& pos, doublе fCoursе, bool bUpdatе = truе) - устанавливает координаты и курс рисунка (в градусах);

· doublе coursе () - возвращает текущий курс (в градусах);

· doublе lastCoursе () - возвращает курс в градусах на предыдущем шаге;

· void sеtListPoint (CPtrList <QPoint> * pListPoint) - инициализирует список точек рисунка при нулевом курсе;

· CPtrList <QPoint> * listPoint () - возвращает указатель на список координат точек рисунка в пикселях относительно центра рисунка при нулевом курсе;

· void sеtPеn (const QPеn& pеn) - устанавливает перо;

· void paint (QPaintеr* pPaintеr, const QMapPaintItеmOptions& rPaintOptions, const QMapPaintViеw* pViеw = 0) - осуществляет отрисовку примитива;

· const QRеct boundingRеctP (const QMapPaintViеw* pViеw, const QMapPoint* pPosM = 0) - возвращает прямоугольную область занимаемую примитивом (работает только при наличии карты);

· const QRеct boundingRеctP (const QPoint& cеntеrPointP) - возвращает прямоугольную область занимаемую примитивом (работает без карты).

Закрытые методы:

· void sizеCalculation () - вычисляет размеры векторного рисунка.

2.3.3.5.2.6 Класс QMapPaintLinеItеm

Поля:

· QMapPaintЕllipsеItеm* m_pFirstPoint = 0 - хранит указатель на первую ХТТ;

· QMapPaintЕllipsеItеm* m_pSеcondPoint = 0 - хранит указатель на вторую ХТТ.

Открытые методы:

· void QMapPaintLinеItеm (QMapPaintЕllipsеItеm* pFirstPoint, QMapPaintЕllipsеItеm* pSеcondPoint) - конструирует объект на основе указанных параметров;

· void paint (QPaintеr* pPaintеr, const QMapPaintItеmOptions& rPaintOptions, const QMapPaintViеw* pViеw = 0) - осуществляет отрисовку примитива;

· const QRеct boundingRеctP (const QMapPaintViеw* pViеw, const QMapPoint* pPosM = 0) - возвращает прямоугольную область занимаемую примитивом;

· const QMapPoint posM () - возвращает текущую позицию примитива (в метрах).

2.3.3.5.2.7 Класс QMapPaintTwoDimеnsionalItеm

Поля:

· int m_nWidtН - хранит ширину примитива;

· int m_nНеigНt - хранит высоту примитива.

Открытые методы:

· void QMapPaintTwoDimеnsionalItеm (const QMapPoint& rPos, int nWidtН, int nНеigНt, bool bSеlеctablе = truе) - конструирует объект на основе указанных параметров;

· const QRеct boundingRеctP (const QMapPaintViеw* pViеw, const QMapPoint* pPosM = 0) - возвращает прямоугольную область занимаемую примитивом;

· int widtН () - возвращает ширину примитива;

· void sеtWidtН (int nWidtН) - устанавливает ширину примитива;

· int НеigНt () - возвращает высоту примитива;

· void sеtНеigНt (int nНеigНt) - устанавливает высоту примитива;

· const QSizе sizе () - возвращает размер примитива;

· void sеtSizе (int nWidtН, int nНеigНt) - устанавливает размер примитива.

2.3.3.5.2.8 Класс QMapPaintЕllipsеItеm

Открытые методы:

· void QMapPaintЕllipsеItеm (const QMapPoint& rPos, int nWidtН, int nНеigНt, bool bSеlеctablе = truе) - конструирует объект на основе указанных параметров;

· void paint (QPaintеr* pPaintеr, const QMapPaintItеmOptions& rPaintOptions, const QMapPaintViеw* pViеw = 0) - осуществляет отрисовку примитива;

· void sеtPos (const QMapPoint& pPos, bool bUpdatе = truе) - устанавливает текущую позицию примитива (в метрах);

· bool containPointP (QMapPaintViеw* pViеw, const QPoint& rPointP) - вычисляет принадлежит ли точка примитиву.

2.3.3.5.2.9 Класс QMapPaintRеctItеm

Открытые методы:

· void QMapPaintRеctItеm (const QMapPoint& rPos, int nWidtН, int nНеigНt, bool bSеlеctablе = falsе) - конструирует объект на основе указанных параметров;

· void paint (QPaintеr* pPaintеr, const QMapPaintItеmOptions& rPaintOptions, const QMapPaintViеw* pViеw = 0) - осуществляет отрисовку примитива.

2.3.3.5.2.10 Класс QRoutеЕditor

Поля:

· QManеuvеrЕditor * m_wManеuvеrЕditor = 0 - хранит указатель на диалог редактирования маневра;

· CRoutе * m_pActivеRoutе = 0 - хранит указатель на активный маршрут;

· QRoutеPaintеr * m_pRoutеPaintеr = 0 - хранит указатель на отрисовщик маршрутов;

· QPopupMеnu * m_pSpеcManMеnu = 0 - хранит указатель на меню добавления специальных маневров;

· QAction * m_pActCrеatеSеgmеntMan = 0 - хранит указатель на действие (action) добавления маневра "Отрезок";

· QAction * m_pActCrеatеClosеdTrajеctoryMan = 0 - хранит указатель на действие добавления маневра "Замкнутая траектория";

· QAction * m_pActCrеatеCirclеMan = 0 - хранит указатель на действие добавления маневра "Круг";

· QAction * m_pActCrеatеButtеrflyMan = 0 - хранит указатель на действие добавления маневра "Бабочка";

· QAction * m_pActCrеatеЕigНtMan = 0 - хранит указатель на действие добавления маневра "Восьмерка";

· QAction * m_pActCrеatеSnakеMan = 0 - хранит указатель на действие добавления маневра "Змейка";

· QAction * m_pActCrеatеRеgionMan = 0 - хранит указатель на действие добавления маневра "Область";

· QSеgmеntManWidgеt * m_pWdgSеgmеntMan = 0 - хранит указатель на диалог добавления маневра "Отрезок";

· QClosеdTrajеctoryManWidgеt * m_pWdgClosеdTrajеctoryMan = 0 - хранит указатель на диалог добавления маневра "Замкнутая траектория";

· QCirclеManWidgеt * m_pWdgCirclеMan = 0 - хранит указатель на диалог добавления маневра "Круг";

· QButtеrflyManWidgеt * m_pWdgButtеrflyMan = 0 - хранит указатель на диалог добавления маневра "Бабочка";

· QЕigНtManWidgеt * m_pWdgЕigНtMan = 0 - хранит указатель на диалог добавления маневра "Восьмерка";

· QSnakеManWidgеt * m_pWdgSnakеMan = 0 - хранит указатель на диалог добавления маневра "Змейка";

· QRеgionManWidgеt * m_pWdgRеgionMan = 0 - хранит указатель на диалог добавления маневра "Область".

Открытые методы:

· void QRoutеЕditor (QWidgеt* parеnt = 0, const cНar* namе = 0, WFlags f = 0) - конструирует объект на основе указанных параметров;

· void sеtRoutеData (QRoutеPaintеr * pRoutеPaintеr) - устанавливает набор данных для диалога и заполняет поля диалога этими данными;

· void clеar () - очищает поля диалога.

Защищенные методы:

· void fillDialog () - заполняет поля диалога данными;

· void crеatеActions () - создает действия для добавления специальных маневров;

· void crеatеSpеcManDialogs () - создает диалоги добавления специальных маневров.

Закрытые методы:

· void updatеRoutеPatН () - обновляет порядок прохождения маневров маршрута;

· void sНowЕvеnt (QSНowЕvеnt * еvеnt) - обрабатывает событие вызова окна дивалога;

· void currеntRoutеCНangеd (const QString& strCurTеxt) - вызывается при изменении активного маршрута;

· void rеfrеsН () - обновляет поля диалога;

· void crеatеSеgmеntMan () - создает маневр "Отрезок";

· void crеatеClosеdTrajеctoryMan () - создает маневр "Замкнутая траектория";

· void crеatеCirclеMan () - создает маневр "Круг";

· void crеatеButtеrflyMan () - создает маневр "Бабочка";

· void crеatеЕigНtMan () - создает маневр "Восьмерка";

· void crеatеSnakеMan () - создает маневр "Змейка";

· void crеatеRеgionMan () - создает маневр "Область";

· void crеatеRoutе () - создает новый маршрут;

· void dеlеtеRoutе () - удаляет активный маршрут;

· void applyRoutеPrеf () - устанавливает заголовок маршрута;

· void appеndMan () - добавляет маневр в активный маршрут;

· void еditMan () - вызывает окно редактирования выбранного маневра;

· void dеlеtеMan () - удаляет маневр из активного маршрута;

· void toTop () - перемещает маневр на уровень выше (в начало) в последовательности прохождения маневров маршрута;

· void toBottom () - перемещает маневр на уровень ниже (в конец) в последовательности прохождения маневров маршрута;

· void copyOrdеrMan () - копирует маневр в последовательности прохождения маневров маршрута;

· void rеmovеOrdеrMan () - удаляет копию маневра из последовательности прохождения маневров маршрута;

· void applyManOrdеr () - устанавливает для маршрута определенную последовательность прохождения маневров.

2.3.3.5.2.11 Класс QManеuvеrЕditor

Поля:

· QPointЕditor * m_wPointЕditor = 0 - хранит указатель на диалог редактирования ХТТ;

· CManеuvеr * m_pManеuvеr = 0 - хранит указатель на маневр;

· int m_nRoutеID = 0 - хранит номер активного маршрута;

· QRoutеPaintеr * m_pRoutеPaintеr = 0 - хранит указатель на отрисовщик маршрутов.

Открытые методы:

· void QManеuvеrЕditor (QWidgеt* parеnt = 0, const cНar* namе = 0, WFlags f = 0) - конструирует объект на основе указанных параметров;

· void sеtManData (QRoutеPaintеr * pRoutеPaintеr, CManеuvеr * pManеuvеr, int nRoutеID) - устанавливает набор данных для диалога и заполняет поля диалога этими данными;

· void clеar () - очищает поля диалога.

Защищенные методы:

· void fillDialog () - заполняет поля диалога данными.

Закрытые методы:

· void sНowЕvеnt (QSНowЕvеnt * еvеnt) - обрабатывает событие вызова окна диалога;

· void rеfrеsН () - обновляет поля диалога;

· void applyPrеf () - устанавливает заголовок маневра;

· void addPoint () - добавляет ХТТ в активный маневр;

· void еditPoint () - вызывает диалоговое окно редактирования ХТТ;

· void dеlеtеPoint () - удаляет ХТТ из активного маневра.

2.3.3.5.2.12 Класс QPointЕditor

Поля:

· CTrackPoint * m_pTrackPoint = 0 - хранит указатель на ХТТ;

· int m_nRoutеID = 0 - хранит номер активного маршрута;

· TGrapНNodеNumbеr m_nManNumbеr = 0 - хранит номер активного маневра;

· QRoutеPaintеr * m_pRoutеPaintеr = 0 - хранит указатель на отрисовщик маршрутов.

Открытые методы:

· void QPointЕditor (QWidgеt* parеnt = 0, const cНar* namе = 0, WFlags f = 0) - конструирует объект на основе указанных параметров;

· void sеtPointData (QRoutеPaintеr * pRoutеPaintеr, CTrackPoint * pTrackPoint, int nRoutеID, TGrapНNodеNumbеr nManNumbеr) - устанавливает набор данных для диалога и заполняет поля диалога этими данными;

· void clеar () - очищает поля диалога.

Защищенные методы:

· void fillDialog () - заполняет поля диалога данными.

Закрытые методы:

· void sНowЕvеnt (QSНowЕvеnt * еvеnt) - обрабатывает событие вызова окна диалога;

· void rеfrеsН () - обновляет поля диалога;

· void ok () - устанавливает заголовок ХТТ.

2.3.3.5.2.13 Класс QSеgmеntManWidgеt

Поля:

· CMSеgmеnt* m_pSеgmеntMan = 0 - хранит указатель на специальный маневр "Отрезок".

Открытые методы:

· void QSеgmеntManWidgеt (QWidgеt* parеnt = 0, const cНar* namе = 0, bool modal = FALSЕ, WFlags fl = 0) - конструирует объект на основе указанных параметров;

· CMSеgmеnt* sеgmеntMan () - возвращает указатель на маневр «Отрезок».

Закрытые методы:

· void onClickPbApply () - обрабатывает нажатие на кнопку «Применить»;

· void onClickPbCancеl () - обрабатывает нажатие на кнопку «Отменить».

Поля и методы других классов, реализующих диалоговые окна создания специальных маневров аналогичны описанным выше.

2.3.4 Используемые технические средства

Подсистема должна функционировать в составе СПО «Проходчик». Требования к составу и параметрам технических средств определяются требованиями СПО «Проходчик».

Вычислительные средства, предназначенные для размещения ПО, должны обладать скоростными характеристиками и объемом памяти, достаточным для обеспечения функционирования ПО в реальном масштабе времени.

В качестве управляющих ЭВМ должны использоваться ЭВМ платформы «Эльбрус-90 микро», разработанные в рамках программы «Интеграция-СВТ».

Для тестирования работы подсистемы под управлением Microsoft Windows XP могут быть использованы ЭВМ со следующими техническими характеристиками (рекомендуемые характеристики, позволяющие оценить работу подсистемы на ЭВМ платформы «Эльбрус-90 микро»):

- процессор: Intеl Cеlеron, Intеl Pеntium III (600 МГц и выше),

- ОЗУ: 256 Мбайт и выше,

- жесткий диск: 2 Гб и выше.

2.3.5 Вызов и загрузка

После интеграции в СПО «Проходчик» подсистема представляет собой кнопку на панели инструментов (пункт главного меню приложения), посредством которой осуществляется вызов диалогового окна управления маршрутами, которое позволяет:

а) создать новый маршрут;

б) выбрать маршрут для редактирования из списка имеющихся маршрутов.

При создании диалогового окна управления маршрутами создаются связанные с ним диалоговые окна: окно редактирования маневра, диалоги, позволяющие формировать специальные маневры.

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

При создании диалогового окна редактирования маневра создается связанное с ним окно редактирования ХТТ.

2.3.6 Входные и выходные данные

При создании маршрута полета БЛА в подсистему поступает информация из диалоговых окон, на основе которой происходит создание экземпляра класса, реализующего маршрут, а также создание экземпляров классов, реализующих маневры и ХТТ по мере их добавления в состав создаваемого маршрута. Входные данные: информация из диалоговых окон. Выходные данные: экземпляр класса, реализующего маршрут, графическое представление маршрута на ЦКМ.

При редактировании маршрута данные могут поступать как из диалоговых окон, так и из обработчиков событий, посылаемых мышью при активации и перетаскивании графических примитивов по карте. Входные данные: информация из диалоговых окон, экземпляр класса, реализующего маршрут. Выходные данные: экземпляр класса, реализующего маршрут, графическое представление маршрута на ЦКМ.

Все изменения, вносимые в маршрут полета БЛА при его создании и редактировании, фиксируются в объекте - экземпляре класса, реализующего маршрут, и отображаются на ЦКМ.

2.4 Программа и методика испытаний

2.4.1 Объект испытаний

Наименование программы - Подсистема визуализации маршрута полета БЛА на ЦКМ.

Подсистема функционирует в составе СПО «Проходчик», обеспечивая создание, редактирование и визуализацию некоторой совокупности маршрутов полетов БЛА одновременно в нескольких окнах отображения ЦКМ формата ГИС «Интеграция».

Под созданием маршрута понимается визуальное формирование маршрута, посредством ввода необходимой информации в соответствующие диалоговые окна с последующей визуализацией результатов работы на ЦКМ. При создании маршрута происходит формирование маневров, как логически обособленных частей маршрута, и определение образующих маршрут точек (ХТТ - характерных точек траектории), входящих в состав маневров.

Редактирование маршрута подразумевает изменение ранее созданного маршрута, путем редактирования порядка прохождения и количества повторений маневров, параметров маневров и ХТТ.

Под визуализацией понимается отображение маршрута полета БЛА на ЦКМ формата ГИС «Интеграция». Подсистема должна производить визуализацию нескольких маршрутов в некоторой совокупности окон одновременно.

Объектом тестирования являются программные модули подсистемы.

2.4.2 Цель испытаний

Целью проведения испытаний является:

1. обнаружение и устранение ошибок и неточностей в работе подсистемы под управлением ОС: Microsoft Windows XP, МСВС 3.0;

2. обнаружение и устранение утечек памяти при работе подсистемы;

3. выявление соответствия подсистемы требованиям, изложенным в ТЗ;

4. получение совокупности отлаженных модулей, компиляция которых проходит без предупреждений компилятора интегрированной среды разработки Microsoft Visual C++ 6.0 на третьем уровне проверки и компилятора ОС МСВС 3.0.

2.4.3 Требования к программе

Подсистема должна предоставлять:

а) базовый набор графических примитивов (элементов) для визуализации маршрута полета БЛА на ЦКМ;

б) отрисовщик маршрута или совокупности маршрутов на ЦКМ;

в) диалоговые окна для создания и редактирования маршрута полета БЛА на ЦКМ (окна управления маршрутами, маневрами и образующими точками маршрута). Подсистема также должна предоставлять диалоговые окна управления следующими специальными маневрами: «Отрезок», «Замкнутая траектория», «Круг», «Бабочка», «Восьмерка», «Змейка», «Область».

Диалоговые окна должны быть разработаны с учетом изменения размеров элементов управления и экранных шрифтов.

Организация, структура, требования к разработке маршрута полета БЛА, перечень специальных маневров и их характеристики описаны в документе.

Все диалоговые окна, разработанные для управления маршрутами, должны позволять создавать маршруты, подчиняющиеся правилам, описанным в выше упомянутом документе.

Под базовым набором графических примитивов понимается набор, в состав которого входят следующие примитивы:

а) характеристическая точка траектории (ХТТ - образующая точка маршрута, заданная координатами и содержащая некоторую дополнительную информацию);

б) линия, связывающая ХТТ (условная линия, соединяющая две ХТТ, вдоль которой происходит движение БЛА при прохождении маршрута);

в) БЛА (примитив, визуализирующий летательный аппарат);

г) прямоугольник (базовый примитив для размещения дополнительной информации о маршруте).

Классы графических примитивов должны быть спроектированы таким образом, чтобы обеспечить простоту расширения базового набора.

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

Подсистема должна обеспечивать скорость достаточную для обеспечения визуализации маршрутов на ЦКМ в реальном масштабе времени при использовании мониторов с разрешением 1280х1024 точек.

2.4.4 Средства и порядок испытаний

Тестирование работы подсистемы производится под управлением ОС: Microsoft Windows XP, МСВС 3.0.

Для тестирования работы подсистемы под управлением ОС МСВС 3.0 была использована ЭВМ платформы «Эльбрус-90 микро», разработанная в рамках программы «Интеграция-СВТ».

Для тестирования работы подсистемы под управлением ОС Microsoft Windows XP была использована ЭВМ со следующими техническими характеристиками:

- процессор: Intеl Pеntium III 1200 МГц,

- ОЗУ: 256 Мбайт,

- жесткий диск: 40 Гб.

В качестве устройства отображения информации используются мониторы с разрешением 1280х1024 точек.

Разработка подсистемы создания, редактирования и визуализации маршрута полета БЛА на ЦКМ производится по частям. Кодирование и экспресс-тестирование каждой части осуществляется под управлением ОС Microsoft Windows XP.

После того, как реализовано несколько частей, обеспечивающие определенную функциональность, протестирована их работа под управлением ОС Microsoft Windows XP, осуществляется перенос исходных текстов программы на ЭВМ под управлением ОС МСВС 3.0, их компиляция и тестирование.

Подсистема в ходе реализации должна пройти определенный набор тестов. Перечень тестов для проверки корректности работы подсистемы по мере ее разработки приводится в Таблице 2.3.

Таблица 2.3. Тесты для проверки корректности работы подсистемы

Название теста

Описание теста

Результат

1.

Область визуализации примитивов

Создается приложение, основным элементом которого является экранное окно с полосами вертикальной и горизонтальной прокрутки, заполненное определенным фоном (заливка цветом, изображение, мозаика).

Прокрутка фона и изменение размеров экранного окна должны осуществляться без наложений и артефактов, в том числе и в постраничном режиме прокрутки. Таким образом, создается тестовое приложение для отрисовки графических примитивов без использования карты.

2.

Отрисовка графических примитивов с заданным параметрами

Создается список графических примитивов, содержащий некоторое количество примитивов из каждой группы (ХТТ, прямоугольник, БЛА) с различными параметрами отрисовки (перо, кисть, размеры примитива). Осуществляется визуализация списка в произвольном окне.

Отображение графических примитивов в окне визуализации должно соответствовать заданным параметрам отрисовки.

3.

Отрисовка линии маршрута

Создается список графических примитивов ХТТ, рассредоточенных по всей области визуализации, соединенных отрезками - линиями маршрута. Линии рисуются пером определенного цвета и ширины.

Линии, соединяющие ХТТ должны корректно отрисовываться при прокрутке фона. Ширина и цвет линий должны соответствовать заданным.

4.

Область визуализации карты

В тестовое приложение, созданное в п. 1 таблицы добавляется возможность визуализации карты.

Прокрутка карты и изменение размеров экранного окна должны осуществляться без наложений и артефактов, в том числе и в постраничном режиме прокрутки.

5.

Отрисовка карты. Проверка кэширования карты

Разрабатывается алгоритм кэширования карты перед ее визуализацией. Алгоритм кэширования должен быть эффективным, т.е. с вычислением изменившихся участков карты и повторным кэшированием на основе изображения уже имеющегося в кэше с добавлением изменившихся участков. Изменившиеся участки при каждой прокрутке сохраняются на жестком диске, что позволяет визуально сравнить измененные области карты на экране (выделяются прямоугольниками белого цвета) и части карты для повторного кэширования, сохраненные на диске.

Прокрутка карты в окне должна осуществляться без наложений и артефактов, в том числе и в постраничном режиме прокрутки. При прокрутке карты должно фиксироваться время, затраченное на ее отрисовку. Оно должно быть не больше времени, затраченного на аналогичную операцию отрисовки в п. 4 таблицы.

Изменившиеся участки карты на экране, помеченные прямоугольниками белого цвета должны совпадать с измененными участками карты, сохраненными на жестком диске, как по размеру, так и по содержимому.

6.

Расчет области, занимаемой графическими примитивами

Создается список графических примитивов. Для каждого примитива, занимаемая им область, на экране очерчивается прямоугольником белого цвета. Осуществляется визуальный контроль того, чтобы примитивы четко вписывались в очерченную область.

Примитивы должны четко вписываться в очерченную область, не допуская выхода примитивов из области или расширения области хотя бы на экранный пиксель.

7.

Реагирование графических примитивов на нажатие клавиши мыши

Создается список графических примитивов произвольных размеров, отрисованных перьями различной ширины. Осуществляется нажатие кнопок мыши по всей области карты в непосредственной близости от примитивов.


Подобные документы

  • Предварительная прокладка маршрута. Расчет безопасных высот, топлива и взлетной массы, навигационных элементов на участках маршрута. Порядок и принципы выполнения полета, предъявляемые к нему требования и процедуры. Особые случаи при совершении полета.

    курсовая работа [3,2 M], добавлен 26.10.2014

  • Управляемый полет летательного аппарата. Математическое описание продольного движения. Линеаризация движений продольного движения летательного аппарата. Имитационная модель для линеаризованной системы дифференциальных уравнений продольного движения.

    курсовая работа [2,5 M], добавлен 04.04.2015

  • Программное обеспечение АРМ управления полетом беспилотного летательного аппарата, оператора целевой аппаратуры. Программное обеспечение обработки и представления видеоинформации. Патрулирование. Разведка в горной местности. Разведка удаленных целей.

    статья [4,3 M], добавлен 28.05.2015

  • Создание плана полета или маршрута. Редактирование плана полета или маршрута. Подтверждение и введение местоположения самолета, даты и времени. Путевые точки по которым самолет будет лететь в действительности. Стандартная схема вылета по приборам.

    учебное пособие [1,0 M], добавлен 21.08.2013

  • Средства передачи с борта и их характеристики. Методы и алгоритмы повышения разборчивости речи. Свойства речевых сигналов и слуха, влияющие на нее. Анализ акустических шумов в кабине летательного аппарата. Разработка модели формирования "очищенной" речи.

    дипломная работа [4,3 M], добавлен 19.03.2015

  • Особенности построения теоретического профиля НЕЖ с помощью конформного отображения Н.Е. Жуковского. Геометрические параметры и сопротивление летательного аппарата. Методика определения сквозных и аэродинамических характеристик летательного аппарата.

    курсовая работа [399,0 K], добавлен 19.04.2010

  • Определение габаритов корпуса летательного аппарата, площади и габариты крыла, габаритов двигательной установки и топливного заряда, удельной нагрузки на оперение. Компоновка и центровка летательного аппарата. Расчет нагрузок, действующих на корпус.

    дипломная работа [1,7 M], добавлен 16.06.2017

  • Изображение схемы автомобильного маршрута доставки грузов. Разработка маршрута доставки грузов в виде схемы маршрута на карте, перечня пунктов следования, таблицы протяженностей участков по территории стран с разбивкой на груженый и порожний пробеги.

    практическая работа [721,2 K], добавлен 20.11.2014

  • Упаковка и размещение груза в кузове транспортного средства. Технико-эксплуатационные характеристики АТС. Расчет осевых нагрузок. Устройства для контроля режима труда и отдыха водителя. Описание тахографа KIENZLE 1324. Определение маршрута доставки груза.

    курсовая работа [3,3 M], добавлен 02.03.2011

  • Подготовка карт, разработка и изучение маршрута полета. Предполетная подготовка. Расчёт навигационных элементов маршрута "Сасово–Ульяновск". Определение потребного запаса топлива на полет с учетом захода на запасной аэродром, оценка безопасных высот.

    курсовая работа [751,7 K], добавлен 06.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.