4.2. Прием сообщений от нижнего уровня
Любое сообщение, полученное от нижнего уровня, поступает во входной буфер.
После приема сообщения генерируется прерывание, которое вызывает процедуру Datas_up. Задача данной процедуры состоит в обработке сообщения и заполнения массива "Входящих сообщений". Массив представляет собой следующую структуру данных представленную в таблице 1.
Таблица 1 - Структура массива входящих сообщений
Переменная | Тип переменной |
Номер устройства | Integer |
Тип сообщения | Integer |
Ошибка | Integer |
Ответ | Integer |
Номер объявления | Integer |
Идентификатор присутствия | Boolean 0-нет 1-есть |
Для каждого устройства существует свой массив.
Переменные "Тип сообщения", "Ошибка", "Ответ", "Номер объявления" заполняется в зависимости от типа сообщения. "Номер устройства" это не что иное, как адрес источника. Также проверяется "Контрольная сумма" принятого сообщения и переменная "Идентификатор присутствия" принимает логическое значение истина.
Процедура Control постоянно проверяет переменную "Идентификатор присутстви" . Как только данная переменная принимает значение истина, процедура проверяет "Тип сообщени". В зависимости от "Типа сообщения" Control выполняет следующие действия :
"Тип сообщения" = 01.
Control вызывает процедуру Order с параметром "Номер устройств". Order проверяет по "Динамической модел", чем в данный момент должно заниматься это устройство. Если устройство должно выводить некоторое сообщение, то Order формирует сообщение с "Типом сообщения" = 02 и помещает его в массив исходящих сообщений. Если устройство не должно ни чего делать, то Order также формирует сообщение с "Типом сообщения" = 02 но поле "Текст" остается пустым.
"Тип сообщения" = 02.
Если переменная "Ошибка" = 0, то Control обнуляет все переменные в массиве исходящих сообщений. "Массив исходящих объявлений" обнуляются.
Если "Ошибка" =1, переменная "Повтор" в массиве исходящих сообщений принимает значение = 1 и время = 60.
После массив входящих объявлений обнуляется.
"Тип сообщения" = 03.
Если переменная "Ответ" = 0, то переменная "Занят" в "Динамической модели" принимает значение 0.
Если переменная "Ответ" =1, то переменная "Занят" в "Динамической модели" принимает значение =1 и переменная "Номер объявления" в "Динамической модели" = "Номер объявления" в массиве входящих сообщений.
После массивы входящих и исходящих объявлений обнуляются.
"Тип сообщения" = 04.
Переменная "Повтор" в массиве исходящих сообщений принимает значение = 1 и время = 60.
"Массив входящих объявлений" обнуляется.
4.3. Отправка сообщений на нижний уровень
Для отправки сообщения на нижний уровень системы служит процедура Datas_down, которая постоянно проверяет значения переменных "Идентификатор присутствия" в массиве исходящих сообщений. Если данная переменная имеет значение истина, то Datas_down формирует пакет в зависимости от "Типа сообщения" и помещает его в выходной буфер.
"Массив исходящих сообщений" имеет следующую структуру данных представленную в таблице 2.
Таблица 2 - Структура массива исходящих сообщений
Переменная | Тип переменной |
Номер устройства | Integer |
Тип сообщения | Integer |
Текст объявления | String |
Номер объявления | Integer |
Идентификатор присутствия | Boolean 0-нет 1-есть |
Повтор | Integer принимает значения 0,1 или 2 |
Время | Integer принимает значения от 60 до 0 |
Для каждого устройства существует свой массив.
Если пришло время вывода объявления находящегося в массиве не опубликованных объявлений, то процедура Control формирует сообщение с "Типом сообщения" 02. Формирование сообщения происходит путем считывания данных из массива неопубликованных объявлений и заполнение массива исходящих сообщений. Переменной "Повтор" в массиве исходящих сообщений присваивается значение = 0, а переменной "Время" значение = 60. Также переменной "Идентификатор присутствия" присваивается значение истина.
... решений. Предлагаемая концепция оценивает как маловероятную перспективу сколько-нибудь существенного изменения сложившихся в верхнем уровне административного управления МГУ информационных потоков. Поэтому требование интегрированности автоматизированной информационной системы вовсе не означает требование создать одну информационную систему, которая должна выполнять все необходимые функции. 2. ...
... не имеет дополнительных периферийных устройств, время работы за ним не более 3х часов без перерыва и возраст пользователей не менее 18 лет. Так как данная локальная вычислительная сеть является локальной вычислительной сетью информационных классов университета, то возраст пользователей, работающих на нём может быть меньше 18 лет, следовательно, площадь рабочего места должна быть не менее 6м2. ...
... с положительностью сальдо поступлений и расходов и малым сроком окупаемости. 6. Обеспечение безопасности жизнедеятельности в системе ДО В данном дипломном проекте разработана автоматизированная информационная система дистанционного обучения по дисциплине “Финансы и кредит”. Ее использование тесно связано с применением ПЭВМ, поэтому организация рабочего места пользователя системы должна ...
... классов для варианта использования "Студенты и успеваемость". Рис. 2. Фрагмент диаграммы классов системы управления Университетом. При создании приложения были использованы фирменные технологии InterSystems, такие как средства построения многомерных баз данных на основе постреляционной технологии Cache, язык программирования приложений Cache Object Script, технология формирования динамических ...
0 комментариев