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

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

Классы

struct  ilg_license_info
 Информация о лицензии конвертера. Подробнее...
 
struct  ilg_converter_options
 Настройки конвертера. Подробнее...
 

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

typedef void(ILG_CALLilg_converter_message_callback) (ilg_converter_msg nMsg, const void *pMsgData, void *pUserData)
 Тип функции обратного вызова для получения уведомлений от дескриптора конвертера. Подробнее...
 

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

enum  ilg_connection_status { ILG_CONNECTION_DISCONNECTED , ILG_CONNECTION_CONNECTED , ILG_CONNECTION_CONNECTING , ILG_CONNECTION_SIZE }
 Состояние подключения к конвертеру/контроллеру. Подробнее...
 
enum  ilg_converter_msg {
  ILG_CONVERTER_MSG_COMMAND_FINISH , ILG_CONVERTER_MSG_CONNECTION_CHANGED , ILG_CONVERTER_MSG_CONTROLLER_FOUND , ILG_CONVERTER_MSG_CONTROLLER_LOST ,
  ILG_CONVERTER_MSG_CONTROLLER_LIST_CHANGED , ILG_CONVERTER_MSG_CONTROLLER_ADDRESS_CHAMGED
}
 Сообщение конвертера. Подробнее...
 

Функции

ILG_API ilg_status ILG_CALL ilg_get_converter (ilg_port_type nPortType, const char *pszPortName, ilg_handle *pConverter)
 Создаёт дескриптор конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_set_message_callback (ilg_handle hConverter, ilg_converter_message_callback pCallback, void *pUserData=nullptr)
 Устанавливает функцию обратного вызова для уведомлений конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_enable_message_queue (ilg_handle hConverter, ilg_bool fEnable=ILG_TRUE)
 Включает/выключает очередь сообщений. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_get_message (ilg_handle hConverter, ilg_converter_msg *pMsg, const void **pMsgData, ilg_bool *pFound)
 Извлекает следующее сообщение из очереди. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_set_options (ilg_handle hConverter, const ilg_converter_options *pOptions)
 Устанавливает параметры конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_get_options (ilg_handle hConverter, ilg_converter_options *pOptions)
 Возвращает параметры конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_connect (ilg_handle hConverter, ilg_bool fReconnect=ILG_FALSE)
 Подключается к конвертеру. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_begin_connect (ilg_handle hConverter, ilg_bool fReconnect, ilg_handle *pCommand)
 Запускает асинхронную команду подключения к конвертеру. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_disconnect (ilg_handle hConverter)
 Отключается от конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_begin_disconnect (ilg_handle hConverter, ilg_handle *pCommand)
 Запускает асинхронную команду отключения от конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_get_connection_status (ilg_handle hConverter, ilg_connection_status *pStatus)
 Возвращает состояние подключения к конвертеру. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_get_info (ilg_handle hConverter, ilg_converter_info *pInfo)
 Возвращает информацию о конвертере. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_read_license_info (ilg_handle hConverter, ilg_license_info *pInfo, uint32_t nLicenseN=ILG_LICENSE_N, ilg_bool fForce=ILG_FALSE)
 Возвращает информацию о лицензии конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_begin_read_license_info (ilg_handle hConverter, uint32_t nLicenseN, ilg_handle *pCommand)
 Запускает асинхронную команду запроса инфо о лицензии конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_end_read_license_info (ilg_handle hCommand, ilg_license_info *pInfo)
 Возвращает результат запроса инфо о лицензии конвертера. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_get_license_count (ilg_handle hConverter, size_t *pCount)
 Возвращает количество установленных лицензий. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_begin_get_license_count (ilg_handle hConverter, ilg_handle *pCommand)
 Запускает асинхронную команду получения количества установленных лицензий. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_end_get_license_count (ilg_handle hCommand, size_t *pCount)
 Возвращает количество установленных лицензий. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_get_license_info (ilg_handle hConverter, size_t nIdx, ilg_license_info *pInfo)
 Возвращает инфо о лицензии из списка, полученного методом ilg_converter_get_license_count. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_write_license (ilg_handle hConverter, const void *pData, size_t nSize, ilg_license_info *pInfo=nullptr, uint32_t nLicenseN=ILG_LICENSE_N)
 Устанавливает лицензию в конвертер. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_begin_write_license (ilg_handle hConverter, const void *pData, size_t nSize, uint32_t nLicenseN, ilg_handle *pCommand)
 Запускает асинхронную команду установки лицензии в конвертер. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_end_write_license (ilg_handle hCommand, ilg_license_info *pInfo)
 Возвращает результат установки лицензии в конвертер. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_clear_licenses (ilg_handle hConverter, ilg_bool fDisconnect=ILG_FALSE)
 Удаляет все лицензии. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_begin_clear_licenses (ilg_handle hConverter, ilg_bool fDisconnect, ilg_handle *pCommand)
 Запускает асинхронную команду удаления всех лицензий. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_set_firmware (ilg_handle hConverter, const void *pData, size_t nSize)
 Устанавливает прошивку в конвертер. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_converter_begin_set_firmware (ilg_handle hConverter, const void *pData, size_t nSize, ilg_handle *pCommand)
 Запускает асинхронную команду установки прошивки конвертера. Подробнее...
 

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

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

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

Типы

◆ ilg_converter_message_callback

typedef void(ILG_CALL * ilg_converter_message_callback) (ilg_converter_msg nMsg, const void *pMsgData, void *pUserData)

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

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

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

◆ ilg_connection_status

Состояние подключения к конвертеру/контроллеру.

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

Подключён.

ILG_CONNECTION_CONNECTING 

Подключение.

ILG_CONNECTION_SIZE 

Размер списка.

◆ ilg_converter_msg

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

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

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

ILG_CONVERTER_MSG_CONNECTION_CHANGED 

Изменилось состояние подключения к конвертеру. Узнать текущее состояние можно функцией ilg_converter_get_connection_status.

ILG_CONVERTER_MSG_CONTROLLER_FOUND 

Контроллер найден, параметр ilg_controller_info*.

ILG_CONVERTER_MSG_CONTROLLER_LOST 

Контроллер потерян, параметр ilg_controller_info*.

ILG_CONVERTER_MSG_CONTROLLER_LIST_CHANGED 

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

ILG_CONVERTER_MSG_CONTROLLER_ADDRESS_CHAMGED 

Изменён адрес контроллера.

Функции

◆ ilg_converter_begin_clear_licenses()

ILG_API ilg_status ILG_CALL ilg_converter_begin_clear_licenses ( ilg_handle  hConverter,
ilg_bool  fDisconnect,
ilg_handle pCommand 
)

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

Аргументы
[in]hConverterДескриптор конвертера.
[in]fDisconnectILG_TRUE, после установки лицензии отключается от конвертера , иначе - устанавливает лицензию #5 по умолчанию.
[out]pCommandДескриптор команды.
Прим.
Работает только в режиме Advanced конвертера.

◆ ilg_converter_begin_connect()

ILG_API ilg_status ILG_CALL ilg_converter_begin_connect ( ilg_handle  hConverter,
ilg_bool  fReconnect,
ilg_handle pCommand 
)

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

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

◆ ilg_converter_begin_disconnect()

ILG_API ilg_status ILG_CALL ilg_converter_begin_disconnect ( ilg_handle  hConverter,
ilg_handle pCommand 
)

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

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

◆ ilg_converter_begin_get_license_count()

ILG_API ilg_status ILG_CALL ilg_converter_begin_get_license_count ( ilg_handle  hConverter,
ilg_handle pCommand 
)

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

Аргументы
[in]hConverterДескриптор конвертера.
[out]pCommandДескриптор команды.
Прим.
Эта функция читает из контроллера список лицензий и сохраняет его в памяти дескриптора. Работает только в режиме Advanced конвертера.

◆ ilg_converter_begin_read_license_info()

ILG_API ilg_status ILG_CALL ilg_converter_begin_read_license_info ( ilg_handle  hConverter,
uint32_t  nLicenseN,
ilg_handle pCommand 
)

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

Аргументы
[in]hConverterДескриптор конвертера.
[in]nLicenseNНомер лицензии, информацию о которой нужно получить.
[out]pCommandДескриптор команды.
Прим.
Работает только в режиме Advanced конвертера.
Возвращает
ILG_OK в случае успеха или код ошибки в случае неудачи.

◆ ilg_converter_begin_set_firmware()

ILG_API ilg_status ILG_CALL ilg_converter_begin_set_firmware ( ilg_handle  hConverter,
const void *  pData,
size_t  nSize,
ilg_handle pCommand 
)

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

Аргументы
[in]hConverterДескриптор конвертера.
[in]pDataДанные прошивки.
[in]nSizeРазмер данных прошивки в байтах.
[out]pCommandДескриптор команды.

◆ ilg_converter_begin_write_license()

ILG_API ilg_status ILG_CALL ilg_converter_begin_write_license ( ilg_handle  hConverter,
const void *  pData,
size_t  nSize,
uint32_t  nLicenseN,
ilg_handle pCommand 
)

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

Аргументы
[in]hConverterДескриптор конвертера.
[in]pDataДанные лицензии.
[in]nSizeКоличество байт данных лицензии.
[in]nLicenseNНомер лицензии.
[out]pCommandДескриптор команды.
Прим.
Работает только в режиме Advanced конвертера.

◆ ilg_converter_clear_licenses()

ILG_API ilg_status ILG_CALL ilg_converter_clear_licenses ( ilg_handle  hConverter,
ilg_bool  fDisconnect = ILG_FALSE 
)

Удаляет все лицензии.

Аргументы
[in]hConverterДескриптор конвертера.
[in]fDisconnectILG_TRUE, после установки лицензии отключается от конвертера , иначе - устанавливает лицензию #5 по умолчанию.
Прим.
Функция не возвращает управление пока ждёт выполнение команды в потоке конвертера. Работает только в режиме Advanced конвертера.

◆ ilg_converter_connect()

ILG_API ilg_status ILG_CALL ilg_converter_connect ( ilg_handle  hConverter,
ilg_bool  fReconnect = ILG_FALSE 
)

Подключается к конвертеру.

Аргументы
[in]hConverterДескриптор конвертера.
[in]fReconnectILG_TRUE, Отключается перед подключением.
Прим.
Функция не возвращает управление пока ждёт выполнение команды в потоке конвертера. Если подключиться не удалось и период авто подключения (nReconnectPeriod в ilg_converter_options) не равен -1, то продолжает периодически пытаться подключиться.
Возвращает
ILG_OK в случае успеха или код ошибки в случае неудачи.

◆ ilg_converter_disconnect()

ILG_API ilg_status ILG_CALL ilg_converter_disconnect ( ilg_handle  hConverter)

Отключается от конвертера.

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

◆ ilg_converter_enable_message_queue()

ILG_API ilg_status ILG_CALL ilg_converter_enable_message_queue ( ilg_handle  hConverter,
ilg_bool  fEnable = ILG_TRUE 
)

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

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

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

◆ ilg_converter_end_get_license_count()

ILG_API ilg_status ILG_CALL ilg_converter_end_get_license_count ( ilg_handle  hCommand,
size_t *  pCount 
)

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

Аргументы
[in]hCommandДескриптор команды, которую вернула функция ilg_converter_begin_get_license_count.
[out]pCountКоличество установленных лицензий.

◆ ilg_converter_end_read_license_info()

ILG_API ilg_status ILG_CALL ilg_converter_end_read_license_info ( ilg_handle  hCommand,
ilg_license_info pInfo 
)

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

Аргументы
[in]hCommandДескриптор команды, которую вернула функция ilg_converter_begin_read_license_info.
[out]pInfoИнформация о лицензии конвертера.
Возвращает
ILG_OK в случае успеха или код ошибки в случае неудачи.

◆ ilg_converter_end_write_license()

ILG_API ilg_status ILG_CALL ilg_converter_end_write_license ( ilg_handle  hCommand,
ilg_license_info pInfo 
)

Возвращает результат установки лицензии в конвертер.

Аргументы
[in]hCommandДескриптор команды, которую вернула функция ilg_converter_begin_write_license.
[out]pInfoИнформация о лицензии.

◆ ilg_converter_get_connection_status()

ILG_API ilg_status ILG_CALL ilg_converter_get_connection_status ( ilg_handle  hConverter,
ilg_connection_status pStatus 
)

Возвращает состояние подключения к конвертеру.

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

◆ ilg_converter_get_info()

ILG_API ilg_status ILG_CALL ilg_converter_get_info ( ilg_handle  hConverter,
ilg_converter_info pInfo 
)

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

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

◆ ilg_converter_get_license_count()

ILG_API ilg_status ILG_CALL ilg_converter_get_license_count ( ilg_handle  hConverter,
size_t *  pCount 
)

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

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

◆ ilg_converter_get_license_info()

ILG_API ilg_status ILG_CALL ilg_converter_get_license_info ( ilg_handle  hConverter,
size_t  nIdx,
ilg_license_info pInfo 
)

Возвращает инфо о лицензии из списка, полученного методом ilg_converter_get_license_count.

Аргументы
[in]hConverterДескриптор конвертера.
[in]nIdxПозиция в списке.
[out]pInfoИнформация о лицензии.

◆ ilg_converter_get_message()

ILG_API ilg_status ILG_CALL ilg_converter_get_message ( ilg_handle  hConverter,
ilg_converter_msg pMsg,
const void **  pMsgData,
ilg_bool pFound 
)

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

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

◆ ilg_converter_get_options()

ILG_API ilg_status ILG_CALL ilg_converter_get_options ( ilg_handle  hConverter,
ilg_converter_options pOptions 
)

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

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

◆ ilg_converter_read_license_info()

ILG_API ilg_status ILG_CALL ilg_converter_read_license_info ( ilg_handle  hConverter,
ilg_license_info pInfo,
uint32_t  nLicenseN = ILG_LICENSE_N,
ilg_bool  fForce = ILG_FALSE 
)

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

Аргументы
[in]hConverterДескриптор конвертера.
[out]pInfoИнформация о лицензии.
[in]nLicenseNНомер лицензии, информацию о которой нужно получить. По умолчанию =5.
[in]fForceILG_TRUE, прочитать инфо из конвертера, иначе взять из кэша (только лицензия №5)
Прим.
Если fForce равен ILG_TRUE или nLicenseN не равен ILG_LICENSE_N, то функция не возвращает управление пока ждёт выполнение команды в потоке конвертера. Работает только в режиме Advanced конвертера.
Возвращает
ILG_OK в случае успеха или код ошибки в случае неудачи.

◆ ilg_converter_set_firmware()

ILG_API ilg_status ILG_CALL ilg_converter_set_firmware ( ilg_handle  hConverter,
const void *  pData,
size_t  nSize 
)

Устанавливает прошивку в конвертер.

Аргументы
[in]hConverterДескриптор конвертера.
[in]pDataДанные прошивки.
[in]nSizeРазмер данных прошивки в байтах.
Прим.
Функция не возвращает управление пока ждёт выполнение команды в потоке конвертера.

◆ ilg_converter_set_message_callback()

ILG_API ilg_status ILG_CALL ilg_converter_set_message_callback ( ilg_handle  hConverter,
ilg_converter_message_callback  pCallback,
void *  pUserData = nullptr 
)

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

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

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

◆ ilg_converter_set_options()

ILG_API ilg_status ILG_CALL ilg_converter_set_options ( ilg_handle  hConverter,
const ilg_converter_options pOptions 
)

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

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

◆ ilg_converter_write_license()

ILG_API ilg_status ILG_CALL ilg_converter_write_license ( ilg_handle  hConverter,
const void *  pData,
size_t  nSize,
ilg_license_info pInfo = nullptr,
uint32_t  nLicenseN = ILG_LICENSE_N 
)

Устанавливает лицензию в конвертер.

Аргументы
[in]hConverterДескриптор конвертера.
[in]pDataДанные лицензии.
[in]nSizeКоличество байт данных лицензии.
[out]pInfoИнформация о лицензии. Может быть равен nullptr.
[in]nLicenseNНомер лицензии.
Прим.
Функция не возвращает управление пока ждёт выполнение команды в потоке конвертера. Работает только в режиме Advanced конвертера.

◆ ilg_get_converter()

ILG_API ilg_status ILG_CALL ilg_get_converter ( ilg_port_type  nPortType,
const char *  pszPortName,
ilg_handle pConverter 
)

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

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