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

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

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

?ным указанием каждого из байтов определенного символа) указывается смещение относительно первого символа.

 

for(i=0; i< n; i++)(j=0; j<6; j++)_write(font[(*(string+i))*6 + j]);

 

Функция прорисовки (Draw) - вызывает два метода класса Holst - для установки координат активного элемента или курсора и для подачи сигнала на прорисовку холста.

Функции управления движением активного курсора (goUp, goRight, goDown, goLeft). Весь экран разделен на клетки - 8 по высоте и 10 по ширине.

Разделение экрана на клетки с шестнадцатеричным обозначением каждого из адресов изображено на рисунке 5.8:

 

Рисунок 5.8 - Адресация в ЖК-дисплее

 

.4.2 Классы управления системой

К классу управления системой нужно отнести класс Holst - предназначенный для хранения и управления всеми элементами сети и подсети. Общая структура класса изображена на рисунке 5.9:

Рисунок 5.9 - UML диаграмма классов управления содержимым ЖК-дисплея

 

Рассмотрение структуры классов управления содержимым ЖК-дисплея начнем с рассмотрения класса HolstTable - предназначенного для хранения и обработки таблицы типов элементов расположенных на определенном уровне. Он хранит матрицу 10х8 каждый элемент который определен типом char и занимает ровно 1 байт в памяти - это было сделано для экономии памяти устройства. Также он поддерживает следующие методы:

GetElement - получение типа сетевого объекта по его координатам заданных в десятеричной системе;

SetElement - размещение элемента на таблице. Параметрами метода выступают координаты размещаемого объекта и его тип;

GetCurrentID - получение текущего идентификатора таблицы (необходимо для реализации вложенности);

SetCurrentID - задание текущего идентификатора таблицы (вызывается холстом при создании новой подсети)

Класс Holst содержит множество методов для управления содержимым ЖК-дисплея большинство из которых взаимодействуют с объектами класса HolstTable. Рассмотрим каждый из методов класса Holst подробно:

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

SetActiveElementCoord - установка текущих координат активного элемента;

GetActiveElementX - метод возвращает значение координаты текущего элемента по оси абсцисс;

GetActiveElementY - метод возвращает значение координаты текущего элемента по оси ординат;

GetHolstElement - метод возвращает тип элемента расположенного по заданным координатам. При этом используется вызов метода поиска сетевого элемента по координатам у объекта класса HolstTable;

GetTypeOfActiveElement - получения типа активного элемента;

AddActiveElementOnHolst - метод добавляет активный элемент по текущим координатам на холст, использую вызов метода записи в объекта класса HolstTable;

SetCurrentID - установка идентификатора текущей таблицы;

GetCurrentID - получение идентификатора текущей таблицы;

SetBuilding - установка бинарного параметра указывающего на уровень сети (верхний уровень или подуровень);

FindBuilding - определение номера здания по его текущим координатам, параметром кроме координат объекта, также передается номер уровня;

FindParent - определение идентификатора родительского уровня. Параметром передается идентификатор текущего уровня;

GetHolst - получение таблицы сетевых элементов. Метод возвращает обьект типа HolstTable. Используется для сохранения текущего холста при переходе на новый уровень;

SetHolst - установка таблицы сетевых элементов. Используется для перехода по уровням сети;

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

 

.4.3 Классы отображения сетевых объектов

Родительским классом для всех сетевых объектов является класс Element, который содержит в себе две виртуальные функции - функцию прорисовки элемента и функцию получения типа производного класса. Все классы сетевых объектов переопределяют эти два метода, что наглядно продемонстрировано на рисунке 5.10:

 

Рисунок 5.10 - UML диаграмма связей сетевых объектов

Функция для получения типа (GetType) - возвращает один шестнадцатеричный символ, который соответствует текущему типу обьекта. Все типы хранятся в файле elementType.h в форме препроцессорных директив define. Типы сетевых элементов с их описанием наведены в таблице 5.1:

 

Таблица 5.1 - Типы сетевых элементов

Обозначение СимволОписаниеt_computer1Компьютерt_net2СетьОбозначение СимволОписаниеt_building3Зданиеt_server4Серверt_switch5Коммутаторt_out9Объект Выход из подсети (здания)t_pointer6Указательlt_fpoint11Указатель для определения начальной точки соединительной линииlt_lpoint12Указатель на определение последней точки соединительной линииlt_horizontal13Горизонтальная линияlt_vertical14Вертикальная линияlt_left_bottom15Угол - с лева внизlt_right_bottom16Угол - с права внизlt_right_top17Угол - с права вверхlt_left_top18Угол - с лева вверхlt_crosswise19Пересечение линий перекрестокlt_vertical_left20Соединительный элемент для трех линий - сверху, сниз?/p>