Принципы построения многоуровневых сетей
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?ным указанием каждого из байтов определенного символа) указывается смещение относительно первого символа.
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>