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

Опрос протокола управления купюроприёмника с отложенной обработкой результата



Прикладной скрипт после вызова функции Пример() может выполнять другие задачи или вернуть управление пользовательскому интерфейсу.
Обработчик результата запроса будет вызван автоматически при готовности результата или при отмене/ошибке выполнения запроса.

var CashMatic = external;
	//CashMatic - рекомендуемое имя для основного объекта
	//объектной модели NDemia CashMatic

var Request = null;	//ссылка на асинхронный запрос
			//	(объект CashMaticRequest)

function Пример()
{
	Request = CashMatic.Cash.GetDeviceProtocol(
		new ResultHandler("пример обработчика")
	);
	/*
		метод GetDeviceProtocol при вызове с параметром:
			1. интерпретирует параметр как ссылку на обработчик
				результата запроса;
			2. создаёт асинхронный запрос;
			3. возвращает ссылку на асинхронный запрос,
				не дожидаясь результата запроса.
		
		В качестве обработчика результата мы создаём
			объект ResultHandler (см. ниже).
		Полученная ссылка на запрос сохраняется
			в переменной Request.
	*/
}

function ResultHandler(title)
	/*
		Эта функция инициализирует объект-обработчик запроса,
			реализующий интерфейс CashMaticResultHandler.
			
		Параметр title показывает, как прикладной скрипт может
			добавить к создаваемому объекту собственные
			свойства, не предусмотренные спецификацией
			интерфейса CashMaticResultHandler.
	*/
{
	this.HandleResult = function(Result)
		//Функция обработки результата запроса, реализует
		//	соответствующий метод интерфейса CashMaticResultHandler.
		//Эта функция будет автоматически вызвана при готовности
		//	результата нашего запроса (в том числе при
		//	отрицательном результате, т.е. при ошибке или
		//	отмене запроса).
		//Результат запроса передаётся в параметре Result как
		//	объект CashMaticResult.
		{
			if(Result.Code == 0)
			{
				//нулевой код результата означает отсутствие ошибок:
				this.ShowResult(Result.Data);
					//вызываем демонстрационный метод нашего обработчика
					//	для отображения полученного результата.
					//Result.Data содержит строку "CCNET" или "ICT004",
					//	в зависимости от настроенных параметров
					//	подключения купюроприёмника.
			}
			else
				this.ShowResult(
					"Ошибка опроса протокола управления купюроприёмника"
				);
		};
		
	this.ShowResult = function(text)
		//Дополнительная функция нашего объекта,
		//	не предусмотренная спецификацией CashMaticResultHandler.
		{
			alert(this.title + ": " + text);
		};
		
	this.title = title;
		//Дополнительное свойство нашего объекта,
		//	не предусмотренное спецификацией CashMaticResultHandler.
}
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com