Принципы построения многоуровневых сетей

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

сти для симуляции и отладки проекта:

Отладка в кодах Си и ассемблера;

Различные точки останова;

Язык описания периферии и операций ввода/вывода;

Просмотр областей CODE, DATA, EEPROM и регистров ввода/вывода;

Обработка прерываний с предсказанием;

Контроль любых переменных и стека;

Комплексные типы данных.

 

5.2 Настройки проекта

 

Для соединения программной части с технической и реализации максимальной производительности необходимо правильно настроить проект.

Выбираем тип микроконтроллера (рисунок 5.2).

 

Рисунок 5.2 - Выбор микроконтроллера

Выделяем необходимый объем памяти стека - для хранения до десяти холстов (таблиц размещения элементов). Необходимы нестойки наведены на рисунке 5.3:

 

Рисунок 5.3 - Определения объема стека

 

В связи с малым количеством памяти - в настройках компилятора выбираем максимальный уровень оптимизации, что наглядно показано на рисунке 5.4:

 

Рисунок 5.4 - Выбор максимальной оптимизации компилятора

Выбираем программатор JTAGICE для возможности программирования флэш-памяти (рисунок 5.5).

 

Рисунок 5.5 - Выбор программатора

 

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

 

Рисунок 5.6 - Выбор порта компьютера для соединения с программатором

5.3 Меню и блок кнопок

 

Меню - представляет собой объект класса Menu, который отвечает за предоставления выбора активного элемента. Вызов меню осуществляется в любой момент нажатием на кнопку 10, при этом выводится приглашение выбрать активный элемент. Доступными элементами меню являются: компьютер(computer), сеть(net), здание(building), сервер(server), линия (line), коммутатор(switch), курсор (pointer).

Все операции в программе делятся на три типа: opt_menu, opt_navigation и opt_line; которые хранятся в файле operationType.h. Первый из них переключает раскладку клавиш в режим Меню - каждая клавиша выступает номером элемента меню. По нажатию на определенную клавишу создается выбранный элемент и раскладка клавиш переход в режим Навигация (второй тип операций). В этом режиме клавиши служат курсором, который помогает перемещать объект в заданное место. Третий тип операций предназначен для рисования соединительной линии.

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

 

5.4 Система классов

 

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

.4.1 Классы взаимодействия с выбранным устройством

Рассмотрим классы взаимодействия с выбранным устройством на примере класса TIC_149 (рисунок 5.7), который предоставляет основные функции для работы с ЖК-дисплеем:

Инициализация (Init);

Очистка ЖК-дисплея (Clear);

Вывод символов на ЖК-дисплей (Print) - параметром передаем указатель на выводимою строку;

Установка активного курсора (SetStartPoint) - устанавливает начальную точку для прорисовки, параметром является шестнадцатеричный символ отвечающий за ось абсцисс или за ось ординат;

Установка активного холста (SetHolst) - установка таблицы отвечающей за расположение элементов на определенном уровне. Параметром передается объект класса Holst. Концепция холста и управления уровнями вложенности будет рассмотрена ниже;

Получение активного холста (GetHolst) - данная функция возвращает указатель на текущий активный холст;

Изменение расположения активного курсора на одну клетку вверх (goUp);

Изменение расположения активного курсора на одну клетку вправо (goRight);

Изменение расположения активного курсора на одну клетку вниз (goDown);

Изменение расположения активного курсора на одну клетку влево (goLeft).

 

Рисунок 5.7 - UML диаграмма класса TIC_149

 

Данный класс построен с использованием паттерна одиночка Singleton - который обеспечивает единственность объекта класса в которым он используется. Для реализации данного паттерна в защищенной части класса был создан статический объект с типом этого же класса и определен конструктор, а в открытую часть был добавлен статический метод GetDisplay, который по запросу всегда возвращает указатель на единственный объект этого класса.

Пример получения объекта дисплея:

_149* display = TIC_149::GetDisplay();

 

Рассмотрим более подробно некоторые из методов класса TIC_149:

Инициализация (Init) - с помощью функций TWI (функции работы с шиной I2C) осуществляется задание основных настроек ЖК-дисплея - установка режима отображения, включение/выключение зеркал, установка умножителя частоты, яркости, температуры, начальных точек по оси абсцисс и оси ординат.

Очистка экрана (Clear) - с помощью функций TWI сначала задается первая точка заполнения и в цикле 1064 раза подается сигнал 0x00.

Вывод символов на ЖК-дисплей (Print) - данный метод после задания первой точки заполнения в цикле выводит каждый символ. Для этого в массиве font (массив с шестнадцатери?/p>