64
Constants.DEFAULT_UPDATE_TIMEOUT *
5
);
};
_clearBatchedWaitingTime
= () => {
this
.
_forceApply
=
true
;
};
bufferedUpdate
(updates) {
clearInterval
(
this
.
_interval
);
//останавливаем "внутренний" таймер
this
.
_accumulateUpdates
(updates);
//добавляем обновления (накапливаем)
if
(
this
.
_forceApply
===
true
) {
//если флаг форсированного обновления выставлен в true
this
.
_applyAccumulatedUpdatesIfNeeded
();
//обновляем данные
return
;
//выходим из данного метода
}
//иначе
this
.
_interval
=
setInterval
(() => {
/* создаем "внутренний" таймер, после которого
вызовется обновление данных */
this
.
_applyAccumulatedUpdatesIfNeeded
();
}, Constants.DEFAULT_UPDATE_TIMEOUT);
}
_accumulateUpdates
(updates) {
if
(!updates) {
return
; }
//если обновлений нет, ничего делать не надо
updates.forEach(update => {
/* иначе, для каждого обновления добавляем данные в собранные
в соотв. поле данные */
this
.
_accumulatedUpdates
.
events
=
UpdateHandler.
appendEventMessage
(
this
.
_accumulatedUpdates
.
events
, update);
});
}
static
appendEventMessage
(initialValue, newMessage) {
/* Здесь, в зависимости от структуры сообщения, в буфер добавляются новые данные о
событиях сети */
return
initialValue.set(newMessage.id, newMessage.
val
);
}
applyAccumulatedUpdates
() {
const
{
events
} =
this
.
_accumulatedUpdates
;
this
.
_store
.
dispatch
(eventsActions.updateEvents(
events
));
//применяем данные к хранилищу
this
.
_accumulatedUpdates
.
events
=
new
Map();
/* инициализируем начальное значения
накопленных обновлений */
}
}
67
ПРИЛОЖЕНИЕ Ж
UML-диаграмма активности системы «Умная парковка»
В системе тесно взаимосвязанными являются элементы для
графического представления
информации пользователю, а именно:
клиентская часть веб-приложения парковки и система табло и индикаторов
на физической парковке. Поэтому в диаграмме показана активность именно
этих элементов (в соответствии с рисунком Ж.1). Активность со стороны веб-
сервера, видеокамер, видеосервера, базы данных опущена.
69
ПРИЛОЖЕНИЕ И
UML-диаграмма компонентов системы «Умная парковка»
Схема состоит из двух основных компонентов:
Клиент
Умная парковка
Умная парковка состоит из:
Приложение
WEB-сервер
Табло
База данных
Bluetooth-метки
Сервер датчиков
Датчики
Интерфейсы, используемые в схеме (в соответствии с рисунком И.1):
SpotReservation – интерфейс умной парковки для резервирования места
и навигации к этому месту
GetSpotsAndPosition – интерфейс получения
информации о месте
парковки и позиции
клиента
GetCurrentData – интерфейс получения текущей информации из БД
SQLDriver – интерфейс взаимодействия с данными в БД
WriteData – интерфейс, содержащий методы записи информации в БД
UpdateClientPosition – интерфейс, содержащий
методы обновления
позиции клиента
GetClientCoords – интерфейс, содержащий методы получения
координат клиента
UpdateSpotStatus – интерфейс, содержащий методы обновления статуса
парковочного места
71
ПРИЛОЖЕНИЕ К
WEB-API программного комплекса «Умная парковка»
/**
* Created by arapoport on 14.09.15.
*/
Do'stlaringiz bilan baham: