Sample code for 30+ languages & platforms
Dart

Gather Smartcard Debug Information for Chilkat

See more ScMinidriver Examples

This example demonstrates how to gather information to send to support@chilkatsoft.com about your smartcard.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  // First, Chilkat recommends downloading the MGTEK Smartcard Minidriver Tool to get information 
  // about your smartcard. 

  // The tool can be downloaded from https://www.mgtek.com/smartcard

  // --------------------------------------------------------------------------------------------------------
  // 1. Select the smartcard as shown below and send Chilkat a screenshot of the basic smartcard information.
  // --------------------------------------------------------------------------------------------------------
  // 
  // (image:https://example-code.com/images/mgtek_screenshot.jpg/endImage)
  // 
  // --------------------------------------------------------------------------------------------------------
  // 2. Select the cmapfile (if present) as shown below and send Chilkat a screenshot of the CSP container map
  // --------------------------------------------------------------------------------------------------------
  // 
  // (image:https://example-code.com/images/cmapfile_screenshot.jpg/endImage)
  // 

  // ---------------------------------------------------------
  // Chilkat provides functions to get information about the smartcard, and what it contains.
  // Send Chilkat the output of the following source code:

  final scmd = CkScMinidriver();

  // Reader names (smart card readers or USB tokens) can be discovered
  // via PCSC List Readers or PCSC Find Smart Cards
  final readerName = 'Alcor Micro USB Smart Card Reader 0';
  try {
    scmd.acquireContext(readerName);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final json = CkJsonObject();
  json.emitCompact = false;

  // ------------------------------------------------------
  // 3. Send Chilkat the JSON returned by GetCardProperties
  // ------------------------------------------------------
  try {
    scmd.getCardProperties(json);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print(json.emit());

  // ------------------------------------------------------
  // 4. Send Chilkat the JSON returned by GetCspContainerMap
  // ------------------------------------------------------
  json.clear();
  try {
    scmd.getCspContainerMap(json);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print(json.emit());
}