30#ifndef ILREADERS_H_INCLUDED
31#define ILREADERS_H_INCLUDED
38#ifndef ILREADERS_LINKONREQUEST
41#elif defined(_WIN32) || defined(__CYGWIN__)
42#ifdef ILREADERS_EXPORTS
43#define ILR_API __declspec(dllexport)
45#define ILR_API __declspec(dllimport)
53#if defined(_WIN32) || defined(__CYGWIN__)
54#define ILR_CALL WINAPI
67#define ILR_VERSION_MAJOR 1
75#define ILR_VERSION_MINOR 0
83#define ILR_VERSION_PATCH 1
89 ((ILR_VERSION_MAJOR << 24) | (ILR_VERSION_MINOR << 16) | (ILR_VERSION_PATCH << 8) | 0xC0)
92#define ILR_VERSION_GET_MAJOR(v) ((v) >> 24)
94#define ILR_VERSION_GET_MINOR(v) (((v) >> 16) & 0xff)
96#define ILR_VERSION_GET_PATCH(v) (((v) >> 8) & 0xff)
105#define ILR_AUTOALLOCATE 0xffffffff
194#define ILR_SUCCEEDED(status) ((status) == ILR_OK)
202#define ILR_FAILED(status) ((status) != ILR_OK)
371 const char* pMessage,
void* pUserData);
404 const char* pszPortName,
void* pUserData);
451typedef enum : uint32_t {
543 ILR_CONNECTION_DISCONNECTED,
570typedef enum : int8_t {
582typedef enum : uint8_t {
640typedef enum : uint32_t {
651#define MAKE_TEMIC_SCAN_PARAM(type, speed) (int)(((uint)((speed)&0xff) << 8) | ((type)&0xff))
653#define TYPE_FROM_TEMIC_SCAN_PARAM(param) (uint8_t)((param)&0xff)
655#define SPEED_FROM_TEMIC_SCAN_PARAM(param) (uint8_t)(((uint)(param) >> 8) & 0xff)
680#ifndef ILREADERS_LINKONREQUEST
732 void* pUserData =
nullptr);
828 void* pUserData =
nullptr);
905 void* pUserData =
nullptr);
945 const void** pMsgData,
ilr_bool* pFound);
1174 const char* pszPortName,
1203 const char* pszPortName,
int hPort);
1217 const char* pszPortName,
int hPortFD,
1240 void* pUserData =
nullptr);
1280 const void** pMsgData,
ilr_bool* pFound);
1494 uint32_t* pBuf,
size_t nPageCount,
1495 size_t* pRead =
nullptr);
1526 const uint32_t** ppList,
1545 const uint32_t* pData,
size_t nPageCount,
1546 size_t* pWritten =
nullptr);
1563 const uint32_t* pData,
1670 ilr_bool fKeyB, uint32_t nKeys = 0xFFFF,
1671 int* pFoundIdx =
nullptr);
1720 size_t* pRead =
nullptr);
1772 size_t* pWritten =
nullptr);
1823 size_t* pRead =
nullptr);
1839 size_t nBlockCount,
ilr_bool fOpenText,
1878 size_t* pWritten =
nullptr);
1896 size_t nBlockCount,
ilr_bool fOpenText,
2063 uint16_t* pATQ, ilr_card_uid* pUID,
ilr_bool* pFound);
2080 const ilr_card_uid& rUID,
ilr_bool* pFound);
2109 size_t* pSize =
nullptr);
2159 size_t* pWritten =
nullptr);
2211 size_t nCount,
size_t* pWritten =
nullptr);
2256 const int64_t& nPassword);
2331 uint32_t* pBuf,
size_t nBlockCount,
2332 int nScanParam = -1,
size_t* pRead =
nullptr);
2348 size_t nBlockCount,
int nScanParam,
2384 const uint32_t* pData,
size_t nBlockCount,
2386 size_t* pWritten =
nullptr);
2404 const uint32_t* pData,
size_t nBlockCount,
2469 size_t nBlockCount);
2497 size_t nBlockCount,
int nWiegand);
2511 ilr_card_uid* pUID,
int* pWiegand,
ILR_API ilr_status ILR_CALL ilr_set_options(const ilr_options *pOptions)
Устанавливает глобальные настройки библиотеки.
#define ILR_VERSION_MAJOR
Основной номер версии библиотеки SDK Readers.
Definition: ilreaders.h:67
ILR_API const char *ILR_CALL ilr_get_error_text(ilr_status nErrorCode)
Возвращает описание ошибки по её коду.
#define ILR_VERSION_MINOR
Минорный номер версии библиотеки SDK Readers.
Definition: ilreaders.h:75
bool ilr_check_version()
Проверяет версию SDK.
Definition: ilreaders.h:753
ILR_API ilr_status ILR_CALL ilr_cleanup()
Освобождает ресурсы библиотеки.
ILR_API ilr_status ILR_CALL ilr_set_log_level(ilr_log_level nLevel)
Устанавливает уровень лога отладки.
#define ILR_VERSION
Полный номер версии библиотеки SDK Readers.
Definition: ilreaders.h:88
ILR_API ilr_status ILR_CALL ilr_init(uint32_t nVersionRequested=ILR_VERSION)
Инициализирует библиотеку SDK Readers.
ILR_API uint32_t ILR_CALL ilr_get_version()
Возвращает номер версии библиотеки.
ILR_API ilr_status ILR_CALL ilr_get_options(ilr_options *pOptions)
Возвращает глобальные настройки библиотеки.
void(ILR_CALL * ilr_logging_callback)(ilr_log_level nLevel, const char *pContext, const char *pMessage, void *pUserData)
Тип функции обратного вызова для получения сообщений лога отладки библиотеки.
Definition: ilreaders.h:370
ilr_status
Коды ошибок.
Definition: ilreaders.h:121
ILR_API ilr_status ILR_CALL ilr_set_log_callback(ilr_logging_callback pCallback, void *pUserData=nullptr)
Устанавливает функцию обратного вызова для лога отладки.
@ ILR_E_WRITE_T57
Не удалось записать на Temic.
Definition: ilreaders.h:183
@ ILR_E_NOT_INITIALIZED
Библиотека не инициализирована с помощью ilr_init.
Definition: ilreaders.h:145
@ ILR_E_ABORT
Операция прервана.
Definition: ilreaders.h:135
@ ILR_E_PORT_OPEN_FAILED
Неизвестная ошибка открытия порта.
Definition: ilreaders.h:157
@ ILR_E_OUT_OF_RESOURCES
Недостаточно ресурсов для завершения операции.
Definition: ilreaders.h:147
@ ILR_E_INVALIDARG
Неправильные параметры.
Definition: ilreaders.h:141
@ ILR_E_POINTER
Неправильный указатель.
Definition: ilreaders.h:133
@ ILR_E_SCARD_ERROR
Ошибка функции Smart Cards.
Definition: ilreaders.h:167
@ ILR_E_NOTIMPL
Команда не поддерживается считывателем.
Definition: ilreaders.h:131
@ ILR_E_BOUNDS
Индекс вне диапазона.
Definition: ilreaders.h:129
@ ILR_E_BLOCKING_CALL_NOT_ALLOWED
Блокирующий вызов функции из обработчика не разрешен.
Definition: ilreaders.h:151
@ ILR_E_CONNECTION_DOWN
Связь с устройством была потеряна.
Definition: ilreaders.h:161
@ ILR_E_CARD_NACK
Карта отказала от выполнения команды.
Definition: ilreaders.h:173
@ ILR_E_CARD_PAGE_LOCK
Страница карты заблокирована.
Definition: ilreaders.h:181
@ ILR_E_REQUEST_TIMEOUT
Тайм-аут запроса к считывателю.
Definition: ilreaders.h:163
@ ILR_E_CONNECTION_ERROR
Ошибка подключения.
Definition: ilreaders.h:159
@ ILR_E_BAD_RESPONSE
Не распознан ответ считывателя.
Definition: ilreaders.h:165
@ ILR_E_BUFFER_TOO_SMALL
Размер буфера слишком мал
Definition: ilreaders.h:149
@ ILR_E_NO_CARD
Нет карты.
Definition: ilreaders.h:171
@ ILR_STATUS_SIZE
Размер списка ошибок.
Definition: ilreaders.h:185
@ ILR_OK
Операция успешно выполнена.
Definition: ilreaders.h:123
@ ILR_E_READER_ERROR
Ошибка считывателя.
Definition: ilreaders.h:169
@ ILR_E_PENDING
Операция выполняется асинхронно.
Definition: ilreaders.h:127
@ ILR_E_PORT_NOT_EXIST
Порт не существует.
Definition: ilreaders.h:153
@ ILR_E_MIFARE_VALUE
Ошибка блока-значения Mifare.
Definition: ilreaders.h:179
@ ILR_E_OUTOFMEMORY
Недостаточно памяти.
Definition: ilreaders.h:139
@ ILR_E_PORT_ACCESS_DENIED
Нет доступа к порту.
Definition: ilreaders.h:155
@ ILR_E_CARD_AUTH
Ошибка авторизации карты.
Definition: ilreaders.h:175
@ ILR_E_MIFARE_ADDRESS
Неправильный адрес Mifare.
Definition: ilreaders.h:177
@ ILR_E_WRONG_SDK_VERSION
Неправильная версия Sdk Readers передана в функцию ilr_init.
Definition: ilreaders.h:143
@ ILR_E_FAIL
Неизвестная ошибка.
Definition: ilreaders.h:125
@ ILR_E_HANDLE
Неправильный дескриптор.
Definition: ilreaders.h:137
ILR_API ilr_status ILR_CALL ilr_reader_auth_mf_card(ilr_handle hReader, size_t nAddress, ilr_bool fKeyB, ilr_bool *pAuthOk)
Авторизует сектор карты Mifare Classic/Plus.
ILR_API ilr_status ILR_CALL ilr_reader_set_auto_scan(ilr_handle hReader, ilr_bool fEnable=ILR_TRUE, ilr_bool fWait=ILR_TRUE)
Включает/выключает автоматическое сканирование карт.
ILR_API ilr_status ILR_CALL ilr_reader_read_mf_plus(ilr_handle hReader, size_t nAddress, ilr_mf_block_data *pBuf, size_t nBlockCount, ilr_bool fOpenText=ILR_TRUE, size_t *pRead=nullptr)
Читает данные карты Mifare Plus SL3.
ILR_API ilr_status ILR_CALL ilr_reader_get_auto_scan(ilr_handle hReader, ilr_bool *pEnabled)
Возвращает флаг автоматическое сканирование карт.
ILR_API ilr_status ILR_CALL ilr_reader_begin_write_temic(ilr_handle hReader, size_t nBlockIdx, const uint32_t *pData, size_t nBlockCount, ilr_bool fLock, int nScanParam, ilr_handle *pCommand)
Запускает асинхронную команду записи данных в карту Temic.
ILR_API ilr_status ILR_CALL ilr_reader_get_options(ilr_handle hReader, ilr_reader_options *pOptions)
Возвращает параметры считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_mf_power_off(ilr_handle hReader)
Выключает RF поле считывателя (после выключения нужно подождать 10 мс).
ilr_rwcard_type_flags
Флаги типов перезаписываемых карт.
Definition: ilreaders.h:640
ILR_API ilr_status ILR_CALL ilr_reader_read_mf_classic(ilr_handle hReader, size_t nBlockIdx, ilr_mf_block_data *pBuf, size_t nBlockCount, size_t *pRead=nullptr)
Читает данные карты Mifare Classic или Mifare Plus SL1.
ILR_API ilr_status ILR_CALL ilr_reader_mf_transfer(ilr_handle hReader, size_t nBlockIdx)
Записывает содержимое во временном регистре данных в блок-значение.
ILR_API ilr_status ILR_CALL ilr_reader_get_info(ilr_handle hReader, ilr_reader_info *pInfo)
Возвращает информацию о считывателе.
ILR_API ilr_status ILR_CALL ilr_reader_set_options(ilr_handle hReader, const ilr_reader_options *pOptions)
Устанавливает параметры считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_write_mf_ultralight(ilr_handle hReader, size_t nPageIdx, const uint32_t *pData, size_t nPageCount, size_t *pWritten=nullptr)
Пишет данные карты Mifare Ultralight.
ILR_API ilr_status ILR_CALL ilr_reader_begin_auth_mf_card2(ilr_handle hReader, size_t nAddress, ilr_bool fKeyB, uint32_t nKeys, ilr_handle *pCommand)
Запускает асинхронную команду авторизации сектора карты Mifare Classic / Plus. используя ключи в памя...
ILR_API ilr_status ILR_CALL ilr_reader_begin_auth_mf_card(ilr_handle hReader, size_t nAddress, ilr_bool fKeyB, ilr_handle *pCommand)
Запускает асинхронную команду авторизации сектора карты Mifare Classic / Plus используя ключ,...
ILR_API ilr_status ILR_CALL ilr_reader_begin_connect(ilr_handle hReader, ilr_bool fReconnect, ilr_handle *pCommand)
Запускает асинхронную команду подключения к считывателю.
ILR_API ilr_status ILR_CALL ilr_reader_end_auth_mf_card2(ilr_handle hCommand, int *pFoundIdx)
Возвращает результат авторизации сектора карты.
ILR_API ilr_status ILR_CALL ilr_reader_get_card_info(ilr_handle hReader, ilr_card_info *pInfo)
Возвращает информацию о карте в поле считывателя.
ILR_API ilr_status ILR_CALL ilr_get_reader(ilr_port_type nPortType, const char *pszPortName, ilr_handle *pReader)
Создаёт дескриптор считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_begin_mf_increment(ilr_handle hReader, size_t nBlockIdx, uint32_t nValue, ilr_handle *pCommand)
Увеличивает содержимое блока-значения карты Mifare и сохраняет результат во временном регистре данных...
ILR_API ilr_status ILR_CALL ilr_reader_begin_mf_restore(ilr_handle hReader, size_t nBlockIdx, ilr_handle *pCommand)
Перемещает содержимое блока в регистр данных Mifare.
ILR_API ilr_status ILR_CALL ilr_reader_end_read_temic(ilr_handle hCommand, const uint **ppList, size_t *pRead)
Возвращает результат чтения данных из карты Temic.
ILR_API ilr_status ILR_CALL ilr_reader_end_write_mf_ultralight(ilr_handle hCommand, size_t *pWritten)
Возвращает результат записи данных в карту Mifare Ultralight.
ILR_API ilr_status ILR_CALL ilr_reader_begin_scan(ilr_handle hReader, ilr_bool fReset, ilr_bool fPowerOff, ilr_handle *pCommand)
Запускает асинхронную команду поиска карты.
ILR_API ilr_status ILR_CALL ilr_reader_end_auth_mf_card(ilr_handle hCommand, ilr_bool *pAuthOk)
Возвращает результат авторизации сектора карты.
ILR_API ilr_status ILR_CALL ilr_reader_get_connection_status(ilr_handle hReader, ilr_connection_status *pStatus)
Возвращает состояние подключения к считывателю.
ILR_API ilr_status ILR_CALL ilr_reader_begin_mf_decrement(ilr_handle hReader, size_t nBlockIdx, uint32_t nValue, ilr_handle *pCommand)
Уменьшает содержимое блока-значения карты Mifare и сохраняет результат во временном регистре данных.
ilr_mf_plus_type
Тип Mifare Plus.
Definition: ilreaders.h:582
ilr_reader_msg
Сообщение считывателя.
Definition: ilreaders.h:502
ILR_API ilr_status ILR_CALL ilr_reader_begin_reset_temic(ilr_handle hReader, ilr_handle *pCommand)
Запускает асинхронную команду сброса TRES.
ILR_API ilr_status ILR_CALL ilr_reader_mf_rr(ilr_handle hReader, ilr_bool fWakeUp, const ilr_card_uid &rUID, ilr_bool *pFound)
R+R(Request+Reselect(по известному номеру)).
ILR_API ilr_status ILR_CALL ilr_reader_mf_write_perso(ilr_handle hReader, uint32_t nAddress, const ilr_mf_plus_key &rKey)
Записывает ключи AES и всех блоков.
ILR_API ilr_status ILR_CALL ilr_reader_mf_commit_perso(ilr_handle hReader)
Переключает Mifare Plus в SL1 или SL3(если SL1 нет).
ILR_API ilr_status ILR_CALL ilr_reader_begin_write_mf_pkey(ilr_handle hReader, size_t nIdx, ilr_bool fKeyB, const ilr_mf_plus_key *pKeys, size_t nCount, ilr_handle *pCommand)
Запускает асинхронную команду записи ключей аутентификации Mifare Plus в память считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_begin_read_mf_plus(ilr_handle hReader, size_t nAddress, size_t nBlockCount, ilr_bool fOpenText, ilr_handle *pCommand)
Запускает асинхронную команду чтения данных из карты Mifare Plus SL3.
ilr_mf_plus_sl
Уровень безопасности Mifare Plus.
Definition: ilreaders.h:570
ILR_API ilr_status ILR_CALL ilr_reader_auth_mf_card2(ilr_handle hReader, size_t nAddress, ilr_bool fKeyB, uint32_t nKeys=0xFFFF, int *pFoundIdx=nullptr)
Авторизует сектор карты Mifare Classic / Plus, используя ключи считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_mf_increment(ilr_handle hReader, size_t nBlockIdx, uint32_t nValue)
Увеличивает содержимое блока-значения карты Mifare и сохраняет результат во временном регистре данных...
ILR_API ilr_status ILR_CALL ilr_reader_write_mf_pkey(ilr_handle hReader, size_t nIdx, ilr_bool fKeyB, const ilr_mf_plus_key *pKeys, size_t nCount, size_t *pWritten=nullptr)
Записывает ключи аутентификации Mifare Plus в память считывателя
ILR_API ilr_status ILR_CALL ilr_reader_begin_write_mf_ckey(ilr_handle hReader, size_t nIdx, ilr_bool fKeyB, const ilr_mf_classic_key *pKeys, size_t nCount, ilr_handle *pCommand)
Запускает асинхронную команду записи ключей аутентификации Mifare Classic в память считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_scan_temic(ilr_handle hReader, int nScanParam=-1)
Ищет карту Temic в поле считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_begin_write_mf_ultralight(ilr_handle hReader, size_t nPageIdx, const uint32_t *pData, size_t nPageCount, ilr_handle *pCommand)
Запускает асинхронную команду записи данных в карту Mifare Ultralight.
ILR_API ilr_status ILR_CALL ilr_reader_load_mf_ckey(ilr_handle hReader, const ilr_mf_classic_key &nKey)
Загружает ключ для авторизации сектора Mifare Classic / Plus SL1.
ILR_API ilr_status ILR_CALL ilr_reader_read_temic(ilr_handle hReader, size_t nBlockIdx, uint32_t *pBuf, size_t nBlockCount, int nScanParam=-1, size_t *pRead=nullptr)
Читает данные карты Temic.
ILR_API ilr_status ILR_CALL ilr_reader_write_mf_ckey(ilr_handle hReader, size_t nIdx, ilr_bool fKeyB, const ilr_mf_classic_key *pKeys, size_t nCount, size_t *pWritten=nullptr)
Записывает ключи аутентификации Mifare Classic в память считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_end_read_mf_plus(ilr_handle hCommand, const ilr_mf_block_data **ppList, size_t *pRead)
Возвращает результат чтения данных из карты Mifare Plus SL3.
ILR_API ilr_status ILR_CALL ilr_reader_begin_set_auto_scan(ilr_handle hReader, ilr_bool fEnable, ilr_handle *pCommand)
Запускает асинхронную команду вкл/выкл автоматического сканирования карт.
ILR_API ilr_status ILR_CALL ilr_reader_mf_decrement(ilr_handle hReader, size_t nBlockIdx, uint32_t nValue)
Уменьшает содержимое блока-значения карты Mifare и сохраняет результат во временном регистре данных.
ILR_API ilr_status ILR_CALL ilr_reader_end_write_mf_pkey(ilr_handle hCommand, size_t *pWritten)
Возвращает результат записи ключей аутентификации Mifare Plus в память считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_end_write_mf_plus(ilr_handle hCommand, size_t *pWritten)
Возвращает результат записи данных в карту Mifare Plus SL3.
ILR_API ilr_status ILR_CALL ilr_reader_end_write_mf_classic(ilr_handle hCommand, size_t *pWritten)
Возвращает результат записи данных в карту Mifare Classic или Mifare Plus SL1.
ILR_API ilr_status ILR_CALL ilr_reader_begin_write_mf_plus(ilr_handle hReader, size_t nAddress, const ilr_mf_block_data *pData, size_t nBlockCount, ilr_bool fOpenText, ilr_handle *pCommand)
Запускает асинхронную команду записи данных в карту Mifare Plus SL3.
ILR_API ilr_status ILR_CALL ilr_reader_end_write_mf_ckey(ilr_handle hCommand, size_t *pWritten)
Возвращает результат записи ключей аутентификации Mifare Classic в память считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_disconnect(ilr_handle hReader)
Отключается от считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_begin_scan_temic(ilr_handle hReader, int nScanParam, ilr_handle *pCommand)
Запускает асинхронную команду поиска карты Temic в поле считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_scan(ilr_handle hReader, ilr_bool fReset=ILR_FALSE, ilr_bool fPowerOff=ILR_TRUE)
Ищет карту в поле считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_end_read_mf_classic(ilr_handle hCommand, const ilr_mf_block_data **ppList, size_t *pRead)
Возвращает результат чтения данных из карты Mifare Classic или Mifare Plus SL1.
ILR_API ilr_status ILR_CALL ilr_reader_begin_read_mf_ultralight(ilr_handle hReader, size_t nPageIdx, size_t nPageCount, ilr_handle *pCommand)
Запускает асинхронную команду чтения данных из карты Mifare Ultralight.
ILR_API ilr_status ILR_CALL ilr_reader_begin_disconnect(ilr_handle hReader, ilr_handle *pCommand)
Запускает асинхронную команду отключения от считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_set_message_callback(ilr_handle hReader, ilr_reader_message_callback pCallback, void *pUserData=nullptr)
Устанавливает функцию обратного вызова для уведомлений считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_reset_temic(ilr_handle hReader, ilr_bool fWait=ILR_TRUE)
Сброс TRES.
ILR_API ilr_status ILR_CALL ilr_reader_mf_halt(ilr_handle hReader)
Halt.
int64_t ilr_mf_classic_key
Ключ аутентификации Mifare Classic.
Definition: ilreaders.h:610
ILR_API ilr_status ILR_CALL ilr_reader_read_mf_ultralight(ilr_handle hReader, size_t nPageIdx, uint32_t *pBuf, size_t nPageCount, size_t *pRead=nullptr)
Читает данные карты Mifare Ultralight.
ILR_API ilr_status ILR_CALL ilr_reader_load_temic_password(ilr_handle hReader, const int64_t &nPassword)
Загружает пароль Temic в память объекта считывателя.
ILR_API ilr_status ILR_CALL ilr_reader_mf_restore(ilr_handle hReader, size_t nBlockIdx)
Перемещает содержимое блока в регистр данных Mifare.
struct __attribute__((packed))
ID карты
Definition: ilreaders.h:552
ILR_API ilr_status ILR_CALL ilr_reader_begin_read_mf_classic(ilr_handle hReader, size_t nBlockIdx, size_t nBlockCount, ilr_handle *pCommand)
Запускает асинхронную команду чтения данных из карты Mifare Classic или Mifare Plus SL1.
ILR_API ilr_status ILR_CALL ilr_reader_end_read_mf_ultralight(ilr_handle hCommand, const uint32_t **ppList, size_t *pRead)
Возвращает результат чтения данных из карты Mifare Ultralight.
ILR_API ilr_status ILR_CALL ilr_reader_end_write_temic(ilr_handle hCommand, size_t *pWritten)
Возвращает результат записи данных в карту Temic.
ILR_API ilr_status ILR_CALL ilr_reader_mf_rats(ilr_handle hReader, uint8_t *pAtsBuf=nullptr, size_t *pSize=nullptr)
Переходит на ISO 14443-4.
ILR_API ilr_status ILR_CALL ilr_reader_get_message(ilr_handle hReader, ilr_reader_msg *pMsg, const void **pMsgData, ilr_bool *pFound)
Извлекает следующее сообщение из очереди.
ILR_API ilr_status ILR_CALL ilr_reader_begin_write_mf_classic(ilr_handle hReader, size_t nBlockIdx, const ilr_mf_block_data *pData, size_t nBlockCount, ilr_handle *pCommand)
Запускает асинхронную команду записи данных в карту Mifare Classic или Mifare Plus SL1.
ILR_API ilr_status ILR_CALL ilr_reader_begin_read_temic(ilr_handle hReader, size_t nBlockIdx, size_t nBlockCount, int nScanParam, ilr_handle *pCommand)
Запускает асинхронную команду чтения данных из карты Temic.
ILR_API ilr_status ILR_CALL ilr_reader_load_mf_pkey(ilr_handle hReader, const ilr_mf_plus_key &rKey)
Загружает ключ для авторизации сектора Mifare Plus SL3.
ILR_API ilr_status ILR_CALL ilr_reader_enable_message_queue(ilr_handle hReader, ilr_bool fEnable=ILR_TRUE)
Включает/выключает очередь сообщений.
ILR_API ilr_status ILR_CALL ilr_reader_connect(ilr_handle hReader, ilr_bool fReconnect=ILR_FALSE)
Подключается к считывателю.
ILR_API ilr_status ILR_CALL ilr_reader_mf_ras(ilr_handle hReader, ilr_bool fWakeUp, uint8_t *pSAK, uint16_t *pATQ, ilr_card_uid *pUID, ilr_bool *pFound)
R+A+S(Request+Anticollision+Select)
ILR_API ilr_status ILR_CALL ilr_reader_set_scan_temic(ilr_handle hReader, ilr_bool fEnable=ILR_TRUE)
Вкл/выкл сканирование карт Temic (для Z-2 Rd-All и Z-2 EHR).
ILR_API ilr_status ILR_CALL ilr_reader_get_scan_temic(ilr_handle hReader, ilr_bool *pEnable)
Возвращает True если сканирование Temic включено.
void(ILR_CALL * ilr_reader_message_callback)(ilr_reader_msg nMsg, const void *pMsgData, void *pUserData)
Тип функции обратного вызова для получения уведомлений от дескриптора считывателя.
Definition: ilreaders.h:535
ILR_API ilr_status ILR_CALL ilr_reader_write_temic(ilr_handle hReader, size_t nBlockIdx, const uint32_t *pData, size_t nBlockCount, ilr_bool fLock=ILR_FALSE, int nScanParam=-1, size_t *pWritten=nullptr)
Пишет данные карты Temic.
ILR_API ilr_status ILR_CALL ilr_reader_begin_mf_transfer(ilr_handle hReader, size_t nBlockIdx, ilr_handle *pCommand)
Записывает содержимое во временном регистре данных в блок-значение.
ILR_API ilr_status ILR_CALL ilr_reader_write_mf_classic(ilr_handle hReader, size_t nBlockIdx, const ilr_mf_block_data *pData, size_t nBlockCount, size_t *pWritten=nullptr)
Пишет данные карты Mifare Classic или Mifare Plus SL1.
ILR_API ilr_status ILR_CALL ilr_reader_write_mf_plus(ilr_handle hReader, size_t nAddress, const ilr_mf_block_data *pData, size_t nBlockCount, ilr_bool fOpenText=ILR_TRUE, size_t *pWritten=nullptr)
Пишет данные карты Mifare Plus SL3.
ilr_connection_status
Состояние подключения к считывателю.
Definition: ilreaders.h:542
@ ILR_RWCT_F_TEMIC
Temic.
Definition: ilreaders.h:641
@ ILR_RWCT_F_MF_CLASSIC
Mifare Classic или Plus SL1.
Definition: ilreaders.h:643
@ ILR_RWCT_F_MF_PLUS
Другие Mifare Plus.
Definition: ilreaders.h:646
@ ILR_RWCT_F_MF_PLUS_SL0
Mifare Plus SL0.
Definition: ilreaders.h:644
@ ILR_RWCT_F_MF_ULTRALIGHT
Mifare Ultralight.
Definition: ilreaders.h:642
@ ILR_RWCT_F_MF_PLUS_SL3
Mifare Plus SL3.
Definition: ilreaders.h:645
@ ILR_MF_PLUS_X
Mifare Plus X.
Definition: ilreaders.h:585
@ ILR_MF_PLUS_TYPE_SIZE
Размер списка.
Definition: ilreaders.h:589
@ ILR_MF_PLUS_SE
MIFARE Plus SE.
Definition: ilreaders.h:586
@ ILR_MF_PLUS_UNKNOWN
Не известно.
Definition: ilreaders.h:583
@ ILR_MF_PLUS_EV2
MIFARE Plus EV2.
Definition: ilreaders.h:588
@ ILR_MF_PLUS_S
Mifare Plus S.
Definition: ilreaders.h:584
@ ILR_MF_PLUS_EV1
MIFARE Plus EV1.
Definition: ilreaders.h:587
@ ILR_READER_MSG_CONNECTION_CHANGED
Definition: ilreaders.h:513
@ ILR_READER_MSG_CARD_FOUND
Definition: ilreaders.h:517
@ ILR_READER_MSG_CARD_LOST
Definition: ilreaders.h:521
@ ILR_READER_MSG_COMMAND_FINISH
Definition: ilreaders.h:508
@ ILR_MF_PLUS_SL_SL0
Уровень 0 (не инициализирована).
Definition: ilreaders.h:572
@ ILR_MF_PLUS_SL_SL2
Уровень 2.
Definition: ilreaders.h:574
@ ILR_MF_PLUS_SL_UNKNOWN
Не известно.
Definition: ilreaders.h:571
@ ILR_MF_PLUS_SL_SL3
Уровень 3.
Definition: ilreaders.h:575
@ ILR_MF_PLUS_SL_SL1
Уровень 1 (эмуляция Mifare Classic).
Definition: ilreaders.h:573
@ ILR_CONNECTION_CONNECTED
Подключён.
Definition: ilreaders.h:544
@ ILR_CONNECTION_CONNECTING
Подключение.
Definition: ilreaders.h:545
ILR_API ilr_status ILR_CALL ilr_search_set_options(ilr_handle hSearch, const ilr_search_options *pOptions)
Устанавливает параметры поиска считывателей.
ILR_API ilr_status ILR_CALL ilr_search_get_options(ilr_handle hSearch, ilr_search_options *pOptions)
Возвращает параметры поиска считывателей.
void(ILR_CALL * ilr_search_message_callback)(ilr_search_msg nMsg, const void *pMsgData, void *pUserData)
Тип функции обратного вызова для получения уведомлений от дескриптора поиска.
Definition: ilreaders.h:444
ilr_reader_types
Флаги типов считывателей.
Definition: ilreaders.h:451
ILR_API ilr_status ILR_CALL ilr_search_begin_scan(ilr_handle hSearch, ilr_bool fReset, ilr_handle *pCommand)
Запускает асинхронную команду поиска считывателей.
ILR_API ilr_status ILR_CALL ilr_search_enable_message_queue(ilr_handle hSearch, ilr_bool fEnable=ILR_TRUE)
Включает/выключает очередь сообщений.
ILR_API ilr_status ILR_CALL ilr_search_begin_set_auto_scan(ilr_handle hSearch, ilr_bool fEnable, ilr_handle *pCommand)
Запускает асинхронную команду вкл/выкл режим авто поиска считывателей.
ILR_API ilr_status ILR_CALL ilr_search_get_message(ilr_handle hSearch, ilr_search_msg *pMsg, const void **pMsgData, ilr_bool *pFound)
Извлекает следующее сообщение из очереди.
ILR_API ilr_status ILR_CALL ilr_set_filter_port_callback(ilr_filter_port_callback pCallback, void *pUserData=nullptr)
Устанавливает функцию обратного вызова для фильтрации портов при поиске считывателей.
ILR_API ilr_status ILR_CALL ilr_search_scan(ilr_handle hSearch, ilr_bool fReset=ILR_FALSE)
Ищет считыватели.
ILR_API ilr_status ILR_CALL ilr_search_set_message_callback(ilr_handle hSearch, ilr_search_message_callback pCallback, void *pUserData=nullptr)
Устанавливает функцию обратного вызова для уведомлений поиска считывателей.
ILR_API ilr_status ILR_CALL ilr_search_get_auto_scan(ilr_handle hSearch, ilr_bool *pEnabled)
Возвращает флаг авто поиска считывателей.
ilr_bool(ILR_CALL * ilr_filter_port_callback)(ilr_port_type nPortType, const char *pszPortName, void *pUserData)
Тип функции обратного вызова для фильтрации портов при поиске считывателей.
Definition: ilreaders.h:403
ILR_API ilr_status ILR_CALL ilr_get_search(ilr_handle *pSearch)
Создаёт дескриптор поиска считывателей.
ILR_API ilr_status ILR_CALL ilr_search_get_reader_info(ilr_handle hSearch, size_t nIdx, ilr_reader_info *pInfo)
Возвращает информацию о найденном считывателе.
ILR_API ilr_status ILR_CALL ilr_search_get_reader_count(ilr_handle hSearch, size_t *pCount)
Возвращает количество найденных считывателей.
ilr_search_msg
Сообщение поиска считывателей.
Definition: ilreaders.h:410
ILR_API ilr_status ILR_CALL ilr_search_set_listen_ports(ilr_handle hSearch, const uint16_t *pPorts, size_t nCount)
Устанавливает список портов для прослушки конвертеров к режиме "Клиент".
ILR_API ilr_status ILR_CALL ilr_search_set_auto_scan(ilr_handle hSearch, ilr_bool fEnable=ILR_TRUE, ilr_bool fWait=ILR_TRUE)
Включает/выключает авто поиск считывателей.
ILR_API ilr_status ILR_CALL ilr_search_get_listen_ports(ilr_handle hSearch, uint16_t *pBuf, size_t *pSize)
Возвращает список портов для прослушки конвертеров к режиме "Клиент".
@ ILR_READER_SERVER
Definition: ilreaders.h:460
@ ILR_READER_CCID
Definition: ilreaders.h:467
@ ILR_READER_ILUSB
Definition: ilreaders.h:453
@ ILR_READER_TPUSB
Definition: ilreaders.h:458
@ ILR_READER_CLIENT
Definition: ilreaders.h:462
@ ILR_SEARCH_MSG_LIST_CHANGED
Definition: ilreaders.h:430
@ ILR_SEARCH_MSG_COMMAND_FINISH
Definition: ilreaders.h:416
@ ILR_SEARCH_MSG_READER_FOUND
Definition: ilreaders.h:420
@ ILR_SEARCH_MSG_READER_LOST
Definition: ilreaders.h:424
ILR_API ilr_status ILR_CALL ilr_search_open_port(ilr_handle hSearch, ilr_port_type nPortType, const char *pszPortName, ilr_reader_info *pInfo, int *pPort)
Открывает порт и возвращает его дескриптор.
ILR_API ilr_status ILR_CALL ilr_command_get_status(ilr_handle hCommand, ilr_status *pStatus)
Возвращает состояние команды.
void * ilr_handle
Definition: ilreaders.h:108
ILR_API ilr_status ILR_CALL ilr_free_memory(void *p)
Освобождает память, которую выделила библиотека.
ILR_API ilr_status ILR_CALL ilr_search_begin_close_port(ilr_handle hSearch, ilr_port_type nPortType, const char *pszPortName, int hPortFD, ilr_handle *pCommand)
Запускает асинхронную команду закрытия порта.
ILR_API ilr_status ILR_CALL ilr_search_get_listen_status(ilr_handle hSearch, uint16_t nTcpPort, ilr_status *pStatus)
Возвращает состояние Tcp-порта, открытого для прослушки конвертеров в режиме "Клиент".
ILR_API ilr_status ILR_CALL ilr_search_begin_open_port(ilr_handle hSearch, ilr_port_type nPortType, const char *pszPortName, ilr_handle *pCommand)
Запускает асинхронную команду открытия порта.
ILR_API ilr_status ILR_CALL ilr_search_close_port(ilr_handle hSearch, ilr_port_type nPortType, const char *pszPortName, int hPort)
Закрывает порт.
ILR_API ilr_status ILR_CALL ilr_clone_handle(ilr_handle h, ilr_handle *pNewHandle)
Клонирует дескриптор поиска считывателей или дескриптор считывателя.
ILR_API ilr_status ILR_CALL ilr_close_handle(ilr_handle h)
Закрывает дескриптор библиотеки.
ILR_API ilr_status ILR_CALL ilr_search_end_open_port(ilr_handle hCommand, int *pPortFD, ilr_reader_info *pInfo)
Возвращает результат открытия порта.
#define ILR_API
Переключатель между статическим и динамическим связыванием.
Definition: ilreaders.h:48
ILR_API ilr_status ILR_CALL ilr_encode_temic_emmarine(const ilr_card_uid &rUID, uint32_t *pBuf3, size_t nBlockCount)
Кодирует данные для эмуляции Em-Marine, для записи в блоки 0..2.
ILR_API ilr_status ILR_CALL ilr_command_get_progress(ilr_handle hCommand, size_t *pCurrent, size_t *pTotal)
Возвращает состояние прогресса выполнения команды.
ILR_API ilr_status ILR_CALL ilr_decode_temic_emmarine(const uint32_t *pData3, size_t nBlockCount, ilr_card_uid *pUID, ilr_bool *pConfigOk=nullptr)
Декодирует номер Em-Marine из данных блоков 0..2 карты Temic.
ilr_bool
Definition: ilreaders.h:111
@ ILR_FALSE
Ложь. =0.
Definition: ilreaders.h:112
@ ILR_TRUE
Истина. Может быть любое число отличное от 0.
Definition: ilreaders.h:113
#define ILR_CALL
Макрос, определяющий соглашение о вызове функций.
Definition: ilreaders.h:56
ILR_API ilr_status ILR_CALL ilr_command_cancel(ilr_handle hCommand)
Отменяет команду. Устанавливает статус ILR_E_ABORT.
ILR_API ilr_status ILR_CALL ilr_encode_temic_hid(const ilr_card_uid &rUID, uint32_t *pBuf4, size_t nBlockCount, int nWiegand)
Кодирует данные для эмуляции HID, для записи в блоки 0..3.
ilr_log_level
Уровень лога.
Definition: ilreaders.h:319
@ ILR_LOG_LEVEL_WARNING
Предупреждения.
Definition: ilreaders.h:337
@ ILR_LOG_LEVEL_NONE
Лог выключен.
Definition: ilreaders.h:324
@ ILR_LOG_LEVEL_INFO
Уведомления.
Definition: ilreaders.h:343
@ ILR_LOG_LEVEL_DEBUG
Отладочные сообщения.
Definition: ilreaders.h:349
@ ILR_LOG_LEVEL_SIZE
Definition: ilreaders.h:351
@ ILR_LOG_LEVEL_ERROR
Ошибки.
Definition: ilreaders.h:331
ilr_card_type
Тип карты.
Definition: ilreaders.h:261
@ ILR_CARD_TYPE_SIZE
Размер списка.
Definition: ilreaders.h:286
@ ILR_CARD_MF_PLUS_4K
Mifare Plus 4K.
Definition: ilreaders.h:281
@ ILR_CARD_SMART_MX_MF1K
Smart MX with Mifare 1K.
Definition: ilreaders.h:282
@ ILR_CARD_MF_PLUS
Mifare Plus.
Definition: ilreaders.h:278
@ ILR_CARD_MF_DESFIRE
Mifare DESFire.
Definition: ilreaders.h:284
@ ILR_CARD_MF_PROX
Mifare ProX.
Definition: ilreaders.h:285
@ ILR_CARD_CAME433
Радио-брелок CAME.
Definition: ilreaders.h:268
@ ILR_CARD_MF_ULTRALIGHT_C
Mifare Ultralight C.
Definition: ilreaders.h:273
@ ILR_CARD_SMART_MX_MF4K
Smart MX with Mifare 4K.
Definition: ilreaders.h:283
@ ILR_CARD_EM_MARINE
Em-Marine.
Definition: ilreaders.h:263
@ ILR_CARD_MF_CLASSIC_2K
Mifare Classic 2K.
Definition: ilreaders.h:276
@ ILR_CARD_MF_ULTRALIGHT
Mifare UltraLight.
Definition: ilreaders.h:272
@ ILR_CARD_MF_PLUS_1K
Mifare Plus 1K.
Definition: ilreaders.h:279
@ ILR_CARD_COD433
Cod433.
Definition: ilreaders.h:266
@ ILR_CARD_COD433_FIX
Cod433 Fix.
Definition: ilreaders.h:267
@ ILR_CARD_MF_CLASSIC_4K
Mifare Classic 4K.
Definition: ilreaders.h:277
@ ILR_CARD_UNKNOWN
Не известно.
Definition: ilreaders.h:262
@ ILR_CARD_DALLAS
Dallas.
Definition: ilreaders.h:269
@ ILR_CARD_HID
HID.
Definition: ilreaders.h:264
@ ILR_CARD_TEMIC
Temic (T5557).
Definition: ilreaders.h:270
@ ILR_CARD_MF_PLUS_2K
Mifare Plus 2K.
Definition: ilreaders.h:280
@ ILR_CARD_MF_CLASSIC_1K
Mifare Classic 1K.
Definition: ilreaders.h:275
@ ILR_CARD_MF_MINI
Mifare Mini.
Definition: ilreaders.h:274
@ ILR_CARD_ICODE
iCode.
Definition: ilreaders.h:265
ilr_port_type
Definition: ilreaders.h:243
@ ILR_PORT_TYPE_SIZE
Definition: ilreaders.h:257
@ ILR_PORT_TYPE_PROXY
Definition: ilreaders.h:255
@ ILR_PORT_TYPE_CCID
Definition: ilreaders.h:249
@ ILR_PORT_TYPE_CLIENT
Definition: ilreaders.h:253
@ ILR_PORT_TYPE_COMPORT
Definition: ilreaders.h:247
@ ILR_PORT_TYPE_UNKNOWN
Definition: ilreaders.h:245
@ ILR_PORT_TYPE_SERVER
Definition: ilreaders.h:251
ilr_reader_model
Модель считывателя.
Definition: ilreaders.h:211
@ ILR_READER_MODEL_Z2_RDALL
Definition: ilreaders.h:215
@ ILR_READER_MODEL_Z2_MF_CCID
Definition: ilreaders.h:237
@ ILR_READER_MODEL_Z2_E_HTZ_RF
Definition: ilreaders.h:221
@ ILR_READER_MODEL_MATRIX6
Definition: ilreaders.h:235
@ ILR_READER_MODEL_UNKNOWN
Definition: ilreaders.h:213
@ ILR_READER_MODEL_CP_Z2_MFI
Definition: ilreaders.h:231
@ ILR_READER_MODEL_MATRIX3_RDALL
Definition: ilreaders.h:227
@ ILR_READER_MODEL_Z1_N_Z
Definition: ilreaders.h:223
@ ILR_READER_MODEL_MATRIX3_NET
Definition: ilreaders.h:229
@ ILR_READER_MODEL_SIZE
Definition: ilreaders.h:239
@ ILR_READER_MODEL_MATRIX5_E_S_RF
Definition: ilreaders.h:233
@ ILR_READER_MODEL_Z2_MFI
Definition: ilreaders.h:219
@ ILR_READER_MODEL_Z2_MF
Definition: ilreaders.h:217
@ ILR_READER_MODEL_Z2_E_HT_HOTEL
Definition: ilreaders.h:225
ILR_API ilr_status ILR_CALL ilr_decode_temic_hid(const uint32_t *pData4, size_t nBlockCount, ilr_card_uid *pUID, int *pWiegand, ilr_bool *pConfigOk=nullptr)
Декодирует номер HID из данных блоков 0..3 карты Temic.
Информация о карте.
Definition: ilreaders.h:596
ilr_card_type nType
Тип карты.
Definition: ilreaders.h:597
uint32_t nMemSize
Размер памяти карты (в байтах).
Definition: ilreaders.h:599
ilr_mf_plus_sl nSL
Уровень безопасности Mifare Plus.
Definition: ilreaders.h:600
ilr_mf_plus_type nMpType
Тип Mifare Plus.
Definition: ilreaders.h:601
ilr_card_type nType2
Тип карты.
Definition: ilreaders.h:602
Данные блока Mifare Classic/Plus.
Definition: ilreaders.h:631
Ключ аутентификации Mifare Plus.
Definition: ilreaders.h:616
uint64_t hi
Старшая часть ключа.
Definition: ilreaders.h:622
uint64_t lo
Младшая часть ключа.
Definition: ilreaders.h:621
Настройки библиотеки.
Definition: ilreaders.h:378
ilr_bool fTwoStopBits
Definition: ilreaders.h:382
int nRequestAttempts
Definition: ilreaders.h:390
int nRequestTimeout
Definition: ilreaders.h:386
Информация о считывателе.
Definition: ilreaders.h:295
ilr_status nError
Definition: ilreaders.h:315
ilr_reader_model nModel
Definition: ilreaders.h:304
uint32_t nFwVersion
Definition: ilreaders.h:310
const char * pszConnect
Definition: ilreaders.h:302
const char * pszPortName
Definition: ilreaders.h:299
int64_t nFwBuildDate
Definition: ilreaders.h:313
ilr_port_type nPortType
Definition: ilreaders.h:297
int nSn
Definition: ilreaders.h:306
Настройки считывателя.
Definition: ilreaders.h:663
ilr_reader_model nConnectModel
Definition: ilreaders.h:665
int nReconnectPeriod
Definition: ilreaders.h:673
uint32_t nHoldCardTypes
Definition: ilreaders.h:668
Настройки поиска считывателей.
Definition: ilreaders.h:474
int nAcceptTimeout
Definition: ilreaders.h:495
int nOpenPortPeriod
Definition: ilreaders.h:481
int nUdpScanPeriod
Definition: ilreaders.h:485
int nUdpRequestAttempts
Definition: ilreaders.h:489
int nUdpRequestTimeout
Definition: ilreaders.h:487
uint32_t nReaderTypes
Definition: ilreaders.h:479
int nOpenListenerPeriod
Definition: ilreaders.h:492
int nPollPeriod
Definition: ilreaders.h:483