SDK Readers 1.0.1
SDK для связи со считывателями Iron logic
Инициализация, версия и коды ошибок.

Функции и типы, связанные с инициализацией и обработкой ошибок. Подробнее...

Классы

struct  ilr_options
 Настройки библиотеки. Подробнее...
 

Определения типов

typedef void(ILR_CALLilr_logging_callback) (ilr_log_level nLevel, const char *pContext, const char *pMessage, void *pUserData)
 Тип функции обратного вызова для получения сообщений лога отладки библиотеки. Подробнее...
 

Функции

ILR_API uint32_t ILR_CALL ilr_get_version ()
 Возвращает номер версии библиотеки. Подробнее...
 
ILR_API const char *ILR_CALL ilr_get_error_text (ilr_status nErrorCode)
 Возвращает описание ошибки по её коду. Подробнее...
 
ILR_API ilr_status ILR_CALL ilr_set_log_level (ilr_log_level nLevel)
 Устанавливает уровень лога отладки. Подробнее...
 
ILR_API ilr_status ILR_CALL ilr_set_log_callback (ilr_logging_callback pCallback, void *pUserData=nullptr)
 Устанавливает функцию обратного вызова для лога отладки. Подробнее...
 
bool ilr_check_version ()
 Проверяет версию SDK. Подробнее...
 
ILR_API ilr_status ILR_CALL ilr_init (uint32_t nVersionRequested=ILR_VERSION)
 Инициализирует библиотеку SDK Readers. Подробнее...
 
ILR_API ilr_status ILR_CALL ilr_cleanup ()
 Освобождает ресурсы библиотеки. Подробнее...
 
ILR_API ilr_status ILR_CALL ilr_set_options (const ilr_options *pOptions)
 Устанавливает глобальные настройки библиотеки. Подробнее...
 
ILR_API ilr_status ILR_CALL ilr_get_options (ilr_options *pOptions)
 Возвращает глобальные настройки библиотеки. Подробнее...
 
enum  ilr_status {
  ILR_OK = 0 , ILR_E_FAIL , ILR_E_PENDING , ILR_E_BOUNDS ,
  ILR_E_NOTIMPL , ILR_E_POINTER , ILR_E_ABORT , ILR_E_HANDLE ,
  ILR_E_OUTOFMEMORY , ILR_E_INVALIDARG , ILR_E_WRONG_SDK_VERSION , ILR_E_NOT_INITIALIZED ,
  ILR_E_OUT_OF_RESOURCES , ILR_E_BUFFER_TOO_SMALL , ILR_E_BLOCKING_CALL_NOT_ALLOWED , ILR_E_PORT_NOT_EXIST ,
  ILR_E_PORT_ACCESS_DENIED , ILR_E_PORT_OPEN_FAILED , ILR_E_CONNECTION_ERROR , ILR_E_CONNECTION_DOWN ,
  ILR_E_REQUEST_TIMEOUT , ILR_E_BAD_RESPONSE , ILR_E_SCARD_ERROR , ILR_E_READER_ERROR ,
  ILR_E_NO_CARD , ILR_E_CARD_NACK , ILR_E_CARD_AUTH , ILR_E_MIFARE_ADDRESS ,
  ILR_E_MIFARE_VALUE , ILR_E_CARD_PAGE_LOCK , ILR_E_WRITE_T57 , ILR_STATUS_SIZE
}
 Коды ошибок. Подробнее...
 
#define ILR_SUCCEEDED(status)   ((status) == ILR_OK)
 Проверяет код возврата SDK на успех. Подробнее...
 
#define ILR_FAILED(status)   ((status) != ILR_OK)
 Проверяет код возврата SDK на ошибку. Подробнее...
 

Макросы версии SDK Readers.

#define ILR_VERSION_MAJOR   1
 Основной номер версии библиотеки SDK Readers. Подробнее...
 
#define ILR_VERSION_MINOR   0
 Минорный номер версии библиотеки SDK Readers. Подробнее...
 
#define ILR_VERSION_PATCH   1
 Номер патча библиотеки SDK Readers. Подробнее...
 
#define ILR_VERSION    ((ILR_VERSION_MAJOR << 24) | (ILR_VERSION_MINOR << 16) | (ILR_VERSION_PATCH << 8) | 0xC0)
 Полный номер версии библиотеки SDK Readers.
 
#define ILR_VERSION_GET_MAJOR(v)   ((v) >> 24)
 
#define ILR_VERSION_GET_MINOR(v)   (((v) >> 16) & 0xff)
 
#define ILR_VERSION_GET_PATCH(v)   (((v) >> 8) & 0xff)
 

Подробное описание

Функции и типы, связанные с инициализацией и обработкой ошибок.

Ссылки на инфо о инициализации и завершении библиотеки, проверке версии и обработке ошибок.

Макросы

◆ ILR_FAILED

#define ILR_FAILED (   status)    ((status) != ILR_OK)

Проверяет код возврата SDK на ошибку.

Аргументы
[in]statusКод возврата.

◆ ILR_SUCCEEDED

#define ILR_SUCCEEDED (   status)    ((status) == ILR_OK)

Проверяет код возврата SDK на успех.

Аргументы
[in]statusКод возврата.
Примеры
auto_read_card/main.cpp.

◆ ILR_VERSION_GET_MAJOR

#define ILR_VERSION_GET_MAJOR (   v)    ((v) >> 24)

Извлекает основной номер из полной версии.

◆ ILR_VERSION_GET_MINOR

#define ILR_VERSION_GET_MINOR (   v)    (((v) >> 16) & 0xff)

Извлекает минорный номер из полной версии.

◆ ILR_VERSION_GET_PATCH

#define ILR_VERSION_GET_PATCH (   v)    (((v) >> 8) & 0xff)

Извлекает номер патча из полной версии.

◆ ILR_VERSION_MAJOR

#define ILR_VERSION_MAJOR   1

Основной номер версии библиотеки SDK Readers.

Увеличивается, когда API становится не совместимым с предыдущими версиями.

◆ ILR_VERSION_MINOR

#define ILR_VERSION_MINOR   0

Минорный номер версии библиотеки SDK Readers.

Увеличивается, когда в API добавляются новые возможности, но при этом сохраняется обратная совместимость.

◆ ILR_VERSION_PATCH

#define ILR_VERSION_PATCH   1

Номер патча библиотеки SDK Readers.

Увеличивается, когда выпускается исправление ошибки, не содержащее никаких изменений в API.

Типы

◆ ilr_logging_callback

typedef void(ILR_CALL * ilr_logging_callback) (ilr_log_level nLevel, const char *pContext, const char *pMessage, void *pUserData)

Тип функции обратного вызова для получения сообщений лога отладки библиотеки.

Функция имеет следующий вид:

void logging_callback(ilr_log_level level, const char *pContext, const char *pMessage, void
*pUserData)
ilr_log_level
Уровень лога.
Definition: ilreaders.h:319
Аргументы
[in]nLevelУровень лога.
[in]pContextКонтекст.
[in]pMessageТекст сообщения.
[in]pUserDataУказатель на данные пользователя.

Перечисления

◆ ilr_status

enum ilr_status

Коды ошибок.

Элементы перечислений
ILR_OK 

Операция успешно выполнена.

ILR_E_FAIL 

Неизвестная ошибка.

ILR_E_PENDING 

Операция выполняется асинхронно.

ILR_E_BOUNDS 

Индекс вне диапазона.

ILR_E_NOTIMPL 

Команда не поддерживается считывателем.

ILR_E_POINTER 

Неправильный указатель.

ILR_E_ABORT 

Операция прервана.

ILR_E_HANDLE 

Неправильный дескриптор.

ILR_E_OUTOFMEMORY 

Недостаточно памяти.

ILR_E_INVALIDARG 

Неправильные параметры.

ILR_E_WRONG_SDK_VERSION 

Неправильная версия Sdk Readers передана в функцию ilr_init.

ILR_E_NOT_INITIALIZED 

Библиотека не инициализирована с помощью ilr_init.

ILR_E_OUT_OF_RESOURCES 

Недостаточно ресурсов для завершения операции.

ILR_E_BUFFER_TOO_SMALL 

Размер буфера слишком мал

ILR_E_BLOCKING_CALL_NOT_ALLOWED 

Блокирующий вызов функции из обработчика не разрешен.

ILR_E_PORT_NOT_EXIST 

Порт не существует.

ILR_E_PORT_ACCESS_DENIED 

Нет доступа к порту.

ILR_E_PORT_OPEN_FAILED 

Неизвестная ошибка открытия порта.

ILR_E_CONNECTION_ERROR 

Ошибка подключения.

ILR_E_CONNECTION_DOWN 

Связь с устройством была потеряна.

ILR_E_REQUEST_TIMEOUT 

Тайм-аут запроса к считывателю.

ILR_E_BAD_RESPONSE 

Не распознан ответ считывателя.

ILR_E_SCARD_ERROR 

Ошибка функции Smart Cards.

ILR_E_READER_ERROR 

Ошибка считывателя.

ILR_E_NO_CARD 

Нет карты.

ILR_E_CARD_NACK 

Карта отказала от выполнения команды.

ILR_E_CARD_AUTH 

Ошибка авторизации карты.

ILR_E_MIFARE_ADDRESS 

Неправильный адрес Mifare.

ILR_E_MIFARE_VALUE 

Ошибка блока-значения Mifare.

ILR_E_CARD_PAGE_LOCK 

Страница карты заблокирована.

ILR_E_WRITE_T57 

Не удалось записать на Temic.

ILR_STATUS_SIZE 

Размер списка ошибок.

Функции

◆ ilr_check_version()

bool ilr_check_version ( )
inline

Проверяет версию SDK.

Возвращает true если версия библиотеки совместима с этим заголовочным файлом.

◆ ilr_cleanup()

ILR_API ilr_status ILR_CALL ilr_cleanup ( )

Освобождает ресурсы библиотеки.

Освобождает память и закрывает все дескрипторы библиотеки.

Предупреждения
Эта функция не потокобезопасна. Её нельзя вызывать одновременно с функциями, которым требуется инициализация библиотеки. Её нельзя вызывать из функции обратного вызова.
Возвращает
Всегда код успеха ILR_OK.
См. также
ilr_init

◆ ilr_get_error_text()

ILR_API const char *ILR_CALL ilr_get_error_text ( ilr_status  nErrorCode)

Возвращает описание ошибки по её коду.

Прим.
Эта функция не требует инициализации библиотеки функцией ilr_init.
Аргументы
[in]nErrorCodeКод ошибки.
Примеры
auto_read_card/main.cpp.

◆ ilr_get_options()

ILR_API ilr_status ILR_CALL ilr_get_options ( ilr_options pOptions)

Возвращает глобальные настройки библиотеки.

Аргументы
[out]pOptionsОпции библиотеки.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_get_version()

ILR_API uint32_t ILR_CALL ilr_get_version ( )

Возвращает номер версии библиотеки.

Прим.
Эта функция не требует инициализации библиотеки функцией ilr_init.

◆ ilr_init()

ILR_API ilr_status ILR_CALL ilr_init ( uint32_t  nVersionRequested = ILR_VERSION)

Инициализирует библиотеку SDK Readers.

Эта функция инициализирует библиотеку SDK Readers. Функция ilr_init должна быть вызвана первой перед вызовом других функций, кроме ilr_get_version, ilr_get_error_text, ilr_set_log_level, ilr_set_log_callback и ilr_free_memory. Завершив использование библиотеки приложение должно вызвать ilr_cleanup, чтобы библиотека освободила внутренние ресурсы. Приложение должно вызвать ilr_cleanup при каждом успешном вызове ilr_init, т.к. используется внутренний счётчик инициализаций.

Прим.
Эта функция сама проверяет версию SDK, поэтому вызывать ilr_check_version не нужно.
Аргументы
[in]nVersionRequestedНомер версии API SDK Readers, всегда должно быть равен ILR_VERSION.
Возвращает
ILR_OK в случае успеха, иначе код ошибки.
Возвращаемые значения
`ILR_E_WRONG_SDK_VERSION`запрошенная версия SDK не поддерживается.
См. также
ilr_cleanup

◆ ilr_set_log_callback()

ILR_API ilr_status ILR_CALL ilr_set_log_callback ( ilr_logging_callback  pCallback,
void *  pUserData = nullptr 
)

Устанавливает функцию обратного вызова для лога отладки.

Прим.
Эта функция не требует инициализации библиотеки функцией ilr_init.
Аргументы
[in]pCallbackУказатель на функцию, которую библиотека будет вызывать для передачи сообщений лога отладки.
[in]pUserDataУказатель на данные пользователя, который будет передаваться в функцию.
Предупреждения
Не позволяйте исключениям выйти из callback-функции, оберните код в try catch. Нельзя из callback-функции вызывать функции, которые ждут выполнение команды в потоке, из которого вызвана эта callback-функция, иначе вернёт ошибку ILR_E_BLOCKING_CALL_NOT_ALLOWED.
Возвращает
Всегда код успеха ILR_OK.

◆ ilr_set_log_level()

ILR_API ilr_status ILR_CALL ilr_set_log_level ( ilr_log_level  nLevel)

Устанавливает уровень лога отладки.

Прим.
Эта функция не требует инициализации библиотеки функцией ilr_init.
Аргументы
[in]nLevelУровень лога отладка.
Возвращает
Всегда код успеха ILR_OK.

◆ ilr_set_options()

ILR_API ilr_status ILR_CALL ilr_set_options ( const ilr_options pOptions)

Устанавливает глобальные настройки библиотеки.

Аргументы
[in]pOptionsОпции библиотеки.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.