ОС: Windows
API: LINK от версии 1.0.1.1
Описание:
Я разрабатываю приложение на C++, которое взаимодействует со устройством чтения смарт-карт с использованием библиотеки CT-API. Однако я столкнулся с проблемой, из-за которой функция CT_init завершается с ошибкой с кодом -8.
Вот соответствующий фрагмент кода:
#include "framework.h"
#include "test.h"
#include
#include
int main(int argc, char* argv[])
{
char ret;
unsigned short ctn=0;
unsigned short pn = 0; // Initialize 'pn' with a default value of 0
unsigned char sad;
unsigned char 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);
unsigned short i;
// Hardcoded values for card terminal and ICC interfaces
const char* ctacs_content =
"[CardTerminal]\n"
"CTN1=ACS ACR122\n\n"
"[ACS ACR122]\n"
"ICC1=ACS ACR122 0\n"
"ICC2=Broadcom Corp Contacted SmartCard 0\n";
// 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);
printf("\n");
}
// Close card terminal
ret = CT_close(ctn);
if (ret != OK)
printf("Error: CT_close failed with error %d\n", ret);
return 0;
}
Я получаю сообщение об ошибке:
Error: CT_init failed with error -8
Кроме того, вот содержимое моего файла ctacs.ini, который я жестко запрограммировал в своем коде, как вы можете видеть выше:
[CardTerminal]
CTN1=ACS ACR122
[ACS ACR122]
ICC1=ACS ACR122 0
ICC2=Broadcom Corp Contacted SmartCard 0
```
Я проверил документацию по библиотеке CT-API, но не смог найти никакой конкретной информации о том, что означает код ошибки -8. Я также проверил правильность параметров, переданных в CT_init.
Может кто-нибудь помочь мне понять, что означает этот код ошибки и как его устранить? Существуют ли какие-либо распространенные причины, по которым CT_init может завершиться с ошибкой -8?
Будем очень признательны за любую помощь или информацию. Спасибо!
Диспетчер устройств обнаружил устройство чтения карт
[img]https://i. sstatic.net/LJAwlgdr.jpg[/img]
Я написал скрипт Python, чтобы просмотреть детали устройства чтения NFC:
import smartcard.System
def list_readers():
readers = smartcard.System.readers()
if len(readers) == 0:
print("No smart card readers found")
else:
for reader in readers:
print("Reader:", reader)
if __name__ == "__main__":
list_readers()
и вот результат
C:\Users\DELL\source\pytrhon>python test_reader.py Reader : ACS ACR122
0 Читатель: Broadcom Corp связалась со смарт-картой 0
Как вы думаете, мои ini-файлы верны?
// Hardcoded values for card terminal and ICC interfaces
const char* ctacs_content =
"[CardTerminal]\n"
"CTN1=ACS ACR122\n\n"
"[ACS ACR122]\n"
"ICC1=ACS ACR122 0\n"
"ICC2=Broadcom Corp Contacted SmartCard 0\n";
Подробнее здесь: https://stackoverflow.com/questions/785 ... -reader-co
Сбой CT_init с ошибкой -8 при использовании библиотеки CT-API для связи со устройством чтения смарт-карт ACR122U ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение