SDK Readers 1.0.1
SDK для связи со считывателями Iron logic
Поиск считывателей.

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

Классы

struct  ilr_search_options
 Настройки поиска считывателей. Подробнее...
 

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

typedef ilr_bool(ILR_CALLilr_filter_port_callback) (ilr_port_type nPortType, const char *pszPortName, void *pUserData)
 Тип функции обратного вызова для фильтрации портов при поиске считывателей. Подробнее...
 
typedef void(ILR_CALLilr_search_message_callback) (ilr_search_msg nMsg, const void *pMsgData, void *pUserData)
 Тип функции обратного вызова для получения уведомлений от дескриптора поиска. Подробнее...
 

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

enum  ilr_search_msg { ILR_SEARCH_MSG_COMMAND_FINISH , ILR_SEARCH_MSG_READER_FOUND , ILR_SEARCH_MSG_READER_LOST , ILR_SEARCH_MSG_LIST_CHANGED }
 Сообщение поиска считывателей. Подробнее...
 
enum  ilr_reader_types : uint32_t {
  ILR_READER_ILUSB = (1 << 0) , ILR_READER_TPUSB = (1 << 1) , ILR_READER_SERVER = (1 << 2) , ILR_READER_CLIENT = (1 << 3) ,
  ILR_READER_CCID = (1 << 4)
}
 Флаги типов считывателей. Подробнее...
 

Функции

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_get_search (ilr_handle *pSearch)
 Создаёт дескриптор поиска считывателей. Подробнее...
 
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_enable_message_queue (ilr_handle hSearch, ilr_bool fEnable=ILR_TRUE)
 Включает/выключает очередь сообщений. Подробнее...
 
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_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)
 Возвращает параметры поиска считывателей. Подробнее...
 
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_get_listen_ports (ilr_handle hSearch, uint16_t *pBuf, size_t *pSize)
 Возвращает список портов для прослушки конвертеров к режиме "Клиент". Подробнее...
 
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_begin_scan (ilr_handle hSearch, ilr_bool fReset, ilr_handle *pCommand)
 Запускает асинхронную команду поиска считывателей. Подробнее...
 
ILR_API ilr_status ILR_CALL ilr_search_get_reader_count (ilr_handle hSearch, size_t *pCount)
 Возвращает количество найденных считывателей. Подробнее...
 
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_set_auto_scan (ilr_handle hSearch, ilr_bool fEnable=ILR_TRUE, ilr_bool fWait=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_auto_scan (ilr_handle hSearch, ilr_bool *pEnabled)
 Возвращает флаг авто поиска считывателей. Подробнее...
 

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

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

Ссылки на инфо о создании дескриптора поиска, поиске считывателей, настройке поиска.

Типы

◆ ilr_filter_port_callback

typedef ilr_bool(ILR_CALL * ilr_filter_port_callback) (ilr_port_type nPortType, const char *pszPortName, void *pUserData)

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

Аргументы
[in]nPortTypeТип порта.
[in]pszPortNameИмя порта.
[in]pUserDataУказатель на данные пользователя.
Возвращает
ILR_TRUE, порт нужно исключить.

◆ ilr_search_message_callback

typedef void(ILR_CALL * ilr_search_message_callback) (ilr_search_msg nMsg, const void *pMsgData, void *pUserData)

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

Аргументы
[in]nMsgТип сообщения.
[in]pMsgDataУказатель на данные сообщения. Тип данных зависит от типа сообщения.
[in]pUserDataУказатель на данные пользователя.
Предупреждения
Указатель pMsgData действителен до выхода из этой функции.

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

◆ ilr_reader_types

enum ilr_reader_types : uint32_t

Флаги типов считывателей.

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

USB считыватели Iron Logic.

ILR_READER_TPUSB 

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

ILR_READER_SERVER 

IP конвертеры в режиме "Сервер" (поиск по UDP).

ILR_READER_CLIENT 

IP конвертеры в режиме "Клиент" (прослушка TCP).

ILR_READER_CCID 

Считыватели SmartCards. Из считывателей Iron Logic поддерживается только считыватель Z-2 MF CCID.

◆ ilr_search_msg

Сообщение поиска считывателей.

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

Завершилась асинхронная команда, созданная функцией с префиксом "ilr_search_begin_". Параметр - дескриптор команды (дескриптор действителен до следующего сообщения этого типа или до следующего вызова GetMessage), его не нужно закрывать функцией ilr_close_handle.

ILR_SEARCH_MSG_READER_FOUND 

Считыватель найден, параметр ilr_reader_info*.

ILR_SEARCH_MSG_READER_LOST 

Считыватель потерян, параметр ilr_reader_info*.

ILR_SEARCH_MSG_LIST_CHANGED 

Список считывателей изменён.

Прим.
Это сообщение посылается при добавлении/удалении считывателя в список найденных и при изменении параметра считывателя ilr_reader_info.

Функции

◆ ilr_get_search()

ILR_API ilr_status ILR_CALL ilr_get_search ( ilr_handle pSearch)

Создаёт дескриптор поиска считывателей.

Аргументы
[out]pSearchДескриптор поиска считывателей.
Прим.
Эта функция создаёт поток поиска считывателей, если ещё не создан (один поток на библиотеку). Функция не возвращает управление пока ждёт выполнение команды в потоке поиска считывателей.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_begin_scan()

ILR_API ilr_status ILR_CALL ilr_search_begin_scan ( ilr_handle  hSearch,
ilr_bool  fReset,
ilr_handle pCommand 
)

Запускает асинхронную команду поиска считывателей.

Аргументы
[in]hSearchДескриптор поиска считывателей.
[in]fResetILR_TRUE, очистить список найденных перед поиском.
[out]pCommandДескриптор команды.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_begin_set_auto_scan()

ILR_API ilr_status ILR_CALL ilr_search_begin_set_auto_scan ( ilr_handle  hSearch,
ilr_bool  fEnable,
ilr_handle pCommand 
)

Запускает асинхронную команду вкл/выкл режим авто поиска считывателей.

Аргументы
[in]hSearchДескриптор поиска считывателей.
[in]fEnableILR_TRUE, включает поиск в реальном времени, иначе - выключает.
[out]pCommandДескриптор команды.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_enable_message_queue()

ILR_API ilr_status ILR_CALL ilr_search_enable_message_queue ( ilr_handle  hSearch,
ilr_bool  fEnable = ILR_TRUE 
)

Включает/выключает очередь сообщений.

Эта функция устанавливает/снимает флаг "очередь включена" в дескрипторе поиска. Очередь сообщений предназначена для синхронизации обработки сообщений поиска.

Прим.
Алгоритм синхронизации: при возникновении события в очередь добавляется сообщение и вызывается функция обратного вызова, установленная функцией ilr_search_set_message_callback, из которой посылается сигнал потоку, обрабатывающему сообщения, этот поток при получении сигнала циклично вызывает ilr_search_get_message, чтобы получить и обработать все сообщения.
Аргументы
[in]hSearchДескриптор поиска считывателей.
[in]fEnableILR_TRUE, включает очередь, иначе - выключает.
Предупреждения
Если не извлекать сообщения из очереди функцией ilr_search_get_message, то она будет расти пока не закончится память.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_get_auto_scan()

ILR_API ilr_status ILR_CALL ilr_search_get_auto_scan ( ilr_handle  hSearch,
ilr_bool pEnabled 
)

Возвращает флаг авто поиска считывателей.

Аргументы
[in]hSearchДескриптор поиска считывателей.
[out]pEnabledILR_TRUE, авто поиск включен, иначе - выключен.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_get_listen_ports()

ILR_API ilr_status ILR_CALL ilr_search_get_listen_ports ( ilr_handle  hSearch,
uint16_t *  pBuf,
size_t *  pSize 
)

Возвращает список портов для прослушки конвертеров к режиме "Клиент".

Возвращает список TCP-портов, который был установлен функцией ilr_search_set_listen_ports.

Прим.
Список портов общий для всех дескрипторов.
Аргументы
[in]hSearchДескриптор поиска считывателей.
[in,out]pBufУказатель на буфер для списка портов. Может быть =nullptr.
[in,out]pSizeРазмер буфера в словах uint16_t или ILR_AUTOALLOCATE. Если =ILR_AUTOALLOCATE, то pBuf должен ссылаться на указатель, т.е. должен иметь тип uint16_t **, функция сама выделит память под список портов, которую после использования нужно освободить функцией ilr_free_memory. В конце функция устанавливает в pSize требуемый размер для буфера.
Возвращаемые значения
ILR_OKФункция выполнена успешно.
ILR_E_BUFFER_TOO_SMALLРазмер буфера не достаточный (когда не используется ILR_AUTOALLOCATE).
ILR_E_OUTOFMEMORYНе удалось выделить память (когда используется ILR_AUTOALLOCATE).
ILR_E_POINTERНеобходимый выходной параметр = nullptr.

◆ ilr_search_get_message()

ILR_API ilr_status ILR_CALL ilr_search_get_message ( ilr_handle  hSearch,
ilr_search_msg pMsg,
const void **  pMsgData,
ilr_bool pFound 
)

Извлекает следующее сообщение из очереди.

Аргументы
[in]hSearchДескриптор поиска считывателей.
[out]pMsgТип сообщения.
[out]pMsgDataУказатель на данные пользователя, которые были установлены функцией ilr_search_set_message_callback.
[out]pFoundILR_TRUE если сообщение успешно извлечено, иначе - очередь пуста.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_get_options()

ILR_API ilr_status ILR_CALL ilr_search_get_options ( ilr_handle  hSearch,
ilr_search_options pOptions 
)

Возвращает параметры поиска считывателей.

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

◆ ilr_search_get_reader_count()

ILR_API ilr_status ILR_CALL ilr_search_get_reader_count ( ilr_handle  hSearch,
size_t *  pCount 
)

Возвращает количество найденных считывателей.

Аргументы
[in]hSearchДескриптор поиска считывателей.
[out]pCountКоличество найденных считывателей.
Предупреждения
Эта функция копирует список из потока поиска, поэтому её лучше не вызывать в цикле, а сохранить значение *pCount в переменной, и уже её использовать в цикле.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_get_reader_info()

ILR_API ilr_status ILR_CALL ilr_search_get_reader_info ( ilr_handle  hSearch,
size_t  nIdx,
ilr_reader_info pInfo 
)

Возвращает информацию о найденном считывателе.

Аргументы
[in]hSearchДескриптор поиска считывателей.
[in]nIdxПозиция в списке найденных считывателей.
[out]pInfoИнформация о считывателе.
Предупреждения
В pInfo ссылки pszPortName и pszConnect действительны до следующего вызова ilr_search_get_reader_count и пока жив дескриптор hSearch.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_scan()

ILR_API ilr_status ILR_CALL ilr_search_scan ( ilr_handle  hSearch,
ilr_bool  fReset = ILR_FALSE 
)

Ищет считыватели.

Аргументы
[in]hSearchДескриптор поиска считывателей.
[in]fResetILR_TRUE, очищает список найденных считывателей перед началом поиска.
Прим.
Функция не возвращает управление пока ждёт выполнение команды в потоке поиска считывателей.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_set_auto_scan()

ILR_API ilr_status ILR_CALL ilr_search_set_auto_scan ( ilr_handle  hSearch,
ilr_bool  fEnable = ILR_TRUE,
ilr_bool  fWait = ILR_TRUE 
)

Включает/выключает авто поиск считывателей.

Аргументы
[in]hSearchДескриптор поиска считывателей.
[in]fEnableILR_TRUE, включает авто поиск, иначе - выключает.
[in]fWaitILR_TRUE, ждёт полного завершения команды, иначе только устанавливает флаг.
Прим.
Если fWait равен ILR_TRUE, то функция не возвращает управление пока ждёт выполнение команды в потоке поиска считывателей.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_set_listen_ports()

ILR_API ilr_status ILR_CALL ilr_search_set_listen_ports ( ilr_handle  hSearch,
const uint16_t *  pPorts,
size_t  nCount 
)

Устанавливает список портов для прослушки конвертеров к режиме "Клиент".

Устанавливает список TCP-портов, к которым будут подключаться IP-конвертеры в режиме "Клиент".

Прим.
Список портов общий для всех дескрипторов.
Аргументы
[in]hSearchДескриптор поиска считывателей.
[in]pPortsМассив портов. Если =nullptr, то очищает список.
[in]nCountКоличество элементов массива портов.
Возвращает
ILR_OK в случае успеха или код ошибки в случае неудачи.

◆ ilr_search_set_message_callback()

ILR_API ilr_status ILR_CALL ilr_search_set_message_callback ( ilr_handle  hSearch,
ilr_search_message_callback  pCallback,
void *  pUserData = nullptr 
)

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

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

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

◆ ilr_search_set_options()

ILR_API ilr_status ILR_CALL ilr_search_set_options ( ilr_handle  hSearch,
const ilr_search_options pOptions 
)

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

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

◆ ilr_set_filter_port_callback()

ILR_API ilr_status ILR_CALL ilr_set_filter_port_callback ( ilr_filter_port_callback  pCallback,
void *  pUserData = nullptr 
)

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

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