Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
card reader ACR 122U
|
|||
|---|---|---|---|
|
#18+
Народ, Кто уже пргограммировал чтение карт ридеров чипованных карт (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; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 18:06 |
|
||
|
card reader ACR 122U
|
|||
|---|---|---|---|
|
#18+
Вызывать просто. Надо через DECLARE DLL объявить сначала. Как именно объявить будет понятно из ct_api.h там надо посмотреть как объявлены CT_init(), CT_data(), CT_close() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 18:21 |
|
||
|
card reader ACR 122U
|
|||
|---|---|---|---|
|
#18+
Dima T, Здраствуй, Спасибо за оперативность, не уверен что смогу самостоятельно разобраться с INCLUDE файлом, но я его прилагаю в атаче.. Бкдь добр, глянь в него. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 18:56 |
|
||
|
card reader ACR 122U
|
|||
|---|---|---|---|
|
#18+
ValeriiDima T, Здраствуй, Спасибо за оперативность, не уверен что смогу самостоятельно разобраться с INCLUDE файлом, но я его прилагаю в атаче.. Бкдь добр, глянь в него. Вроде все возвращают CHAR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 18:57 |
|
||
|
card reader ACR 122U
|
|||
|---|---|---|---|
|
#18+
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') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 22:57 |
|
||
|
card reader ACR 122U
|
|||
|---|---|---|---|
|
#18+
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') не совсем понятно что это, создается объект, а как считать с него данные? ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2013, 23:20 |
|
||
|
card reader ACR 122U
|
|||
|---|---|---|---|
|
#18+
Valerii, Создай объекты и смотри на их методы. Сначала надо законнектиться к ридеру. PCSCCard_Mifare.ConnectionReader=List_readers(1) PCSCCard_Mifare.Connect() Затем для разных типов карт идет своя кухня. Сложнее с картами MIFARE 1k -т.к. там надо устанваливать разные ключи для считывания для разных ячеек. Все закодировано в бинарном виде. В комплекте с SDK идет описание для разных карт (папка DOCS) В целом VFP очень туго работает с этими картами, т.к. эти библиотеки не генерят событие по изменению статуса карты (Убрали или положили) (у меня не получилось). Пришлось на форму вешать таймер и регуляно опрашивать состояние ридера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2013, 00:09 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=41&tid=1583023]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 453ms |

| 0 / 0 |
