UniSet
1.4.0
|
Предназначен для работы с БД. Основная задача это - сохрание информации о датчиках, ведение журнала сообщений.
На узле, где ведётся БД запускается один экземпляр сервиса. Клиенты могут получить доступ, несколькими способами:
Сервис является системным, поэтому его идентификатор можно получить при помощи UniSetTypes::Configuration::getDBServer() объекта UniSetTypes::conf.
Реализацию см. (DBServer_MySQL) Реализация сервиса ведения БД на основе MySQL
В его задачи входит обработка всех сообщений для оператора. При приходе сообщения он производит следующие действия:
На узле, где ведётся БД запускается один экземпляр сервиса. Клиенты могут получить доступ, несколькими способами:
InfoServer позволяет заказывать уведомелние о приходе тех или иных сообщений, а также подтверждения(квитирования). Можно производить заказ сообщения по коду
InfoServer::ackMessage(UniSetTypes::MessageCode msgid, const UniSetTypes::ConsumerInfo& ci, UniversalIO::UIOCommand cmd, CORBA::Boolean acknotify);
или сразу из диапазона кодов
InfoServer::ackMessageRange(UniSetTypes::MessageCode from, UniSetTypes::MessageCode to, const UniSetTypes::ConsumerInfo& ci, UniversalIO::UIOCommand cmd, CORBA::Boolean acknotify);
Реализацию см. InfoServer
Данный сервис предоставляет возможность заказа переодических сообщений UniSetTypes::TimerMessage т.е. таймеров. Каждый заказчик может заказывать несколько таймеров, различающихся идентификаторами. При этом идентификаторы определяет сам заказчик. Они должны быть уникальны только для одного заказчика.
На узле запускается один экземпляр сервиса. Клиенты могут получить доступ, несколькими способами:
Сервис предоставляет одну функцию
void TimerService::askTimer( CORBA::Short timerid, CORBA::Long timeMS, const UniSetTypes::ConsumerInfo& ci, CORBA::Short ticks)
при помощи которой осуществялется заказ таймера.
timerid | - уникальный идентификатор таймера |
timeMS | - период между уведомлениями. Для отказа от таймера необходимо указать timeMS=0. |
ticks | позволяет ограничить количество уведомлений. |
Для того, чтобы оптимизировать работу сервиса и уменьшить на него нагрузку вводится понятие "время жизни заказа". В случае, если в течение TimerService::AskLifeTimeSEC не удаётся послать заказчику уведомление, в следствие его недоступности - заказ анулируется.