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

Класс поиска конвертеров. Подробнее...

#include <ilg_cpp_helpers.h>

Граф наследования:ilg::CConverterSearch:
Граф связей класса ilg::CConverterSearch:

Открытые члены

 CConverterSearch ()
 Конструктор по умолчанию.
 
 CConverterSearch (ilg_handle h)
 Конструктор класса из дескриптора поиска конвертеров. Подробнее...
 
 CConverterSearch (CConverterSearch &&other)
 Конструктор перемещения. Подробнее...
 
virtual ~CConverterSearch ()
 Деструктор
 
CConverterSearchoperator= (CConverterSearch &&other)
 Оператор перемещения
 
void SetMessageCallback (ilg_search_message_callback pCallback, void *pUserData=nullptr)
 Устанавливает функцию обратного вызова для уведомлений поиска конвертеров. Подробнее...
 
void EnableMessageQueue (bool fEnable=true)
 Включает/выключает очередь сообщений. Подробнее...
 
bool GetMessage (ilg_search_msg &nMsg, const void *&pMsgData) const
 Извлекает следующее сообщение из очереди. Подробнее...
 
void SetOptions (const ilg_search_options &rOptions)
 Устанавливает параметры поиска считывателей. Подробнее...
 
void GetOptions (ilg_search_options &rOptions) const
 Возвращает параметры поиска считывателей. Подробнее...
 
void SetListenPorts (const uint16_t *pPorts, size_t nCount)
 Устанавливает список портов для прослушки конвертеров к режиме "Клиент". Подробнее...
 
void GetListenPorts (std::vector< uint16_t > &oPorts) const
 Возвращает список портов для прослушки конвертеров к режиме "Клиент". Подробнее...
 
ilg_status GetListenStatus (uint16_t nTcpPort) const
 Возвращает состояние Tcp-порта, открытого для прослушки конвертеров в режиме "Клиент". Подробнее...
 
void Scan (bool fReset=false)
 Ищет считыватели. Подробнее...
 
CAsyncCommand Begin_Scan (bool fReset=false)
 Запускает асинхронную команду поиска считывателей. Подробнее...
 
size_t GetConverterCount () const
 Возвращает количество найденных считывателей. Подробнее...
 
void GetConverterInfo (size_t nIdx, ilg_converter_info &rInfo) const
 Возвращает информацию о найденном считывателе. Подробнее...
 
void SetAutoScan (bool fEnable=true, bool fWait=true)
 Включает/выключает авто поиск считывателей. Подробнее...
 
CAsyncCommand Begin_SetAutoScan (bool fEnable)
 Запускает асинхронную команду вкл/выкл режим авто поиска считывателей. Подробнее...
 
bool GetAutoScan () const
 Возвращает флаг авто поиска считывателей. Подробнее...
 
int OpenPort (ilg_port_type nPortType, const char *pszPortName, ilg_converter_info *pInfo=nullptr)
 Открывает порт и возвращает его дескриптор. Подробнее...
 
CAsyncCommand Begin_OpenPort (ilg_port_type nPortType, const char *pszPortName)
 Запускает асинхронную команду открытия порта. Подробнее...
 
void ClosePort (ilg_port_type nPortType, const char *pszPortName, int hPort)
 Закрывает порт Подробнее...
 
CAsyncCommand Begin_ClosePort (ilg_port_type nPortType, const char *pszPortName, int hPortFD)
 Запускает асинхронную команду закрытия порта. Подробнее...
 
CConverterSearch Clone () const
 Клонирует дескриптор поиска конвертеров. Подробнее...
 
- Открытые члены унаследованные от ilg::CILGHandle
 CILGHandle ()
 Конструктор по умолчанию.
 
 CILGHandle (ilg_handle h)
 Конструктор из дескриптора SDK. Подробнее...
 
 CILGHandle (const CILGHandle &)=delete
 Запрещаем копирование этого класса (т.к. он содержит указатель = дескриптор).
 
 CILGHandle (CILGHandle &&other)
 Конструктор перемещения. Подробнее...
 
virtual ~CILGHandle ()
 Деструктор
 
CILGHandleoperator= (const CILGHandle &)=delete
 Запрещаем копирование этого класса (т.к. он содержит указатель = дескриптор).
 
CILGHandleoperator= (CILGHandle &&other)
 Оператор перемещения. Подробнее...
 
 operator ilg_handle () const
 Оператор приведения типа к ilg_handle.
 
 operator bool () const
 Проверяет дескриптор на валидность.
 
void Swap (CILGHandle &other) noexcept
 Обменивается значением с другим дескриптором. Подробнее...
 
ilg_handle Get () const
 Возвращает дескриптор SDK.
 
void Close ()
 Закрывает дескриптор SDK. Подробнее...
 
void Attach (ilg_handle h)
 Присоединяет дескриптор к этому объекту. Подробнее...
 
ilg_handle Detach ()
 Отсоединяет дескриптор от этого объекту. Подробнее...
 

Открытые статические члены

static void End_OpenPort (ilg_handle hCommand, int &PortFD, ilg_converter_info &rInfo)
 Возвращает результат открытия порта. Подробнее...
 

Дополнительные унаследованные члены

- Защищенные данные унаследованные от ilg::CILGHandle
ilg_handle m_h
 Дескриптор SDK.
 

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

Класс поиска конвертеров.

Класс-обёртка для дескриптора поиска конвертеров.

Примеры
connect_to_converter/main.cpp, controller_detector/main.cpp, controller_events/main.cpp, controller_keys/main.cpp, controller_lock/main.cpp, controller_schedule/main.cpp, converter_detector/main.cpp, enum_controllers/main.cpp и enum_converters/main.cpp.

Конструктор(ы)

◆ CConverterSearch() [1/2]

ilg::CConverterSearch::CConverterSearch ( ilg_handle  h)

Конструктор класса из дескриптора поиска конвертеров.

Аргументы
[in]hЗначение дескриптора SDK.

◆ CConverterSearch() [2/2]

ilg::CConverterSearch::CConverterSearch ( CConverterSearch &&  other)

Конструктор перемещения.

Аргументы
[in,out]otherДругой поиск конвертеров.

Методы

◆ Begin_ClosePort()

CAsyncCommand ilg::CConverterSearch::Begin_ClosePort ( ilg_port_type  nPortType,
const char *  pszPortName,
int  hPortFD 
)
inline

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

Аргументы
[in]nPortTypeТип порта
[in]pszPortNameИмя порта
[in]hPortFDСистемный дескриптор порта.
Возвращает
Класс дескриптора команды.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, `ILG_E_OUTOFMEMORY`, ILG_E_OUT_OF_RESOURCES.

◆ Begin_OpenPort()

CAsyncCommand ilg::CConverterSearch::Begin_OpenPort ( ilg_port_type  nPortType,
const char *  pszPortName 
)
inline

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

Аргументы
[in]nPortTypeТип порта.
[in]pszPortNameИмя порта.
Возвращает
Класс дескриптора команды.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_INVALIDARG`, `ILG_E_HANDLE`, ILG_E_OUTOFMEMORY, ILG_E_OUT_OF_RESOURCES.

◆ Begin_Scan()

CAsyncCommand ilg::CConverterSearch::Begin_Scan ( bool  fReset = false)
inline

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

Аргументы
[in]fReset=true очистить список найденных перед поиском.
Возвращает
Класс дескриптора команды.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, ILG_E_OUT_OF_RESOURCES, ILG_E_OUTOFMEMORY.

◆ Begin_SetAutoScan()

CAsyncCommand ilg::CConverterSearch::Begin_SetAutoScan ( bool  fEnable)
inline

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

Аргументы
[in]fEnable=true включает поиск в реальном времени, иначе - выключает.
Возвращает
Класс дескриптора команды.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, `ILG_E_OUTOFMEMORY`, ILG_E_OUT_OF_RESOURCES.

◆ Clone()

CConverterSearch ilg::CConverterSearch::Clone ( ) const
inline

Клонирует дескриптор поиска конвертеров.

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

◆ ClosePort()

void ilg::CConverterSearch::ClosePort ( ilg_port_type  nPortType,
const char *  pszPortName,
int  hPort 
)
inline

Закрывает порт

Аргументы
[in]nPortTypeТип порта.
[in]pszPortNameИмя порта.
[in]hPortСистемный дескриптор порта.
Прим.
Функция не возвращает управление пока ждёт выполнение команды в потоке поиска считывателей.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, ILG_E_BLOCKING_CALL_NOT_ALLOWED, ILG_E_OUTOFMEMORY, ILG_E_OUT_OF_RESOURCES.

◆ EnableMessageQueue()

void ilg::CConverterSearch::EnableMessageQueue ( bool  fEnable = true)
inline

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

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

Прим.
Алгоритм синхронизации: при возникновении события в очередь добавляется сообщение и вызывается функция обратного вызова, установленная функцией SetMessageCallback, из которой посылается сигнал потоку, обрабатывающему сообщения, этот поток при получении сигнала циклично вызывает GetMessage, чтобы получить и обработать все сообщения.
Аргументы
[in]fEnabletrue, включить очередь, иначе - выключить.
Предупреждения
Если не извлекать сообщения из очереди функцией GetMessage, то она будет расти пока не закончится память.
Исключения
CILGException(ILG_E_HANDLE)если дескриптор неправильный.

◆ End_OpenPort()

void ilg::CConverterSearch::End_OpenPort ( ilg_handle  hCommand,
int &  PortFD,
ilg_converter_info rInfo 
)
inlinestatic

Возвращает результат открытия порта.

Аргументы
[in]hCommandДескриптор команды.
[out]PortFDСистемный дескриптор порта.
[out]rInfoИнформация о конвертере (если известно).
Исключения
CILGException(ILG_E_HANDLE)если дескриптор неправильный.

◆ GetAutoScan()

bool ilg::CConverterSearch::GetAutoScan ( ) const
inline

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

Возвращает
true, авто поиск включен, иначе - выключен.
Исключения
CILGException(ILG_E_HANDLE)если дескриптор неправильный.

◆ GetConverterCount()

size_t ilg::CConverterSearch::GetConverterCount ( ) const
inline

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

Предупреждения
Эта функция копирует список из потока поиска, поэтому её лучше не вызывать в цикле.
Возвращает
Количество найденных считывателей.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, `ILG_E_OUTOFMEMORY`.

◆ GetConverterInfo()

void ilg::CConverterSearch::GetConverterInfo ( size_t  nIdx,
ilg_converter_info rInfo 
) const
inline

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

Аргументы
[in]nIdxПозиция в списке найденных считывателей.
[out]rInfoИнформация о считывателе.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, `ILG_E_BOUNDS`.

◆ GetListenPorts()

void ilg::CConverterSearch::GetListenPorts ( std::vector< uint16_t > &  oPorts) const

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

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

Прим.
Список портов общий для всех дескрипторов.
Аргументы
[in,out]oPortsСписок портов.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, `ILG_E_OUTOFMEMORY`.

◆ GetListenStatus()

ilg_status ilg::CConverterSearch::GetListenStatus ( uint16_t  nTcpPort) const
inline

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

Аргументы
[in]nTcpPortНомер TCP порта.
Прим.
Чтобы открыть порт для прослушки нужно добавить его в список портов с помощью функции ilg_search_set_listen_ports, и включить поиск конвертеров в режиме "Клиент" с помощью ilg_search_set_options (установить pOptions->nConverterTypes |= ILG_CONVERTER_CLIENT).
Возвращает
Состояние порта: ILG_OK порт открыт успешно, ILG_E_PENDING порт в процессе открытия или его нет в списке портов для прослушки, иначе не удалось открыть.

◆ GetMessage()

bool ilg::CConverterSearch::GetMessage ( ilg_search_msg nMsg,
const void *&  pMsgData 
) const
inline

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

Аргументы
[out]nMsgТип сообщения.
[out]pMsgDataУказатель на данные пользователя, которые были установлены функцией SetMessageCallback.
Возвращает
true если сообщение успешно извлечено, иначе - очередь пуста.
Исключения
CILGException(ILG_E_HANDLE)если дескриптор неправильный.

◆ GetOptions()

void ilg::CConverterSearch::GetOptions ( ilg_search_options rOptions) const
inline

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

Аргументы
[out]rOptionsОпции поиска считывателей.
Исключения
CILGException(ILG_E_HANDLE)если дескриптор неправильный.

◆ OpenPort()

int ilg::CConverterSearch::OpenPort ( ilg_port_type  nPortType,
const char *  pszPortName,
ilg_converter_info pInfo = nullptr 
)
inline

Открывает порт и возвращает его дескриптор.

Аргументы
[in]nPortTypeТип порта.
[in]pszPortNameИмя порта.
[out]pInfoИнформация о считывателе. Может быть равно nullptr.
Прим.
Функция не возвращает управление пока ждёт выполнение команды в потоке поиска считывателей.
Возвращает
Системный дескриптор порта.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_INVALIDARG`, `ILG_E_HANDLE`, ILG_E_BLOCKING_CALL_NOT_ALLOWED, ILG_E_OUTOFMEMORY, ILG_E_OUT_OF_RESOURCES, ILG_E_PORT_ACCESS_DENIED, ILG_E_PORT_NOT_EXIST, ILG_E_PORT_OPEN_FAILED, ILG_E_CONNECTION_ERROR, ILG_E_NOTIMPL.

◆ Scan()

void ilg::CConverterSearch::Scan ( bool  fReset = false)
inline

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

Аргументы
[in]fReset=true очищает список найденных считывателей перед началом поиска.
Прим.
Функция не возвращает управление пока ждёт выполнение команды в потоке поиска считывателей.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, ILG_E_BLOCKING_CALL_NOT_ALLOWED, ILG_E_OUT_OF_RESOURCES, ILG_E_OUTOFMEMORY.

◆ SetAutoScan()

void ilg::CConverterSearch::SetAutoScan ( bool  fEnable = true,
bool  fWait = true 
)
inline

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

Аргументы
[in]fEnable=true, включает авто поиск, иначе - выключает.
[in]fWait=true, ждёт полного завершения команды, иначе только устанавливает флаг.
Прим.
Если fWait =true, то функция не возвращает управление пока ждёт выполнение команды в потоке поиска считывателей.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, ILG_E_BLOCKING_CALL_NOT_ALLOWED, ILG_E_OUTOFMEMORY, ILG_E_OUT_OF_RESOURCES.

◆ SetListenPorts()

void ilg::CConverterSearch::SetListenPorts ( const uint16_t *  pPorts,
size_t  nCount 
)
inline

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

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

Прим.
Список портов общий для всех дескрипторов.
Аргументы
[in]pPortsМассив портов. Если =nullptr, то очищает список.
[in]nCountКоличество элементов массива портов.
Исключения
CILGExceptionесли произошла ошибка `ILG_E_HANDLE`, `ILG_E_INVALIDARG`, ILG_E_OUTOFMEMORY.

◆ SetMessageCallback()

void ilg::CConverterSearch::SetMessageCallback ( ilg_search_message_callback  pCallback,
void *  pUserData = nullptr 
)
inline

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

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

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

◆ SetOptions()

void ilg::CConverterSearch::SetOptions ( const ilg_search_options rOptions)
inline

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

Прим.
Параметры поиска считывателей общие для всех дескрипторов. Параметры не теряются при закрытии всех дескрипторов поиска.
Аргументы
[in]rOptionsОпции поиска считывателей.
Исключения
CILGException(ILG_E_HANDLE)если дескриптор неправильный.

Объявления и описания членов классов находятся в файлах: