powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / card reader ACR 122U
7 сообщений из 7, страница 1 из 1
card reader ACR 122U
    #38280662
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ,
Кто уже пргограммировал чтение карт ридеров чипованных карт (rFid) модели ACR 122U.
У производителя есть API dll но непонятно как вызывать эти функции и процедуры.
Кто поможет? ВСЕМ ОГРОМНОЕ СПАСИБО!
в аттаче есть библиотеки...

это есть пример от производителя ..

#include <stdio.h>
#include <ct_api.h>

int main(int argc, char *argv[])
{
char ret;
unsigned short ctn;
unsigned short pn;
unsigned short sad;
unsigned short dad;

// REQUEST ICC
unsigned char command[] = { 0x20, 0x12, 0x01, 0x00, 0x00 };
unsigned short lenc = sizeof(command);

unsigned char response[300];
unsigned short lenr = sizeof(response);

ctn = 1;
pn = 1;

// Initialize card terminal
ret = CT_init(ctn, pn);
if (ret != OK)
{
printf("Error: CT_init failed with error %d\n", ret);
return 1;
}

sad = 2; // Source = Host
dad = 1; // Destination = Card Terminal

// Send command
ret = CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);
if (ret != OK)
printf("Error: CT_data failed with error %d\n", ret);
else
{
// Display response
printf("Response: ");
for (i = 0; i < lenr; i++)
printf("%02X ", response[i]);
printf("\n");
}

// Close card terminal
ret = CT_close(ctn);
if (ret != OK)
printf("Error: CT_close failed with error %d\n", ret);

return 0;
}
...
Рейтинг: 0 / 0
card reader ACR 122U
    #38280681
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вызывать просто. Надо через DECLARE DLL объявить сначала.
Как именно объявить будет понятно из ct_api.h там надо посмотреть как объявлены CT_init(), CT_data(), CT_close()
...
Рейтинг: 0 / 0
card reader ACR 122U
    #38280724
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Здраствуй,
Спасибо за оперативность, не уверен что смогу самостоятельно разобраться с INCLUDE файлом, но я его прилагаю в атаче..
Бкдь добр, глянь в него.
...
Рейтинг: 0 / 0
card reader ACR 122U
    #38280726
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriiDima T,

Здраствуй,
Спасибо за оперативность, не уверен что смогу самостоятельно разобраться с INCLUDE файлом, но я его прилагаю в атаче..
Бкдь добр, глянь в него.

Вроде все возвращают CHAR
...
Рейтинг: 0 / 0
card reader ACR 122U
    #38280890
RFID_TO_FOX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ValeriiValeriiDima T,

Здраствуй,
Спасибо за оперативность, не уверен что смогу самостоятельно разобраться с INCLUDE файлом, но я его прилагаю в атаче..
Бкдь добр, глянь в него.

Вроде все возвращают CHAR

*Попробуй так

PUBLIC PCSCInfo
PCSCInfo=CREATEOBJECT('ESDK2.PCSCInfo.1')
PUBLIC ARRAY List_readers(1)
List_readers(1)='?'
List_readers=PCSCInfo.listreaders()
IF List_readers(1)='?' OR TYPE("List_readers(1)")="L"
IF Type("PCSCInfo")="O"
RELEASE PCSCInfo
=MESSAGEBOX('No readers',16)
return
ENDIF
ENDIF

PUBLIC PCSCCard_Mifare
PCSCCard_Mifare=CREATEOBJECT('ESDK2.PCSCCard_Mifare')
...
Рейтинг: 0 / 0
card reader ACR 122U
    #38280908
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RFID_TO_FOXValeriiпропущено...


Вроде все возвращают CHAR

*Попробуй так

PUBLIC PCSCInfo
PCSCInfo=CREATEOBJECT('ESDK2.PCSCInfo.1')
PUBLIC ARRAY List_readers(1)
List_readers(1)='?'
List_readers=PCSCInfo.listreaders()
IF List_readers(1)='?' OR TYPE("List_readers(1)")="L"
IF Type("PCSCInfo")="O"
RELEASE PCSCInfo
=MESSAGEBOX('No readers',16)
return
ENDIF
ENDIF

PUBLIC PCSCCard_Mifare
PCSCCard_Mifare=CREATEOBJECT('ESDK2.PCSCCard_Mifare')


не совсем понятно что это, создается объект, а как считать с него данные?

???
...
Рейтинг: 0 / 0
card reader ACR 122U
    #38280943
RFID_TO_FOX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valerii,

Создай объекты и смотри на их методы.

Сначала надо законнектиться к ридеру.

PCSCCard_Mifare.ConnectionReader=List_readers(1)
PCSCCard_Mifare.Connect()

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

Сложнее с картами MIFARE 1k -т.к. там надо устанваливать разные ключи для считывания для разных ячеек.
Все закодировано в бинарном виде.

В комплекте с SDK идет описание для разных карт (папка DOCS)

В целом VFP очень туго работает с этими картами, т.к. эти библиотеки не генерят событие по изменению статуса карты (Убрали или положили) (у меня не получилось). Пришлось на форму вешать таймер и регуляно опрашивать состояние ридера.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / card reader ACR 122U
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]