Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VERITAS / VERITAS / CPEC_MY.DOC
Скачиваний:
10
Добавлен:
16.04.2013
Размер:
953.97 Кб
Скачать

4. Разработка программного обеспечения для пк.

4.1. Структура данных.

Так как в процессор имеет только 180 РОН , то целесообразно выбрать в программе массивы длинной 181 байт для хранения принимаемых данных и осуществления операций с ними. Из них 180 для данных , а последний для хранения коэффициента деления ( умножения ) . Соответственно при выводе на экран , при разрешении 640х480 пикселов , будем отображать 1 байт 3 пикселами . Аналогично и все другие процедуры работают с массивом выбранной длинны .

4.2. Принцип построения программы.

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

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

4.3. Структурная схема программы.

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

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

Инициализация

переменных

Ожидание

событии

Передача управления

при совершении события

Обработка

события

Рис. 4.3. Структурная схема программы.

4.3.1. Модуль отображения.

Модуль отображения является основным в программе , и состоит из 5 процедур :

- процедура отображения сигнала ,

- процедура отображения параметров сигнала ,

- процедура заполнения оболочки ,

- процедура рисование окна ,

- процедура рисование клавиш .

Процедура заполнения оболочки используется для начального оформления экрана . Она формирует фон экрана , используя процедуры отображения окна и клавиш формирует экранный интерфейс . Весь экран разбит на 3 части : 2 части оформленные в виде отдельных окон , для отображения результатов измерения , считанных с hdd сигналов , построения преобразований Фурье , отображение редактируемых сигналов , а на 3 части расположены функциональные клавиши , при помощи которых и осуществлен интерфейс общения между пользователем и ЭВМ. Внешний вид экрана программы-интерфейса изображен на рисунке 4.3.1.

Рис. 4.3.1. Экран программы интерфейса.

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

- считанный с hdd сигнал ,

- преобразование Фурье ,

- сигнал для выдачу на генератор ,

- для редактирования сигналов .

Входными параметрами для процедуры отображения сигнала являются :

- имя отображаемого массива ,

- коэффициент умножения по амплитуде ,

- коэффициент умножения по длительности ,

- флаг окна , указывающий в каком окне отображать сигнал,

- флаг шкалы , указывающий отображать шкалу или нет .

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

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

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

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

Для процедуры рисование окна входными данными являются:

- координаты расположения верхнего левого угла ( x , y ),

- размер окна (x1 , y1 ) ,

- цвет рамки ( cр ),

- цвет фона окна ( cф) .

После выполнения мы получим :

x,y

ср y1

cф

x1

Рис. 4.3.2.А Внешний вид изображаемых на экране окон.

Для процедуры рисование клавиш входными данными являются:

- координаты расположения верхнего левого угла ( x , y ),

- высота клавиши ( h1 ) ,

- текст отображаемый на клавише ,

- цвет клавиши ( cк ).

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

Рис. 4.3.2.В Внешний вид изображаемых на экране клавиш.

Соседние файлы в папке VERITAS