Фев 05

Первая версия модели программного имитатора

Первая версия будет называться ArincReceiverBad. Смысл этого названия станет ясным на этапе тестирования программы.
Создайте новый проект с именем ArincReceiverBad. Скопируйте из папки проекта ToolTip (см. листинг 8.4) в папку проекта ArincReceiverBad файлы KwndEx.h и KwndEx.cpp. Скопируйте из папки проекта KTimer файл KTimer.h. Добавьте скопированные файлы в состав проекта. Также добавьте к настройкам проекта на вкладке Link имена библиотек comctl32.lib и winmm.lib.
Функция GetNextAngle обеспечивает формирование следующего значения кода угла сканирования. При каждом вызове этой функции знак приращения кода угла scanAngle зависит от направления сканирования. При движении по часовой стрелке (FORTH), код угла увеличивается на единицу, при движении против часовой стрелки (BACK) — уменьшается на единицу. На границах сектора сканирования переменная direction изменяет свое значение. Помимо этого вызывается функция SetColorBeamForth или SetColorBeamBack, чтобы заполнить массив cell цветовыми кодами для точек дальности локационного луча. В результате при движении вперед рисуются кольца красного, зеленого, желтого и синего цветов (перечисление идет от центра к периферии). При движении назад рисуются кольца синего, желтого, зеленого и красного цветов.
В реальном имитаторе вызовы функций SetColorBeam Forth и SetColorBeamBack отсутствуют, поскольку массив cell формируется функцией GetPacket.
Рисование луча развертки реализовано в теле функции DrawBeam. Точки дальности локационного луча из массива cell выводятся на экран с помощью функции SetPixel. Для рисования используется контекст устройства с глобальным дескриптором g_hDC. Приложение получает этот контекст один раз при своем старте в блоке обработки сообщения WM_CREATE и освобождает его при завершении работы в блоке обработки сообщения WM_DESTR0Y.
После компиляции проекта перейдем к его тестированию.
На этапе тестирования ресурсоемких приложений очень важно наблюдать за степенью загрузки центрального процессора (ЦП). Операционная система содержит удобный инструмент — системное приложение Диспетчер задач Windows (Task Manager), позволяющее вести такое наблюдение. Для вызова диспетчера задач нужно использовать комбинацию клавиш Ctrl+Alt+ Delete и в появившемся диалоговом окне Безопасность Windows нажать кнопку Диспетчер задач.
После указанных действий на экране появляется окно приложения Диспетчер задач Windows. В строке состояния диспетчера задач отображается текущая загрузка центрального процессора в процентах. Это суммарная загрузка ЦП от всех запущенных процессов. Если переключиться на вкладку Процессы, то можно наблюдать за процентом загрузки ЦП от каждого отдельного процесса.