NDemia Новости CashMatic Рубли Форум

Обработка отказов терминала


см. также: Модель обработки отказов Виды отказов Уровни серьёзности отказов
Компоненты расширения Объект CashMaticTerminal Интерфейс ICashMaticTerminalExtender


Обработка отказов
терминала может выполняться компонентами расширения NDemia CashMatic, регистрирующими обработчики с интерфейсом ICashMaticTerminalExtender (см. объект CashMaticTerminal). При возникновении или снятии какого-либо отказа компоненты расширения получают соответствующее оповещение через вызов ICashMaticTerminalExtender::OnFailure. Указанный метод вызывается в каждом из установленных компонентов (порядок в общем случае не определён).
Компонент расширения или прикладной скрипт могут принудительно установить или снять любой именованный отказ - см. метод SetFailState объекта CashMaticTerminal.

Примечание: Крайне не рекомендуется прикладному программисту без существенной необходимости принудительно устанавливать состояния предопределённых отказов, поскольку это может нарушить общую логику работы NDemia CashMatic KioskBrowser.

При вызове SetFailState все компоненты оповещаются так же, как и при реальном ("физическом") отказе или снятии отказа. Следует иметь в виду, что вызов SetFailState внутри вызова ICashMaticTerminalExtender::OnFailure приводит к рекурсии (все компоненты снова получают оповещение). Такая ситуация нежелательна, поскольку прикладной программист в общем случае не знает, какие ещё компоненты могут быть установлены на терминале, и как они реагируют на тот или иной отказ (хотя в целом рекурсии OnFailure в текущей версии разрешены).
Уровень серьёзности отказов не имеет значения с точки зрения вызовов SetFailState и OnFailure. При обработке серьёзных отказов (ошибок) автоматические переходы на страницу неисправности и на стартовую страницу выполняются после соответствующих оповещений OnFailure.
При отложенном отказе компоненты расширения и прикладные скрипты могут проверить необходимость перехода на страницу неисправности через опрос свойства Failure объекта CashMaticTerminal.
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com