SDK Guard 1.0.1
SDK для связи с сетевыми контроллерами Iron logic
Поиск конвертеров

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

Классы

struct  ilg_search_options
 Настройки поиска конвертеров. Подробнее...
 

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

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

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

enum  ilg_search_msg {
  ILG_SEARCH_MSG_COMMAND_FINISH , ILG_SEARCH_MSG_CONVERTER_FOUND , ILG_SEARCH_MSG_CONVERTER_LOST , ILG_SEARCH_MSG_LIST_CHANGED ,
  ILG_SEARCH_MSG_LISTEN_PORT_OPEN , ILG_SEARCH_MSG_LISTEN_PORT_CLOSED , ILG_SEARCH_MSG_LISTEN_ERROR
}
 Сообщение поиска конвертеров. Подробнее...
 
enum  ilg_converter_types : uint32_t { ILG_CONVERTER_ILUSB = (1 << 0) , ILG_CONVERTER_TPUSB = (1 << 1) , ILG_CONVERTER_SERVER = (1 << 2) , ILG_CONVERTER_CLIENT = (1 << 3) }
 Флаги типов конвертеров. Подробнее...
 

Функции

ILG_API ilg_status ILG_CALL ilg_set_filter_port_callback (ilg_filter_port_callback pCallback, void *pUserData=nullptr)
 Устанавливает функцию обратного вызова для фильтрации портов при поиске конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_get_search (ilg_handle *pSearch)
 Создаёт дескриптор поиска конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_set_message_callback (ilg_handle hSearch, ilg_search_message_callback pCallback, void *pUserData=nullptr)
 Устанавливает функцию обратного вызова для уведомлений поиска конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_enable_message_queue (ilg_handle hSearch, ilg_bool fEnable=ILG_TRUE)
 Включает/выключает очередь сообщений. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_get_message (ilg_handle hSearch, ilg_search_msg *pMsg, const void **pMsgData, ilg_bool *pFound)
 Извлекает следующее сообщение из очереди. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_set_options (ilg_handle hSearch, const ilg_search_options *pOptions)
 Устанавливает параметры поиска конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_get_options (ilg_handle hSearch, ilg_search_options *pOptions)
 Возвращает параметры поиска конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_set_listen_ports (ilg_handle hSearch, const uint16_t *pPorts, size_t nCount)
 Устанавливает список портов для прослушки конвертеров к режиме "Клиент". Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_get_listen_ports (ilg_handle hSearch, uint16_t *pBuf, size_t *pSize)
 Возвращает список портов для прослушки конвертеров к режиме "Клиент". Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_scan (ilg_handle hSearch, ilg_bool fReset=ILG_FALSE)
 Ищет конвертеры. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_begin_scan (ilg_handle hSearch, ilg_bool fReset, ilg_handle *pCommand)
 Запускает асинхронную команду поиска конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_get_converter_count (ilg_handle hSearch, size_t *pCount)
 Возвращает количество найденных конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_get_converter_info (ilg_handle hSearch, size_t nIdx, ilg_converter_info *pInfo)
 Возвращает информацию о найденном конвертере. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_set_auto_scan (ilg_handle hSearch, ilg_bool fEnable=ILG_TRUE, ilg_bool fWait=ILG_TRUE)
 Включает/выключает авто поиск конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_begin_set_auto_scan (ilg_handle hSearch, ilg_bool fEnable, ilg_handle *pCommand)
 Запускает асинхронную команду вкл/выкл режим авто поиска конвертеров. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_search_get_auto_scan (ilg_handle hSearch, ilg_bool *pEnabled)
 Возвращает флаг авто поиска конвертеров. Подробнее...
 

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

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

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

Типы

◆ ilg_filter_port_callback

typedef ilg_bool(ILG_CALL * ilg_filter_port_callback) (ilg_port_type nPortType, const char *pszPortName, void *pUserData)

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

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

◆ ilg_search_message_callback

typedef void(ILG_CALL * ilg_search_message_callback) (ilg_search_msg nMsg, const void *pMsgData, void *pUserData)

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

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

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

◆ ilg_converter_types

enum ilg_converter_types : uint32_t

Флаги типов конвертеров.

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

USB конвертеры Iron Logic.

ILG_CONVERTER_TPUSB 

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

ILG_CONVERTER_SERVER 

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

ILG_CONVERTER_CLIENT 

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

◆ ilg_search_msg

Сообщение поиска конвертеров.

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

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

ILG_SEARCH_MSG_CONVERTER_FOUND 

Конвертер найден, параметр ilg_converter_info*.

ILG_SEARCH_MSG_CONVERTER_LOST 

Конвертер потерян, параметр ilg_converter_info*.

ILG_SEARCH_MSG_LIST_CHANGED 

Список конвертеров изменён.

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

TCP порт для прослушки открыт, параметр uint16_t номер TCP порта.

ILG_SEARCH_MSG_LISTEN_PORT_CLOSED 

TCP порт для прослушки закрыт, параметр uint16_t номер TCP порта.

ILG_SEARCH_MSG_LISTEN_ERROR 

Ошибка TCP порта для прослушки, параметр ilg_listen_error_info*.

Функции

◆ ilg_get_search()

ILG_API ilg_status ILG_CALL ilg_get_search ( ilg_handle pSearch)

Создаёт дескриптор поиска конвертеров.

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

◆ ilg_search_begin_scan()

ILG_API ilg_status ILG_CALL ilg_search_begin_scan ( ilg_handle  hSearch,
ilg_bool  fReset,
ilg_handle pCommand 
)

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

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

◆ ilg_search_begin_set_auto_scan()

ILG_API ilg_status ILG_CALL ilg_search_begin_set_auto_scan ( ilg_handle  hSearch,
ilg_bool  fEnable,
ilg_handle pCommand 
)

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

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

◆ ilg_search_enable_message_queue()

ILG_API ilg_status ILG_CALL ilg_search_enable_message_queue ( ilg_handle  hSearch,
ilg_bool  fEnable = ILG_TRUE 
)

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

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

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

◆ ilg_search_get_auto_scan()

ILG_API ilg_status ILG_CALL ilg_search_get_auto_scan ( ilg_handle  hSearch,
ilg_bool pEnabled 
)

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

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

◆ ilg_search_get_converter_count()

ILG_API ilg_status ILG_CALL ilg_search_get_converter_count ( ilg_handle  hSearch,
size_t *  pCount 
)

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

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

◆ ilg_search_get_converter_info()

ILG_API ilg_status ILG_CALL ilg_search_get_converter_info ( ilg_handle  hSearch,
size_t  nIdx,
ilg_converter_info pInfo 
)

Возвращает информацию о найденном конвертере.

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

◆ ilg_search_get_listen_ports()

ILG_API ilg_status ILG_CALL ilg_search_get_listen_ports ( ilg_handle  hSearch,
uint16_t *  pBuf,
size_t *  pSize 
)

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

Возвращает список TCP-портов, которые открываются для прослушки, к этим портам подключаются IP-конвертеры в режиме "Клиент". Установить список можно с помощью функциеи ilg_search_set_listen_ports.

Аргументы
[in]hSearchДескриптор поиска конвертеров.
[in,out]pBufУказатель на буфер для списка портов. Может быть равен nullptr.
[in,out]pSizeРазмер буфера в словах uint16_t.
Прим.
  • Список портов общий для всех дескрипторов.
  • Если pBuf равен nullptr, то буфер не используется, возвращается только требуемый размер для буфера pBuf.
  • При завершении функции в pSize устанавливается требуемый размер для буфера pBuf.
  • Если pSize равно ILG_AUTOALLOCATE, то библиотека сама выделяет память. pBuf должен ссылаться на указатель, в который будет записан адрес выделенной памяти. После использования памяти нужно освободить функцией ilg_free_memory
    uint16_t* pBuf = nullptr;
    size_t nBufSize = ILG_AUTOALLOCATE;
    if (ilg_search_get_listen_ports(hSearch, (uint16_t*)&pBuf, &nBufSize) == ILG_OK) {
    uint16_t* p = pBuf;
    for (size_t i = 0; i < nBufSize; i++, p++)
    printf("%u\n", *p);
    }
    @ ILG_OK
    Операция успешно выполнена.
    Definition: ilguard.h:135
    ILG_API ilg_status ILG_CALL ilg_search_get_listen_ports(ilg_handle hSearch, uint16_t *pBuf, size_t *pSize)
    Возвращает список портов для прослушки конвертеров к режиме "Клиент".
    #define ILG_AUTOALLOCATE
    Константа, указывающая на необходимость выделить память автоматически.
    Definition: ilguard.h:117
    ILG_API ilg_status ILG_CALL ilg_free_memory(void *p)
    Освобождает память, которую выделила библиотека.
Возвращает
ILG_OK в случае успеха или код ошибки в случае неудачи.
Возвращаемые значения
ILG_E_POINTERНеобходимый выходной параметр равен nullptr.
ILG_E_BUFFER_TOO_SMALLРазмер буфера не достаточный.
ILG_E_OUTOFMEMORYНе удалось выделить память.

◆ ilg_search_get_message()

ILG_API ilg_status ILG_CALL ilg_search_get_message ( ilg_handle  hSearch,
ilg_search_msg pMsg,
const void **  pMsgData,
ilg_bool pFound 
)

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

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

◆ ilg_search_get_options()

ILG_API ilg_status ILG_CALL ilg_search_get_options ( ilg_handle  hSearch,
ilg_search_options pOptions 
)

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

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

◆ ilg_search_scan()

ILG_API ilg_status ILG_CALL ilg_search_scan ( ilg_handle  hSearch,
ilg_bool  fReset = ILG_FALSE 
)

Ищет конвертеры.

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

◆ ilg_search_set_auto_scan()

ILG_API ilg_status ILG_CALL ilg_search_set_auto_scan ( ilg_handle  hSearch,
ilg_bool  fEnable = ILG_TRUE,
ilg_bool  fWait = ILG_TRUE 
)

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

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

◆ ilg_search_set_listen_ports()

ILG_API ilg_status ILG_CALL ilg_search_set_listen_ports ( ilg_handle  hSearch,
const uint16_t *  pPorts,
size_t  nCount 
)

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

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

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

◆ ilg_search_set_message_callback()

ILG_API ilg_status ILG_CALL ilg_search_set_message_callback ( ilg_handle  hSearch,
ilg_search_message_callback  pCallback,
void *  pUserData = nullptr 
)

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

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

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

◆ ilg_search_set_options()

ILG_API ilg_status ILG_CALL ilg_search_set_options ( ilg_handle  hSearch,
const ilg_search_options pOptions 
)

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

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

◆ ilg_set_filter_port_callback()

ILG_API ilg_status ILG_CALL ilg_set_filter_port_callback ( ilg_filter_port_callback  pCallback,
void *  pUserData = nullptr 
)

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

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