⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ct.c

📁 This little Program allows you to send commands to the CardReader (CT-BCS) or to the Card itself. F
💻 C
字号:
/* Copyright (C) 1998 Gregor A. Panstruga   see ctapi.h for detailsa*//*    Sample file to read the GDO of a Patient-DataCard issued by   QuaSi-Niere Germany*/#include "ctapi.h"#include "tools.h"#include <stdio.h>#include <stdlib.h>unsigned char RESET_CT[] = {0x20, 0x11, 0x00, 0x00, 0x00};unsigned char REQ_ICC[] = {0x20, 0x12, 0x01, 0x00, 0x01, 0x05};unsigned char EJECT_ICC[] = {0x20, 0x15, 0x01, 0x03, 0x01, 0x05};unsigned char GET_STAT80[] = {0x20, 0x13, 0x00, 0x80, 0x00};unsigned char GET_STAT46[] = {0x20, 0x13, 0x00, 0x46, 0x00};unsigned char SELECT_MF[] = {0x00, 0xa4, 0x00, 0x0c, 0x02, 0x3f, 0x00};unsigned char SELECT_GDO[] = {0x00, 0xa4, 0x00, 0x0c, 0x02, 0x2f, 0x02};unsigned char READ_BINARY[] = {0x00, 0xb0, 0x00, 0x00, 63}; int main(int argc, char *argv[]){   unsigned short ctn = 10;   char retval;   unsigned char sad;   unsigned char dad;   unsigned short lenc;   unsigned short lenr;   unsigned char command[300];   unsigned char response[300];   int i;   retval = CT_init(ctn, 0);  // tries to open MCT on port ttyS1 (COM2)   if (retval != OK)   {      printf("no MCT found on port ttyS1\n");      exit (-1);   }    printf("RESET_CT:\n");   memcpy(command, RESET_CT, sizeof(RESET_CT));   sad = HOST;   dad = CT;   lenr = 200;   lenc = sizeof(RESET_CT);      retval =CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);   if (retval != OK)   {      printf("RESET_CT not successful\n");      exit (-1);   }   xdata(response, lenr);   printf("GET_STAT46:\n");   memcpy(command, GET_STAT46, sizeof(GET_STAT46));   sad = HOST;   dad = CT;   lenr = 200;   lenc = sizeof(GET_STAT46);      retval = CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);   if (retval != OK)   {      printf("GET_STAT46 not successful\n");      exit (-1);   }   xdata(response, lenr);   printf("GET_STAT80\n");   memcpy(command, GET_STAT80, sizeof(GET_STAT80));   sad = HOST;   dad = CT;   lenr = 200;   lenc = sizeof(GET_STAT80);   retval = CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);   if (retval != OK)   {      printf("GET_STAT80 not successful\n");      exit (-1);   }   xdata (response, lenr);   printf("Please insert Card into Slot #1 within 5sec.\nREQ_ICC:\n");   memcpy(command, REQ_ICC, sizeof(REQ_ICC));   sad = HOST;   dad = CT;   lenr = 200;   lenc = sizeof(REQ_ICC);   retval =CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);   if (retval != OK)   {      printf("REQ_ICC not successful\n");      exit (-1);   }   xdata (response, lenr);   printf("SELECT MF\n");   memcpy (command, SELECT_MF, sizeof(SELECT_MF));   sad = HOST;   dad = ICC1;   lenr = 200;   lenc = sizeof(SELECT_MF);   retval = CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);   if (retval != OK)   {      printf("SELECT_MF not successful\n");      exit (-1);   }   xdata (response, lenr);    printf("SELECT GDO\n");   memcpy (command, SELECT_GDO, sizeof(SELECT_GDO));   sad = HOST;   dad = ICC1;   lenr = 200;   lenc = sizeof(SELECT_GDO);   retval = CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);   if (retval != OK)   {      printf("SELECT_GDO not successful\n");      exit (-1);   }   xdata (response, lenr);   printf("READ BINARY\n");   memcpy (command, READ_BINARY, sizeof(READ_BINARY));   sad = HOST;   dad = ICC1;   lenr = 200;   lenc = sizeof(READ_BINARY);   retval = CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);   if (retval != OK)   {      printf("READ BINARY not successful\n");      exit (-1);   }   xdata (response, lenr);   printf("Please remove Card from Slot #1 within 5sec.\nEJECT_ICC:\n");   memcpy(command, EJECT_ICC, sizeof(EJECT_ICC));   sad = HOST;   dad = CT;   lenr = 200;   lenc = sizeof(EJECT_ICC);   retval =CT_data(ctn, &dad, &sad, lenc, command, &lenr, response);   if (retval != 0)   {      printf("EJCT_ICC not successful\n");      exit (-1);   }   xdata (response, lenr);   CT_close(ctn);} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -