SDK Guard 1.0.1
SDK для связи с сетевыми контроллерами Iron logic
Инициализация, версия и коды ошибок

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

Классы

struct  ilg_options
 Настройки библиотеки. Подробнее...
 

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

typedef void(ILG_CALLilg_logging_callback) (ilg_log_level nLevel, const char *pContext, const char *pMessage, void *pUserData)
 Тип функции обратного вызова для получения сообщений лога отладки библиотеки. Подробнее...
 

Функции

ILG_API uint32_t ILG_CALL ilg_get_version ()
 Возвращает номер версии библиотеки. Подробнее...
 
ILG_API const char *ILG_CALL ilg_get_error_text (ilg_status nErrorCode)
 Возвращает описание ошибки по её коду. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_set_log_level (ilg_log_level nLevel)
 Устанавливает уровень лога отладки. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_set_log_callback (ilg_logging_callback pCallback, void *pUserData=nullptr)
 Устанавливает функцию обратного вызова для лога отладки. Подробнее...
 
bool ilg_check_version ()
 Проверяет версию SDK. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_init (uint32_t nVersionRequested=ILG_VERSION)
 Инициализирует библиотеку SDK Guard. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_cleanup ()
 Освобождает ресурсы библиотеки. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_set_options (const ilg_options *pOptions)
 Устанавливает глобальные настройки библиотеки. Подробнее...
 
ILG_API ilg_status ILG_CALL ilg_get_options (ilg_options *pOptions)
 Возвращает глобальные настройки библиотеки. Подробнее...
 
enum  ilg_status {
  ILG_OK = 0 , ILG_E_FAIL , ILG_E_PENDING , ILG_E_BOUNDS ,
  ILG_E_NOTIMPL , ILG_E_POINTER , ILG_E_ABORT , ILG_E_HANDLE ,
  ILG_E_OUTOFMEMORY , ILG_E_INVALIDARG , ILG_E_WRONG_SDK_VERSION , ILG_E_NOT_INITIALIZED ,
  ILG_E_BUFFER_TOO_SMALL , ILG_E_OUT_OF_RESOURCES , ILG_E_BLOCKING_CALL_NOT_ALLOWED , ILG_E_PORT_NOT_EXIST ,
  ILG_E_PORT_ACCESS_DENIED , ILG_E_PORT_OPEN_FAILED , ILG_E_CONNECTION_ERROR , ILG_E_CONNECTION_DOWN ,
  ILG_E_REQUEST_TIMEOUT , ILG_E_BAD_RESPONSE , ILG_E_CONVERTER_ERROR , ILG_E_CTR_NOT_EXIST ,
  ILG_E_LICENSE_ERROR , ILG_E_LICENSE_NOT_FOUND , ILG_E_LICENSE_EXPIRED , ILG_E_LICENSE_CONTROLLERS ,
  ILG_E_LICENSE_READ_KEYS , ILG_E_LICENSE_WRITE_KEYS , ILG_E_NOT_SUPPORTED , ILG_E_FIRMWARE_FILESIZE ,
  ILG_E_BOOTLOADER_NOSTART , ILG_E_NO_COMPATIBLE , ILG_E_INVALID_DEV_NUM , ILG_E_TOOLARGE_FIRMWARE ,
  ILG_E_SEQUENCE_DATA , ILG_E_DATA_INTEGRITY , ILG_E_FIRMWARE_OTHER , ILG_E_RUN_FIRMWARE_FAIL ,
  ILG_E_FIRMWARE_IMAGE_INVALID , ILG_E_CTR_NACK , ILG_STATUS_SIZE
}
 Коды ошибок. Подробнее...
 
#define ILG_SUCCEEDED(status)   ((status) == ILG_OK)
 Проверяет код возврата SDK на успех. Подробнее...
 
#define ILG_FAILED(status)   ((status) != ILG_OK)
 Проверяет код возврата SDK на ошибку. Подробнее...
 

Макросы версии SDK Guard.

#define ILG_VERSION_MAJOR   1
 Основной номер версии библиотеки SDK Guard. Подробнее...
 
#define ILG_VERSION_MINOR   0
 Минорный номер версии библиотеки SDK Guard. Подробнее...
 
#define ILG_VERSION_PATCH   1
 Номер патча библиотеки SDK Guard. Подробнее...
 
#define ILG_VERSION    ((ILG_VERSION_MAJOR << 24) | (ILG_VERSION_MINOR << 16) | (ILG_VERSION_PATCH << 8) | 0xC0)
 Полный номер версии библиотеки SDK Guard.
 
#define ILG_VERSION_GET_MAJOR(v)   ((v) >> 24)
 
#define ILG_VERSION_GET_MINOR(v)   (((v) >> 16) & 0xff)
 
#define ILG_VERSION_GET_PATCH(v)   (((v) >> 8) & 0xff)
 

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

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

Ссылки на инфо о инициализации и завершении библиотеки, проверке версии и обработке ошибок.

Макросы

◆ ILG_FAILED

#define ILG_FAILED (   status)    ((status) != ILG_OK)

Проверяет код возврата SDK на ошибку.

Аргументы
[in]statusКод возврата.

◆ ILG_SUCCEEDED

#define ILG_SUCCEEDED (   status)    ((status) == ILG_OK)

Проверяет код возврата SDK на успех.

Аргументы
[in]statusКод возврата.

◆ ILG_VERSION_GET_MAJOR

#define ILG_VERSION_GET_MAJOR (   v)    ((v) >> 24)

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

◆ ILG_VERSION_GET_MINOR

#define ILG_VERSION_GET_MINOR (   v)    (((v) >> 16) & 0xff)

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

◆ ILG_VERSION_GET_PATCH

#define ILG_VERSION_GET_PATCH (   v)    (((v) >> 8) & 0xff)

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

◆ ILG_VERSION_MAJOR

#define ILG_VERSION_MAJOR   1

Основной номер версии библиотеки SDK Guard.

Увеличивается, когда API становится не совместимым с предыдущими версиями.

◆ ILG_VERSION_MINOR

#define ILG_VERSION_MINOR   0

Минорный номер версии библиотеки SDK Guard.

Увеличивается, когда в API добавляются новые возможности, но при этом сохраняется обратная совместимость.

◆ ILG_VERSION_PATCH

#define ILG_VERSION_PATCH   1

Номер патча библиотеки SDK Guard.

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

Типы

◆ ilg_logging_callback

typedef void(ILG_CALL * ilg_logging_callback) (ilg_log_level nLevel, const char *pContext, const char *pMessage, void *pUserData)

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

Функция имеет следующий вид:

void logging_callback(ilg_log_level level, const char *pContext, const char *pMessage, void
*pUserData)
ilg_log_level
Уровень лога.
Definition: ilguard.h:434
Аргументы
[in]nLevelУровень лога.
[in]pContextКонтекст.
[in]pMessageТекст сообщения.
[in]pUserDataУказатель на данные пользователя.

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

◆ ilg_status

enum ilg_status

Коды ошибок.

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

Операция успешно выполнена.

ILG_E_FAIL 

Неизвестная ошибка.

ILG_E_PENDING 

Операция выполняется асинхронно.

ILG_E_BOUNDS 

Индекс вне диапазона.

ILG_E_NOTIMPL 

Команда не поддерживается конвертером.

ILG_E_POINTER 

Неправильный указатель.

ILG_E_ABORT 

Операция прервана.

ILG_E_HANDLE 

Неправильный дескриптор.

ILG_E_OUTOFMEMORY 

Недостаточно памяти.

ILG_E_INVALIDARG 

Неправильные параметры.

ILG_E_WRONG_SDK_VERSION 

Неправильная версия Sdk Guard передана в функцию ilg_init.

ILG_E_NOT_INITIALIZED 

Библиотека не инициализирована с помощью ilg_init.

ILG_E_BUFFER_TOO_SMALL 

Размер буфера слишком мал.

ILG_E_OUT_OF_RESOURCES 

Недостаточно ресурсов для завершения операции.

ILG_E_BLOCKING_CALL_NOT_ALLOWED 

Блокирующий вызов функции из обработчика не разрешен.

ILG_E_PORT_NOT_EXIST 

Порт не существует.

ILG_E_PORT_ACCESS_DENIED 

Нет доступа к порту.

ILG_E_PORT_OPEN_FAILED 

Неизвестная ошибка открытия порта.

ILG_E_CONNECTION_ERROR 

Ошибка подключения.

ILG_E_CONNECTION_DOWN 

Связь с устройством была потеряна.

ILG_E_REQUEST_TIMEOUT 

Тайм-аут запроса к конвертеру.

ILG_E_BAD_RESPONSE 

Не распознан ответ конвертера.

ILG_E_CONVERTER_ERROR 

Неизвестная ошибка конвертера.

ILG_E_CTR_NOT_EXIST 

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

ILG_E_LICENSE_ERROR 

Неизвестная ошибка лицензии.

ILG_E_LICENSE_NOT_FOUND 

Лицензия не найдена.

ILG_E_LICENSE_EXPIRED 

Лицензия просрочена.

ILG_E_LICENSE_CONTROLLERS 

Ограничение лицензии на количество контроллеров.

ILG_E_LICENSE_READ_KEYS 

Ограничение лицензии на количество считываемых ключей.

ILG_E_LICENSE_WRITE_KEYS 

Ограничение лицензии на количество записываемых ключей.

ILG_E_NOT_SUPPORTED 

Команда не поддерживается.

ILG_E_FIRMWARE_FILESIZE 

Размер файла не соответствует запросу.

ILG_E_BOOTLOADER_NOSTART 

Не удалось активировать режим прошивки.

ILG_E_NO_COMPATIBLE 

Не подходит для данной модели устройства.

ILG_E_INVALID_DEV_NUM 

Не подходит для данного номера устройства.

ILG_E_TOOLARGE_FIRMWARE 

Слишком большой размер данных.

ILG_E_SEQUENCE_DATA 

Нарушена последовательность передачи данных.

ILG_E_DATA_INTEGRITY 

Нарушена целостность данных.

ILG_E_FIRMWARE_OTHER 

Другая ошибка прошивки.

ILG_E_RUN_FIRMWARE_FAIL 

Не найдена запущенная программа контроллера. Попробуйте перезапустить устройство.

ILG_E_FIRMWARE_IMAGE_INVALID 

Неправильный образ прошивки.

ILG_E_CTR_NACK 

Контроллер отказал в выполнении команды.

ILG_STATUS_SIZE 

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

Функции

◆ ilg_check_version()

bool ilg_check_version ( )
inline

Проверяет версию SDK.

Возвращает true если версия библиотеки совместима с этим заголовочным файлом.

◆ ilg_cleanup()

ILG_API ilg_status ILG_CALL ilg_cleanup ( )

Освобождает ресурсы библиотеки.

Освобождает память и закрывает все дескрипторы библиотеки.

Предупреждения
Эта функция не потокобезопасна. Её нельзя вызывать одновременно с функциями, которым требуется инициализация библиотеки. Её нельзя вызывать из функции обратного вызова.
Возвращает
Всегда код успеха ILG_OK.
См. также
ilg_init

◆ ilg_get_error_text()

ILG_API const char *ILG_CALL ilg_get_error_text ( ilg_status  nErrorCode)

Возвращает описание ошибки по её коду.

Прим.
Эта функция не требует инициализации библиотеки функцией ilg_init.
Аргументы
[in]nErrorCodeКод ошибки.

◆ ilg_get_options()

ILG_API ilg_status ILG_CALL ilg_get_options ( ilg_options pOptions)

Возвращает глобальные настройки библиотеки.

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

◆ ilg_get_version()

ILG_API uint32_t ILG_CALL ilg_get_version ( )

Возвращает номер версии библиотеки.

Прим.
Эта функция не требует инициализации библиотеки функцией ilg_init.

◆ ilg_init()

ILG_API ilg_status ILG_CALL ilg_init ( uint32_t  nVersionRequested = ILG_VERSION)

Инициализирует библиотеку SDK Guard.

Эта функция инициализирует библиотеку SDK Guard. Функция ilg_init должна быть вызвана первой перед вызовом других функций, кроме ilg_get_version, ilg_get_error_text, ilg_set_log_level, ilg_set_log_callback и ilg_free_memory. Завершив использование библиотеки приложение должно вызвать ilg_cleanup, чтобы библиотека освободила внутренние ресурсы. Приложение должно вызвать ilg_cleanup при каждом успешном вызове ilg_init, т.к. используется внутренний счётчик инициализаций.

Прим.
Эта функция сама проверяет версию SDK, поэтому вызывать ilg_check_version не нужно.
Аргументы
[in]nVersionRequestedНомер версии API SDK Guard, всегда должно быть равен ILG_VERSION.
Возвращает
ILG_OK в случае успеха, иначе код ошибки.
Возвращаемые значения
`ILG_E_WRONG_SDK_VERSION`запрошенная версия SDK не поддерживается.
См. также
ilg_cleanup

◆ ilg_set_log_callback()

ILG_API ilg_status ILG_CALL ilg_set_log_callback ( ilg_logging_callback  pCallback,
void *  pUserData = nullptr 
)

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

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

◆ ilg_set_log_level()

ILG_API ilg_status ILG_CALL ilg_set_log_level ( ilg_log_level  nLevel)

Устанавливает уровень лога отладки.

Прим.
Эта функция не требует инициализации библиотеки функцией ilg_init.
Аргументы
[in]nLevelУровень лога отладка.
Возвращает
Всегда код успеха ILG_OK.

◆ ilg_set_options()

ILG_API ilg_status ILG_CALL ilg_set_options ( const ilg_options pOptions)

Устанавливает глобальные настройки библиотеки.

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