Лабораторный практикум по изучению возможностей и приобретению практических навыков разработки приложений с использованием смарт-карт ASE фирмы Athena Smartcard Solutions Ltd. Бабенко Л.К - 9 стр.

UptoLike

Открытие ридера
Для открытия устройства чтения/записи необходимо вызвать функцию
ASEOpenReaderByPort или ASEOpen ReaderByName. Первая производит откры-
тие устройства ASEDrive, подключенного к указанному порту ввода/вывода
(последовательному COM1, COM2 или параллельному LPT), втораяпо ука-
занному имени в БД ридеров ASEDrive. Предпочтений в использовании той или
иной команды нет, выбор существует лишь для удобства пользователя и избав-
ляет от необходимости знания того, к какому именно порту компьютера под-
ключен ридер. Если в системе установлен и зарегистрирован только один ридер,
то для его открытия удобно воспользоваться командой ASEOpenReaderByPort,
указав в качестве первого параметра (который отвечает за имя устройства в базе
данных) ключевое слово NULL, что будет означать требование выбора первого
по
списку ридера в БД.
// Отрытие порта устройства чтения
printf("\nОткроем устройство чтения.\n");
AseResult = ASEReaderOpenByPort(NULL, &hAseReader);
// Первый по списку
if(AseResult != 0) exit(1);
В переменную hAseReader занесется хэндл (указатель) устройства чте-
ния/записи ASEDrive, по которому в дальнейшем и будет производиться обра-
щение к ридеру и вызов функций API устройства ASEDrive.
После этого могут быть произведены различные действия по
настройке
параметров ридера, например, установка тайм-аута (времени ожидания выпол-
нения команды смарт-картой) на то или иное гнездо устройства, установка или
снятие показаний со встроенных часов реального времени, получение характе-
ристик устройства и другие. К примеру, установка тайм-аута на главное гнездо
ридера с целью ограничения ожидания ответа от ИК
в случае каких-либо про-
блем, может быть произведена следующим образом:
// Установка тайм-аута карты на 5 секунд
printf("\nУстановка тайм-аута главного гнезда на 5 cекунд.\n");
AseResult = ASESetTimeout(hAseReader, MAIN_CARD_TIMEOUT, 5000);
if(AseResult != 0) exit(1);
В качестве первого параметра функции необходимо указать хэндл ри-
дера, полученный после вызова функции ASEReaderOpenByPort.
Подача питания на карту
После открытия ридера необходимо убедиться
, что карта находится в
гнезде устройства и подать на нее питание. Одновременно выбирается протокол
передачи данных с карты на терминал и обратноТ = 0 или Т = 1. Функция
9