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

Объект CashMaticCash (CashMatic.Cash), свойства и методы


см. также: CashMaticCashSession CashMaticCashDeviceIdentification
CashMaticCurrency CashMaticRequest


Объект CashMaticCash (доступен из прикладного скрипта как свойство CashMatic.Cash) является основным объектом взаимодействия с купюроприёмником в
объектной модели NDemia CashMatic.
Объект CashMaticCash является в некотором смысле "стационарным" объектом, связанным с оборудованием, а не с текущим платежом и другими действиями пользователя.
Непосредственно приём или проверка купюр выполняются в сеансовом режиме, за организацию таких сеансов отвечают объекты CashMaticCashSession, которые создаются в результате вызова метода CreateSession() объекта CashMaticCash. Через свойство ActiveSession объекта CashMaticCash можно получить ссылку на текущий активный сеанс купюроприёмника (под активностью в данном случае понимается непосредственное использование купюроприёмника для приёма или проверки купюр).
Объект CashMaticCash предоставляет доступ к программному счётчику купюр купюроприёмника - см. свойство BillCounter. В текущей версии предоставляется только информация о количестве купюр (без подсчёта денежных значений и счётчиков по отдельным типам купюр), в дальнейшем предполагается предоставлять информацию на уровне детализации, аналогичном методу GetBillCounters() объекта CashMaticCashSession.
Для проверки переполнения купюроприёмника по программному счётчику купюр прикладной скрипт должен вызывать метод CheckBillCounter(). По результату этой проверки возвращается логическое значение (истина соответствует отсутствию переполнения) и выставляется состояние отказа BillValidator (см. Модель обработки отказов)

Объект CashMaticCash поддерживает методы опроса идентификации подключенного оборудования: GetDeviceProtocol() и GetDeviceIdentification() (см. Примеры опроса идентификации купюроприёмника).
Метод GetDeviceProtocol() опрашивает настройку протокола управления купюроприёмника по параметрам, выставленным в Панели управления NDemia CashMatic, на вкладке "Купюроприёмник" (т.е. это не реальный опрос физического устройства, а получение выставленной вручную программной настройки).
Метод GetDeviceIdentification() опрашивает купюроприёмник и создаёт объект CashMaticCashDeviceIdentification - только если купюроприёмник реально подключен и поддерживает протокол CCNET.
Методы GetDeviceProtocol() и GetDeviceIdentification() могут выполняться как синхронно (т.е. с возвратом непосредственного результата), так и асинхронно (через запрос с обработкой результата, отложенной до готовности ответа).
При необходимости прикладной скрипт может прервать все незавершённые асинхронные запросы вызовом метода CancelDeviceRequests().

Свойство AutoZReport объекта CashMaticCash является постоянно действующей настройкой NDemia CashMatic. Если это свойство имеет истинное значение, то при выполнении инкассации автоматически вызывается печать отчёта с гашением (вызывается метод ZReport() объекта CashMaticPrint). Присвоенное значение AutoZReport сохраняется в системном реестре Windows.
При необходимости преобразовать тип принятой/проверенной купюры, полученный на интерфейсе купюроприёмника, в номинал (денежное достоинство) купюры, прикладной программист может воспользоваться методом BillTypeToMoney() (использование типов купюр в прикладных скриптах на текущий момент эволюции NDemia CashMatic является устаревшей методикой - для программиста, работающего в объектной модели NDemia CashMatic, нет необходимости знать и использовать внутренние условные номера типов купюр).
Свойство DefaultCurrency объекта CashMaticCash возвращает код валюты, действующей по умолчанию в данной установке NDemia CashMatic. Валюта по умолчанию возвращается в виде объекта CashMaticCurrency с нулевым денежным значением, код валюты доступен через свойство Code этого объекта. В текущей версии NDemia CashMatic валютой по умолчанию является российский рубль - код "RUB".

Метод ResetDevice() выполняет командный (программный) сброс купюроприёмника (купюроприёмнику через протокол управления подаётся команда сброса). Данный метод носит вспомогательный характер, он может использоваться при попытке восстановления работоспособности купюроприёмника со страницы неисправности терминала.

Имя Тип результата Тип обращения Назначение
ActiveSession Объект CashMaticCashSession, или null Свойство, чтение/запись Активный сеанс купюроприёмника (т.е. сеанс, в котором разрешена вставка купюр в купюроприёмник для проверки или приёма).
Прямое присваивание значения свойства разрешено, но не рекомендуется (с точки зрения исходных текстов - управление свойством Active объекта CashMaticCashSession представляется более понятным и менее "неявно косвенным" действием).
Если выполняется прямое присваивание значения свойства ActiveSession, то должны быть соблюдены условия возможности изменения свойства Active и для текущего (если не null), и для нового (если не null) сеансов купюроприёмника — см. CashMaticCashSession (•).

Совместимость: поддерживается, начиная с версии 2.6.0

AutoZReport Логический Свойство, чтение/запись Автоматическая печать Z-отчёта при инкассации (удалении стекера купюроприёмника). На данный момент поддерживается только при наличии фискального регистратора. При изменении значение записывается в реестр.
BillCounter Число Свойство, только чтение Текущее значение программного счётчика купюр (программный счётчик купюр автоматически сбрасывается при инкассации, т.е. при удалении стекера купюроприёмника)
Установленный после удаления купюроприёмник считается пустым, точная информация о его наполнении недоступна (см. Счётчик купюр).
BillTypeToMoney(BillType) Объект CashMaticCurrency Метод Преобразование типа купюры в денежное значение купюры.
Параметр BillType - тип купюры (число - внутреннее представление купюры на интерфейсе купюроприёмника, см. Соответствие типов купюр номиналам для российских рублей).
Возвращаемое значение может использоваться как численное, равное номиналу купюры, см. свойство CashMaticCurrency.Value.
Для несуществующих/ неизвестных/ неподдерживаемых типов купюр возвращается нулевое значение с пустым кодом валюты (объект CashMaticCurrency, свойство Value равно нулю, свойство Code - пустое значение).

Совместимость: поддерживается, начиная с версии 2.6.0

CancelDeviceRequests() Пустой Метод Отмена всех асинхронных запросов к устройству (реализованных объектами CashMaticRequest).
В текущей версии NDemia CashMatic асинхронные запросы к купюроприёмнику создаются методами GetDeviceProtocol() и GetDeviceIdentification().
Все незавершённые запросы немедленно завершаются с результатом, соответствующим отмене запроса (см. метод CancelRequest объекта CashMaticRequest).

Совместимость: поддерживается, начиная с версии 2.6.0

CheckBillCounter() Логический Метод Проверка переполнения купюроприёмника (по программному счётчику - см. свойство BillCounter, предел наполнения купюроприёмника задаётся в настройках программы, через Панель управления NDemia CashMatic; см. Счётчик купюр). Внутренне вызывает соответствующее изменение состояние отказа BillCounterOverflow (см. Модель обработки отказов).
Возвращаемое значение:
    истина - счётчик купюр не достиг уровня переполнения, отказ BillCounterOverflow снят;
    ложь - купюроприёмник переполнен (по программному счётчику купюр), возбуждён отказ BillCounterOverflow.
CreateSession() Объект CashMaticCashSession Метод Создание нового объекта CashMaticCashSession, отвечающего за сеанс приёма/проверки наличных через купюроприёмник.
Объект CashMaticCashSession существует вне программной связи с текущим платёжным сеансом (объектом CashMaticSession), поэтому прикладной программист должен явно управлять сеансом купюроприёмника (включать/выключать приём/проверку наличных), в том числе явно завершить сеанс купюроприёмника перед завершением платёжного сеанса пользователя.
DefaultCurrency Объект CashMaticCurrency Свойство, только чтение "образец" валюты по умолчанию - объект CashMaticCurrency с нулевым денежным значением (свойство Value равно нулю), свойство Code содержит код валюты по умолчанию (по стандарту ISO 4217).
В текущей версии NDemia CashMatic валютой по умолчанию является российский рубль ("RUB").

Совместимость: поддерживается, начиная с версии 2.6.0

GetDeviceIdentification([ResultHandler]) Объект CashMaticRequest, или объект CashMaticCashDeviceIdentification Метод Опрос идентификации купюроприёмника (см. Примеры опроса идентификации купюроприёмника).
Если указан параметр ResultHandler (объект, поддерживающий интерфейс CashMaticResultHandler), то опрос выполняется асинхронным запросом (метод возвращает объект CashMaticRequest, по готовности результата вызывается метод HandleResult обработчика результата запроса, указанного параметром ResultHandler, результатом, передаваемым через свойство Data объекта CashMaticResult, является объект CashMaticCashDeviceIdentification(•).
Если параметр ResultHandler не указан, то опрос идентификации выполняется непосредственно при вызове метода GetDeviceIdentification (синхронно), метод возвращает объект CashMaticCashDeviceIdentification.
Опрос идентификации в режиме приёма или проверки купюр с большой вероятностью закончится неудачей (••).
Идентификация оборудования поддерживается только для купюроприёмников, работающих по протоколу CCNET, поэтому рекомендуется перед вызовом GetDeviceIdentification получить протокол устройства через вызов метода GetDeviceProtocol.

Совместимость: поддерживается, начиная с версии 2.6.0

GetDeviceProtocol([ResultHandler]) Объект CashMaticRequest, или строка Метод Опрос протокола управления купюроприёмника (см. Примеры опроса идентификации купюроприёмника).
Если указан параметр ResultHandler (объект, поддерживающий интерфейс CashMaticResultHandler), то опрос выполняется асинхронным запросом (метод возвращает объект CashMaticRequest, по готовности результата вызывается метод HandleResult обработчика результата запроса, указанного параметром ResultHandler, результатом, передаваемым через свойство Data объекта CashMaticResult, является строка, идентифицирующая протокол управления купюроприёмника (•).
Если параметр ResultHandler не указан, то опрос протокола выполняется непосредственно при вызове метода GetDeviceProtocol (синхронно), метод возвращает строку, идентифицирующую протокол управления купюроприёмника.
Настройка протокола управления купюроприёмника выполняется в Панели управления NDemia CashMatic, на вкладке "Купюроприёмник".
Поддерживаются следующие идентификаторы протоколов:
    "CCNET" - купюроприёмники производства CashCode (http://cashcode.com);
    "ICT004" - купюроприёмники производства International Currency Technologies (http://www.ictgroup.com.tw).

Совместимость: поддерживается, начиная с версии 2.6.0

ResetDevice() Пустой Метод Командный (программный) сброс купюроприёмника. Может использоваться как дополнительная мера при попытке восстановления работоспособности со страницы неисправности.

(•) результат асинхронного вызова рассматривается как положительный, только если код результата (свойство Code объекта CashMaticResult) имеет нулевое значение, иначе остальные свойства CashMaticResult не рассматриваются. Другие возможные значения для кода результата:
  • 1 — таймаут, данные не получены за отведённое для этого время;
  • 2 — оффлайн, нет связи с купюроприёмником;
  • 4 — отмена, запрос прерван (например, из-за завершения работы терминала).
(••) если во время опроса идентификации устройства выполняется активный сеанс приёма или проверки купюры, то идентификация купюроприёмника будет получена по окончании сеанса приёма или проверки купюры. Ожидание данных ограничено таймаутом (по умолчанию 5 секунд) — если за это время активный сеанс не завершится, то опрос идентификации закончится неудачей (см. Примеры опроса идентификации купюроприёмника).
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com