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

Заголовочный файл SDK Readers с классами-помощниками C++. Подробнее...

#include <chrono>
#include <exception>
#include <string>
#include <vector>
#include "ilreaders.h"
Граф включаемых заголовочных файлов для ilr_cpp_helpers.h:

См. исходные тексты.

Классы

class  ilr::CILRException
 Класс исключения SDK Readers. Подробнее...
 
class  ilr::CCardUID
 Класс ID карты. Подробнее...
 
class  ilr::CMifareClassicKey
 Класс ключа аутентификации Mifare Classic. Подробнее...
 
class  ilr::CMifarePlusKey
 Ключ аутентификации Mifare Plus. Подробнее...
 
class  ilr::CILRHandle
 Класс дескриптора SDK. Подробнее...
 
class  ilr::CAsyncCommand
 Класс команды SDK. Подробнее...
 
class  ilr::CReaderSearch
 Класс поиска считывателей. Подробнее...
 
class  ilr::CReader
 Класс считывателя. Подробнее...
 
class  ilr::CILR
 Класс для инициализации/финализации библиотеки SDK. Подробнее...
 

Макросы

#define GET_BIT(val, bitN)   (bool)((val >> (bitN)) & 1)
 Возвращает true если бит bitN установлен в числе val. Подробнее...
 
#define SET_BIT(val, bitN, On)    { (On) ? ((val) |= (1 << (bitN))) : ((val) &= ~(1 << (bitN))); }
 Устанавливает/снимает бит bitN в числе val. Подробнее...
 

Функции

void ilr::ILRCheck (ilr_status nCode)
 Бросает исключение если код возврата является ошибкой. Подробнее...
 
std::chrono::steady_clock::time_point ilr::now ()
 
template<class result_t = std::chrono::milliseconds, class clock_t = std::chrono::steady_clock, class duration_t = std::chrono::milliseconds>
auto ilr::since (std::chrono::time_point< clock_t, duration_t > const &start)
 Возвращает интервал времени в миллисекундах от времени start до текущего времени. Подробнее...
 
std::string ilr::SdkVersionToStr (uint32_t nVersion)
 Преобразует версию Sdk Readers в строку. Подробнее...
 
std::string ilr::ReaderVersionToStr (uint32_t nVersion)
 Преобразует версию считывателя в строку. Подробнее...
 
std::string ilr::TimeToStr (const int64_t &tTime)
 Преобразует время в строку. Подробнее...
 
bool ilr::IsMfClassic (ilr_card_type nType)
 Проверяет является ли карта картой Mifare Classic. Подробнее...
 
bool ilr::IsMfClassicMode (ilr_card_type nType, ilr_mf_plus_sl nSL)
 Проверяет является ли карта картой Mifare Classic или её эмуляцией. Подробнее...
 
bool ilr::IsMfPlus (ilr_card_type nType)
 Проверяет является ли карта картой Mifare Plus. Подробнее...
 
bool ilr::IsMfPlusSL3Mode (ilr_card_type nType, ilr_mf_plus_sl nSL)
 Проверяет является ли карта картой Mifare Plus с уровнем безопасности SL3. Подробнее...
 
size_t ilr::GetNumberOfMfBlocks (uint32_t nMemSize)
 Вычисляет количество блоков карты Mifare Classic/Plus по размеру её памяти. Подробнее...
 
size_t ilr::GetMfSectorByBlock (size_t nBlockIdx)
 Возвращает номер сектора по номеру блока карты Mifare Classic/Plus. Подробнее...
 
size_t ilr::GetMfBlockBySector (size_t nSectorIdx)
 Возвращает номер блока по номеру сектора. Подробнее...
 
size_t ilr::GetMfSectorBlockCount (size_t nSectorIdx)
 Возвращает количество блоков в секторе. Подробнее...
 
void ilr::GetMfBlockInfo (size_t nBlockIdx, size_t &nSectorIdx, size_t &nSBlockIdx, size_t &nSBlockCount)
 Возвращает информацию о блоке карты Mifare Classic/Plus. Подробнее...
 
std::string ilr::CardUIDToStr (ilr_card_type nType, const CCardUID &rUID)
 Преобразует номер карты в строку. Подробнее...
 
uint32_t ilr::GetMfAccessBits (const ilr_mf_block_data &rTrailerData)
 Возвращает биты доступа сектора Mifare Classic/Plus. Подробнее...
 
void ilr::SetMfAccessBits (uint32_t nSectorAccess, ilr_mf_block_data &rTrailerData)
 Устанавливает биты доступа сектора Mifare Classic/Plus. Подробнее...
 
size_t ilr::GetMfAreaByBlockIdx (size_t nBlockIdx)
 Возвращает номер области сектора Mifare Classic/Plus по номеру блока. Подробнее...
 
bool ilr::TryGetMfAreaAccess (uint32_t nSectorAccess, size_t nArea, uint32_t &nAreaAccess)
 Возвращает биты доступа (3 бита) для области сектора Mifare Classic/Plus. Подробнее...
 
void ilr::SetMfAreaAccess (size_t nArea, uint32_t nAreaAccess, uint32_t &nSectorAccess)
 Устанавливает биты доступа для области сектора Mifare (3 бита). Подробнее...
 
CMifareClassicKey ilr::GetMfClassicKey (const ilr_mf_block_data &rTrailerData, bool fKeyB)
 Извлекает ключ аутентификации из блока-прицепа Mifare Classic. Подробнее...
 
void ilr::SetMfClassicKey (ilr_mf_block_data &rTrailerData, bool fKeyB, const ilr_mf_classic_key &nKey)
 Устанавливает ключ аутентификации в блок-прицеп Mifare Classic. Подробнее...
 
bool ilr::TryGetMfValue (const ilr_mf_block_data &rData, int &nValue)
 Пытается получить значение из блока-значения. Подробнее...
 
void ilr::SetMfValue (ilr_mf_block_data &rData, int nValue)
 Устанавливает значение для блока-значения. Подробнее...
 
bool ilr::TryGetMfValueAddress (const ilr_mf_block_data &rData, uint8_t &nAddress)
 Пытается получить адрес из блока-значения. Подробнее...
 
void ilr::SetMfValueAddress (ilr_mf_block_data &rData, uint8_t nAddress)
 Устанавливает адрес для блока-значения. Подробнее...
 

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

Заголовочный файл SDK Readers с классами-помощниками C++.

Классы-обертки для функций библиотеки из ilreaders.h, и вспомогательными функциями для разработчиков.

Макросы

◆ GET_BIT

#define GET_BIT (   val,
  bitN 
)    (bool)((val >> (bitN)) & 1)

Возвращает true если бит bitN установлен в числе val.

Аргументы
[in]valЧисло, в котором проверяется бит.
[in]bitNНомер бита (отсчёт от 0).
Примеры
mf_plus/main.cpp, mf_ultralight/main.cpp и temic/main.cpp.

◆ SET_BIT

#define SET_BIT (   val,
  bitN,
  On 
)     { (On) ? ((val) |= (1 << (bitN))) : ((val) &= ~(1 << (bitN))); }

Устанавливает/снимает бит bitN в числе val.

Аргументы
[in]valЧисло, в котором изменяется бит.
[in]bitNНомер бита (отсчёт от 0).
[in]Ontrue, установить бит, иначе - снять.

Функции

◆ CardUIDToStr()

std::string ilr::CardUIDToStr ( ilr_card_type  nType,
const CCardUID rUID 
)

Преобразует номер карты в строку.

Аргументы
[in]nTypeТип карты.
[in]rUIDНомер карты.
Возвращает
Строка с номером карты.

◆ GetMfAccessBits()

uint32_t ilr::GetMfAccessBits ( const ilr_mf_block_data rTrailerData)

Возвращает биты доступа сектора Mifare Classic/Plus.

Аргументы
[in]rTrailerDataДанные блока-прицепа Mifare.

◆ GetMfAreaByBlockIdx()

size_t ilr::GetMfAreaByBlockIdx ( size_t  nBlockIdx)

Возвращает номер области сектора Mifare Classic/Plus по номеру блока.

Аргументы
[in]nBlockIdxНомер блока (0..255).
Возвращает
Номер области (0..3).

◆ GetMfBlockBySector()

size_t ilr::GetMfBlockBySector ( size_t  nSectorIdx)
inline

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

Аргументы
[in]nSectorIdxНомер сектора.
Возвращает
Номер блока.

◆ GetMfBlockInfo()

void ilr::GetMfBlockInfo ( size_t  nBlockIdx,
size_t &  nSectorIdx,
size_t &  nSBlockIdx,
size_t &  nSBlockCount 
)

Возвращает информацию о блоке карты Mifare Classic/Plus.

Аргументы
[in]nBlockIdxНомер блока.
[out]nSectorIdxНомер сектора.
[out]nSBlockIdxНомер блока в секторе.
[out]nSBlockCountКоличество блоков в секторе.

◆ GetMfClassicKey()

CMifareClassicKey ilr::GetMfClassicKey ( const ilr_mf_block_data rTrailerData,
bool  fKeyB 
)
inline

Извлекает ключ аутентификации из блока-прицепа Mifare Classic.

Аргументы
[in]rTrailerDataДанные блока-прицепа Mifare Classic.
[in]fKeyB=true извлечь ключ Б, иначе - ключ А.
Прим.
Из памяти карты Mifare нельзя прочитать ключ аутентификации, исключением является ключ Б когда он не может быть использован для авторизации.
Примеры
mf_classic/main.cpp.

◆ GetMfSectorBlockCount()

size_t ilr::GetMfSectorBlockCount ( size_t  nSectorIdx)
inline

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

Аргументы
[in]nSectorIdxНомер сектора.
Возвращает
Количество блоков в секторе.

◆ GetMfSectorByBlock()

size_t ilr::GetMfSectorByBlock ( size_t  nBlockIdx)
inline

Возвращает номер сектора по номеру блока карты Mifare Classic/Plus.

Аргументы
[in]nBlockIdxНомер блока.
Возвращает
Номер сектора.

◆ GetNumberOfMfBlocks()

size_t ilr::GetNumberOfMfBlocks ( uint32_t  nMemSize)
inline

Вычисляет количество блоков карты Mifare Classic/Plus по размеру её памяти.

Аргументы
[in]nMemSizeРазмер памяти карты.
Возвращает
Количество блоков Mifare.
Примеры
auto_read_card/main.cpp, mf_classic/main.cpp и mf_plus/main.cpp.

◆ ILRCheck()

void ilr::ILRCheck ( ilr_status  nCode)

Бросает исключение если код возврата является ошибкой.

Проверяет код возврата SDK и если код соответствует ошибке вызывает исключение CILRException.

Аргументы
[in]nCodeКод возврата.
Исключения
CILRExceptionКод возврата не равен `ILR_OK`.

◆ IsMfClassic()

bool ilr::IsMfClassic ( ilr_card_type  nType)

Проверяет является ли карта картой Mifare Classic.

Аргументы
[in]nTypeТип карты.
Возвращает
True это Mifare Classic.

◆ IsMfClassicMode()

bool ilr::IsMfClassicMode ( ilr_card_type  nType,
ilr_mf_plus_sl  nSL 
)

Проверяет является ли карта картой Mifare Classic или её эмуляцией.

Аргументы
[in]nTypeТип карты.
[in]nSLУровень безопасности Mifare Plus.
Возвращает
True это Mifare Classic или Mifare Plus SL1.

◆ IsMfPlus()

bool ilr::IsMfPlus ( ilr_card_type  nType)

Проверяет является ли карта картой Mifare Plus.

Аргументы
[in]nTypeТип карты.
Возвращает
True это Mifare Plus.

◆ IsMfPlusSL3Mode()

bool ilr::IsMfPlusSL3Mode ( ilr_card_type  nType,
ilr_mf_plus_sl  nSL 
)

Проверяет является ли карта картой Mifare Plus с уровнем безопасности SL3.

Аргументы
[in]nTypeТип карты.
[in]nSLУровень безопасности Mifare Plus.
Возвращает
True это Mifare Plus SL3.

◆ now()

std::chrono::steady_clock::time_point ilr::now ( )
inline

Возвращает текущее время.

Примеры
auto_read_card/main.cpp, mf_classic/main.cpp, mf_plus/main.cpp, mf_ultralight/main.cpp и temic/main.cpp.

◆ ReaderVersionToStr()

std::string ilr::ReaderVersionToStr ( uint32_t  nVersion)

Преобразует версию считывателя в строку.

Аргументы
[in]nVersionВерсия считывателя.
Примеры
auto_read_card/main.cpp, card_detector/main.cpp, connect_to_reader/main.cpp, enum_readers/main.cpp, mf_classic/main.cpp, mf_plus/main.cpp, mf_ultralight/main.cpp, reader_detector/main.cpp и temic/main.cpp.

◆ SdkVersionToStr()

std::string ilr::SdkVersionToStr ( uint32_t  nVersion)

Преобразует версию Sdk Readers в строку.

Аргументы
[in]nVersionВерсия SDK.
Примеры
enum_readers/main.cpp.

◆ SetMfAccessBits()

void ilr::SetMfAccessBits ( uint32_t  nSectorAccess,
ilr_mf_block_data rTrailerData 
)

Устанавливает биты доступа сектора Mifare Classic/Plus.

Аргументы
[in]nSectorAccessБиты доступа сектора Mifare Classic/Plus.
[out]rTrailerDataДанные блока-прицепа Mifare.

◆ SetMfAreaAccess()

void ilr::SetMfAreaAccess ( size_t  nArea,
uint32_t  nAreaAccess,
uint32_t &  nSectorAccess 
)

Устанавливает биты доступа для области сектора Mifare (3 бита).

Аргументы
[in]nAreaНомер области 0..3 (=0..2 область данных, =3 прицеп сектора).
[in]nAreaAccessБиты доступа (3 бита) для области сектора Mifare.
[out]nSectorAccessБиты доступа сектора Mifare Classic/Plus.

◆ SetMfClassicKey()

void ilr::SetMfClassicKey ( ilr_mf_block_data rTrailerData,
bool  fKeyB,
const ilr_mf_classic_key nKey 
)
inline

Устанавливает ключ аутентификации в блок-прицеп Mifare Classic.

Аргументы
[out]rTrailerDataДанные блока-прицепа Mifare Classic.
[in]fKeyB=true установить ключ Б, иначе - ключ А.
[in]nKeyКлюч аутентификации Mifare Classic.

◆ SetMfValue()

void ilr::SetMfValue ( ilr_mf_block_data rData,
int  nValue 
)

Устанавливает значение для блока-значения.

Аргументы
[out]rDataДанные блока-значения.
[in]nValueЗначение.

◆ SetMfValueAddress()

void ilr::SetMfValueAddress ( ilr_mf_block_data rData,
uint8_t  nAddress 
)

Устанавливает адрес для блока-значения.

Аргументы
[out]rDataДанные блока-значения.
[in]nAddressАдрес.

◆ since()

template<class result_t = std::chrono::milliseconds, class clock_t = std::chrono::steady_clock, class duration_t = std::chrono::milliseconds>
auto ilr::since ( std::chrono::time_point< clock_t, duration_t > const &  start)
inline

Возвращает интервал времени в миллисекундах от времени start до текущего времени.

Аргументы
[in]startНачальное время.
Примеры
auto_read_card/main.cpp, mf_classic/main.cpp, mf_plus/main.cpp, mf_ultralight/main.cpp и temic/main.cpp.

◆ TimeToStr()

std::string ilr::TimeToStr ( const int64_t &  tTime)

Преобразует время в строку.

Аргументы
[in]tTimeВремя.

◆ TryGetMfAreaAccess()

bool ilr::TryGetMfAreaAccess ( uint32_t  nSectorAccess,
size_t  nArea,
uint32_t &  nAreaAccess 
)

Возвращает биты доступа (3 бита) для области сектора Mifare Classic/Plus.

Аргументы
[in]nSectorAccessБиты доступа сектора Mifare Classic/Plus.
[in]nAreaНомер области 0..3 (=0..2 область данных, =3 прицеп сектора).
[out]nAreaAccessБиты доступа (3 бита) для области сектора Mifare.

◆ TryGetMfValue()

bool ilr::TryGetMfValue ( const ilr_mf_block_data rData,
int &  nValue 
)

Пытается получить значение из блока-значения.

Аргументы
[in]rDataДанные блока-значения.
[out]nValueЗначение.
Возвращает
True, значение успешно получено.

◆ TryGetMfValueAddress()

bool ilr::TryGetMfValueAddress ( const ilr_mf_block_data rData,
uint8_t &  nAddress 
)

Пытается получить адрес из блока-значения.

Аргументы
[in]rDataДанные блока-значения.
[out]nAddressАдрес.