Methods_Common_ecr - shtrih-m/fr_drv_ng GitHub Wiki
Общие методы работы с фискальными регистраторами(ФР): связь, состояние, модель, прогон, ДЯ, гудок, сброс
Связь с ФР
| Members | Descriptions |
|---|---|
public int Connect() |
Установить связь |
public int Disconnect() |
Разорвать связь. |
public int FindDevice() |
Поиск устройства |
public int SetExchangeParam() |
Установить Параметры Обмена. |
public int GetExchangeParam() |
Получить параметры обмена. |
Состояние ФР
| Members | Descriptions |
|---|---|
public int GetECRStatus() |
Получить состояние ККМ. |
public int GetShortECRStatus() |
Получить короткий запрос состояния ККМ. |
Модель ФР
| Members | Descriptions |
|---|---|
public int GetDeviceMetrics() |
Получить параметры устройства. |
public int ReadModelParamDescription() |
Прочитать описание параметра модели |
public int ReadModelParamValue() |
Прочитать параметр модели |
Тестовый прогон
| Members | Descriptions |
|---|---|
public int Test() |
Тестовый прогон. |
public int InterruptTest() |
Прервать тестовый прогон. |
Денежный ящик
| Members | Descriptions |
|---|---|
public int OpenDrawer() |
Открыть денежный ящик. |
public int ReadCashDrawerSum() |
Получить сумму денег в денежном ящике |
Описание ошибки ФР
| Members | Descriptions |
|---|---|
public int ClearResult() |
Очистить код ошибки |
public int ReadErrorDescription() |
Получить описание ошибки |
public int ReadLastErrorDescription() |
Получить описание последней ошибки |
Другие методы
| Members   | Descriptions |
|---|---|
public int Beep() |
Гудок. |
public int ExchangeBytes() |
Метод посылает последовательность байтов от хоста в ККТ и получает ответ. |
public int OFDExchange() |
Выполнить единичный обмен с ОФД средствами драйвера(EoD) |
public int RebootKKT() |
Перезагрузить ККТ. |
public int ResetECR() |
Сброс ККМ |
public int WaitForPrinting() |
Ожидать завершения печати. |
Members
public int Beep()
Гудок.
Выдача звукового сигнала на ККМ.
Метод может вызываться в любом режиме. Не меняет режима ККМ.
Используемые свойства:
- Password - пароль оператора.
Модифицируемые свойства:
- OperatorNumber - порядковый номер оператора, чей пароль был использован.
Returns
Код ошибки
public int ClearResult()
Очистить код ошибки
Устанавливает значения свойств ResultCode и ResultCodeDescription в 0 и "Ошибок нет"
Returns
Код ошибки
public int Connect()
Установить связь
Используемые свойства:
-
Password - пароль оператора,
-
ComNumber - номер Com-порта ПК к которому подсоединена ККМ (0 – порт 1),
-
BaudRate - скорость обмена между ККМ и подключенным к ней устройством,
-
Timeout - таймаут приема байта,
-
ComputerName - имя компьютера, к которому подключена ККТ,
-
ProtocolType - тип протокола,
-
ConnectionType -тип подключения,
-
TCPPort - TCP порт ККТ,
-
IPAddress - IP адрес,
-
UseIPAddress - использовать при подключении IPAddress или ComputerName.
Returns
Код ошибки
public int Disconnect()
Разорвать связь.
Освобождает COM-порт ПК, занятый под драйвер методом Connect.
Returns
Код ошибки
public int ExchangeBytes()
Метод посылает последовательность байтов от хоста в ККТ и получает ответ.
Посылает последовательность по текущему транспортному слою
Метод может вызываться в любой момент времени
Используемые свойства:
- TransferBytes - Последовательность байтов, посылаемая от хоста в ККТ.
Модифицируемые свойства:
- TransferBytes - ответ ККТ
Returns
Код ошибки
public int FindDevice()
Поиск устройства
Ищет устройство в зависимости от свойства ConnectionType если #TConnectionType::Tcp - слушает широковещательную рассылку от ККТ в сети. Иначе пытается установить соединение по протоколу ФР со всеми COM/tty портами в системе
Используемые свойства:
Модифицируемые свойства:
-
ConnectionURI - URI обнаруженного устройства
-
IPAddress - IP адрес обнаруженного устройства
-
ComputerName - IP адрес обнаруженного устройства
-
TCPPort - TCP порт обнаруженного устройства
-
ComNumber - индекс COM порта в системе
-
BaudRate - скорость соединения по COM
public int GetDeviceMetrics()
Получить параметры устройства.
Запрашивает технические параметры устройства.
Метод может вызываться в любом режиме. Не меняет режима ККМ.
Модифицируемые свойства:
-
UMajorProtocolVersion - версия протокола связи с ПК, используемая устройством,
-
UMinorProtocolVersion - подверсия протокола связи с ПК, используемая устройством,
-
UMajorType - тип запрашиваемого устройства,
-
UMinorType - подтип запрашиваемого устройства,
-
UModel - модель запрашиваемого устройства,
-
UCodePage - кодовая страница, используемая устройством,
-
UDescription - название устройства,
-
CapGetShortECRStatus - команда GetShortECRStatus поддерживается.
Returns
Код ошибки
public int GetECRStatus()
Получить состояние ККМ.
Метод запрашивает состояние ККМ.
Метод может вызываться в любом режиме, кроме режима 1. Не меняет режима ККМ.
Используемые свойства:
- Password - пароль оператора.
Модифицируемые свойства:
-
OperatorNumber - порядковый номер оператора, чей пароль был использован,
-
ECRSoftVersion - версия внутреннего программного обеспечения ККМ,
-
ECRBuild - номер сборки ПО ККМ,
-
ECRSoftDate - дата внутреннего программного обеспечения ККМ,
-
LogicalNumber - логический номер ККМ в торговом зале,
-
OpenDocumentNumber - сквозной номер последнего документа ККМ,
-
ECRFlags - флаги ККМ,
-
ReceiptRibbonIsPresent - рулон чековой ленты есть,
-
JournalRibbonIsPresent - рулон операционного журнала есть,
-
SKNOStatus - последний статус СКНО (Для белорусских ККТ),
-
SlipDocumentIsPresent - подкладной документ есть,
-
SlipDocumentIsMoving - подкладной документ проходит под датчиком,
-
PointPosition - признак положения десятичной точки,
-
EKLZIsPresent - ЭКЛЗ есть,
-
JournalRibbonOpticalSensor - лента операционного журнала проходит под оптическим датчиком,
-
ReceiptRibbonOpticalSensor – чековая лента проходит под оптическим датчиком,
-
JournalRibbonLever - рычаг термоголовки операционного журнала опущен,
-
ReceiptRibbonLever - рычаг термоголовки чековой ленты опущен,
-
LidPositionSensor – крышка корпуса не установлена,
-
IsPrinterLeftSensorFailure – отказ левого датчика печатающего механизма,
-
IsPrinterRightSensorFailure – отказ правого датчика печатающего механизма,
-
PresenterIn – на входе накопителя есть бумага,
-
PresenterOut – на выходе накопителя есть бумага,
-
IsDrawerOpen – денежный ящик открыт,
-
IsEKLZOverflow – ЭКЛЗ близка к переполнению,
-
QuantityPointPosition - 3 знака после запятой,
-
ECRMode - режим ККМ,
-
ECRModeDescription - описание режима ККМ,
-
ECRMode8Status - одно из состояний, когда ККМ находится в режиме 8,
-
ECRModeStatus - одно из состояний, когда ККМ находится в режимах 13 и 14,
-
ECRAdvancedMode подрежим ККМ,
-
ECRAdvancedModeDescription - описание подрежима ККМ,
-
PortNumber - порт ККМ, через который она подключена к ПК,
-
FMSoftVersion - версия внутреннего программного обеспечения ФП ККМ,
-
FMBuild - номер сборки ПО ФП ККМ,
-
FMSoftDate - дата внутреннего программного обеспечения ККМ,
-
Date - внутренняя дата ККМ,
-
Time - внутреннее время ККМ,
-
TimeStr - строковое представление свойства Time
-
FMFlags - флаги ФП ККМ,
-
FM1IsPresent – ФП1 есть,
-
FM2IsPresent – ФП2 есть,
-
LicenseIsPresent – лицензия введена,
-
FMOverflow – переполнение ФП,
-
IsBatteryLow – напряжение на батарее пониженное,
-
IsLastFMRecordCorrupted – последняя запись в ФП испорчена,
-
IsFMSessionOpen – смена в ФП открыта,
-
IsFM24HoursOver – 24 часа в ФП истекли,
-
SerialNumber - серийный номер ККМ,
-
SessionNumber - номер последней закрытой на ККМ смены,
-
FreeRecordInFM - количество свободных записей в ФП,
-
RegistrationNumber - количество перерегистраций(фискализаций), проведенных на ККМ,
-
FreeRegistration - количество оставшихся перерегистраций(фискализаций), которые можно произвести на ККМ,
-
INN - идентификационный номер налогоплательщика.
Returns
Код ошибки
public int GetExchangeParam()
Получить параметры обмена.
Метод запрашивает параметры порта ККМ (скорость обмена, таймаут приёма байта).
Метод может вызываться в любом режиме.Не меняет режима ККМ.
Используемые свойства:
-
Password - пароль для исполнения метода драйвера,
-
PortNumber - порт ККМ, через который она подключена к ПК.
Модифицируемые свойства:
-
OperatorNumber - порядковый номер оператора, чей пароль был использован.
-
BaudRate - cкорость обмена между ККМ и подключенным к ней устройством (соответствие между кодом скорости и её значением смотри в описании свойства),
-
Timeout - тайм-аут приема байта.
Returns
Код ошибки
public int GetShortECRStatus()
Получить короткий запрос состояния ККМ.
Метод запрашивает состояние ККМ.
Метод может вызываться в любом режиме, кроме режима 1. Не меняет режима ККМ.
Используемые свойства:
- Password - пароль оператора.
Модифицируемые свойства:
-
OperatorNumber - порядковый номер оператора, чей пароль был использован,
-
ECRFlags флаги ККМ,
-
ReceiptRibbonIsPresent - рулон чековой ленты есть,
-
JournalRibbonIsPresent - рулон операционного журнала есть,
-
SKNOStatus - последний статус СКНО (Для белорусских ККТ),
-
SlipDocumentIsPresent - подкладной документ есть,
-
SlipDocumentIsMoving - подкладной документ проходит под датчиком,
-
PointPosition - признак положения десятичной точки,
-
EKLZIsPresent - ЭКЛЗ есть,
-
JournalRibbonOpticalSensor - лента операционного журнала проходит под оптическим датчиком,
-
ReceiptRibbonOpticalSensor – чековая лента проходит под оптическим датчиком,
-
JournalRibbonLever - рычаг термоголовки операционного журнала опущен,
-
ReceiptRibbonLever - рычаг термоголовки чековой ленты опущен,
-
LidPositionSensor – крышка корпуса не установлена,
-
IsPrinterLeftSensorFailure – отказ левого датчика печатающего механизма,
-
IsPrinterRightSensorFailure – отказ правого датчика печатающего механизма,
-
PresenterIn – на входе накопителя есть бумага,
-
PresenterOut – на выходе накопителя есть бумага,
-
IsDrawerOpen – денежный ящик открыт,
-
IsEKLZOverflow – ЭКЛЗ близка к переполнению,
-
QuantityPointPosition - 3 знака после запятой,
-
ECRMode - режим ККМ,
-
ECRModeDescription - описание режима ККМ,
-
ECRMode8Status - одно из состояний, когда ККМ находится в режиме 8,
-
ECRModeStatus - одно из состояний, когда ККМ находится в режимах 13 и 14,
-
ECRAdvancedMode - подрежим ККМ,
-
ECRAdvancedModeDescription - описание подрежима ККМ,
-
QuantityOfOperations - количество выполненных операций регистрации в чеке,
-
BatteryVoltage - напряжение резервной батареи,
-
PowerSourceVoltage - напряжение источника питания,
-
FMResultCode - код ошибки ФП,
-
EKLZResultCode - код ошибки ЭКЛЗ.
Returns
Код ошибки
public int InterruptTest()
Прервать тестовый прогон.
Прерывает тестовый прогон ККМ.
- Переводит ККМ в режим, в котором она была до подачи команды Test.
Используемые свойства:
- Password - пароль оператора.
Модифицируемые свойства:
- OperatorNumber - порядковый номер оператора, чей пароль был использован.
Returns
Код ошибки
public int OFDExchange()
Выполнить единичный обмен с ОФД средствами драйвера(EoD)
Работает только с онлайн-кассами.
Работает во всех режимах. Не меняет режима ККМ.
Используемые свойства:
Returns
Код ошибки
public int OpenDrawer()
Открыть денежный ящик.
Команда открывает обозначенный денежный ящик.
Любой. Не меняет режима ККМ.
Используемые свойства:
-
Password - пароль оператора,
-
DrawerNumber - номер денежного ящика.
Модифицируемые свойства:
- OperatorNumber - порядковый номер оператора, чей пароль был использован.
Returns
Код ошибки
public int ReadCashDrawerSum()
Получить сумму денег в денежном ящике
Позволяет получить сумму денег в денежном ящике
Метод может вызываться в любом режиме. Не меняет режима ККМ.
Используемые свойства:
- Password - пароль пользователя.
Модифицируемые свойства:
-
OperatorNumber - порядковый номер оператора, чей пароль был использован,
-
Summ1 - сумма денег в денежном ящике.
Returns
Код ошибки
public int ReadErrorDescription()
Получить описание ошибки
Используемые свойства:
- ErrorCode - код ошибки
Модифицируемые свойства:
- ErrorDescription - текстовое описание ошибки
Returns
Код ошибки
public int ReadLastErrorDescription()
Получить описание последней ошибки
Модифицируемые свойства:
- ErrorDescription - текстовое описание ошибки
Поддерживается не всеми моделями
Returns
Код ошибки
public int ReadModelParamDescription()
Прочитать описание параметра модели
Используемые свойства:
- ModelParamNumber - Номер параметра модели.
Модифицируемые свойства:
- ModelParamDescription - Описание параметра модели.
Returns
Код ошибки
public int ReadModelParamValue()
Прочитать параметр модели.
Метод записывает значение параметра ModelParamNumber модели ККТ в свойство ModelParamValue.
Используемые свойства:
- ModelParamNumber - Номер параметра модели.
Модифицируемые свойства:
- ModelParamValue - Значение параметра модели.
Returns
Код ошибки
public int RebootKKT()
Перезагрузить ККТ.
Перезагружает ККТ
Returns
Код ошибки
public int ResetECR()
Сброс ККМ.
Метод выполняет следующую последовательность действий
-
Выполняет команду ожидания печати (WaitForPrinting).
-
Запрашивает состояние ККТ и анализирует режим ККТ. Далее приведены значения режимов и действия программы:
| Режим | Действие | Название команды |
|---|---|---|
| 1 (Выдача данных) | Прерывает выдачу данных | InterruptDataStream |
| 6 (Ожидание подтверждения вводе даты) | Подтверждает дату | ConfirmDate |
| 8 (Открытый документ) | Отменяет чек | CancelCheck |
| 10 (Тестовый прогон) | Прерывает тестовый прогон | InterruptTest |
| 11, 12, 14 | Ничего не делает | |
| Другие значения режима ККТ | Выход из метода |
-
В случае возникновения ошибки возвращает значение -35. Устанавливает значения свойств: ResultCode = -35, ResultCodeDescription = «Не удалось сбросить ККМ».
-
Если цикл повторился менее или равно 10 раз, возвращается к пункту 1)
Используемые свойства:
- Password - пароль оператора.
Returns
Код ошибки
public int SetExchangeParam()
Установить Параметры Обмена.
Метод устанавливает новые параметры связи ККМ с ПК.
Метод может вызываться в любом режиме.Не меняет режима ККМ.
Используемые свойства:
-
Password - пароль для исполнения метода драйвера,
-
PortNumber - порт ККМ, через который она подключена к ПК,
-
BaudRate - cкорость обмена между ККМ и подключенным к ней устройством (соответствие между кодом скорости и её значением смотри в описании свойства),
-
Timeout - тайм-аут приема байта.
Модифицируемые свойства:
- OperatorNumber - порядковый номер оператора, чей пароль был использован.
Returns
Код ошибки
public int Test()
Тестовый прогон.
Эта команда запускает тестовый прогон ККМ, т.е. печать тестового чека через определенные промежутки времени. Прерывается тестовый прогон ККМ только командой InterruptTest.
Работает в режимах 2, 3, 4, 7, 9 и 16. Переводит ККМ или принтер в режим 10 (возврат в прежний режим – вызов метода InterruptTest).
Используемые свойства:
-
Password - пароль оператора,
-
RunningPeriod - период вывода тестового чека в минутах в режиме тестового прогона.
Модифицируемые свойства:
- OperatorNumber - порядковый номер оператора, чей пароль был использован.
Returns
Код ошибки
public int WaitForPrinting()
Ожидать завершения печати.
Метод запрашивает состояние ККТ и анализирует подрежим ККТ. В случае отсутствия связи запрос состояния повторяется до истечения времени, заданного в свойстве ConnectionTimeout. Далее приведены значения подрежимов и действия программы:
| Подрежим | Действие |
|---|---|
| 0 - Бумага есть. | Выход из метода. |
| 1 - Пассивное отсутствие бумаги. | Выдает ошибку -34: "Нет бумаги" |
| 2 - Активное отсутствие бумаги. | Выдает ошибку -34: "Нет бумаги" |
| 3 - После активного отсутствия бумаги. | ККТ ждет команду продолжения печати.Подает команду продолжения печати и возвращается в цикл. |
| 4 - Фаза печати операции полных фискальных отчетов. | Выполняет задержку, указанную в свойстве WaitForPrintingDelay и возвращается в цикл. |
| 5 - Фаза печати операции. | Выполняет задержку, указанную в свойстве WaitForPrintingDelay и возвращается в цикл. |
| Другие значения подрежима ФР | Выход из метода. |
Используемые свойства:
-
Password - пароль системного администратора,
-
WaitForPrintingDelay - задержка ожидания печати,
-
ConnectionTimeout - таймаут подключения.
Returns
Код ошибки