Assembly: CardWerk.SmartCard (in CardWerk.SmartCard.dll)
Public Interface ICardTerminal
This language is not supported or no code example is available.
public interface ICardTerminal
This language is not supported or no code example is available.
public interface class ICardTerminal
This language is not supported or no code example is available.
Name | Description | |
---|---|---|
![]() |
Config | Returns the configuration information with which this card terminal was initialized. |
![]() |
FunctionalUnits | Indicates which functional units are available with this card terminal. The availability of certain functional units classifies the card terminal according to the ZKA. Other units indicate support for card ejection and positioning. |
![]() |
InternalName | This is the internal name of this card terminal. This name may be more useful to the programmer than to the user. |
![]() |
ManufacturerName | Name of the manufacturer of this card terminal. |
![]() |
PhysicalConnection | Returns descriptive information about the physical connector that this card terminal is attached to. This should use some common notation such as COM1, LPT1 or USB. |
![]() |
ProductAdditionalInfo | Additional information about the product that is neither its name, nor some version information. This can be anything that the card terminal manufacturer wants to tell. |
![]() |
ProductName | Name of the product itself. Short and clear. |
![]() |
ProductSerialNumber | Serial number of the product if available. |
![]() |
ProductVersion | Version of the product. It is not defined whether this is some firmware version or some driver version. Thus it is suggested that the returned string supplies as much human readable version information as possible. |
![]() |
Slots | Indicates the total number of slots of this card terminal. |
![]() |
UserSlots | Indicates the number of user accessible card slots of this card terminal. |
Name | Description | |
---|---|---|
![]() |
BeginTransaction(int) | Begins a card transaction. |
![]() |
ConnectCard(int, CardTypes, out byte[]) | Powers up the inserted card and attempts to establish a communication connection with it. Once the connection is established the card is exclusively locked and cannot be accessed by another application or thread. |
![]() |
DeliverCard(int, bool) | Explicitly requests that an inserted card is delivered or captured. This is only applicable if the card terminal has such mechanism, in most cases it won't. |
![]() |
DisconnectCard(int) | Powers down the inserted card, and terminates the logical connection with it. |
![]() |
EndTransaction(int) | Ends a card transaction. |
![]() |
Init(CardTerminalConfig) | Initializes this card terminal with the given configuration information. |
![]() |
IsCardPresent(int, ref bool) | Quick poll that indicates whether a card is present in a card terminal slot. This method can be called from any thread. It is the only multi-threading safe method of this interface. |
![]() |
ReconnectCard(int, out byte[]) | Resets a previously established communication connection with the card. |
![]() |
ResetCardTerminal() | Entirely resets the card terminal, disconnecting (powering down) any existing card connection. |
![]() |
SendCommand(int, CardCommandAPDU) | Sends the command APDU to the given card terminal slot and returns the response APDU from the inserted card. |
As an implementation of this interface very likely holds onto some unmanaged resources, it is required that all objects implementing this interface, also implement the IDisposable interface, releasing its unmanaged resources in its Dispose method.
The SCard Class Library currently provides two implementations of this Interface, one is based on its PC/SC wrapper classes and another is based on its CT-API wrapper classes. However, future versions may include additional implementations. Also, it is possible for third parties to supply additional implementations of this interface.
Being an abstraction, this Interface only supports features that are common among different driver technologies. Hence, more sophisticated applications might need to use the low level wrappers directly.
The methods of the ICardTerminal interface are only to be called from the owning thread. There is a single exception: The method IsCardPresent must be callable from any thread.
In order to simplify implementations of this interface the common base class CardTerminalBase is supplied.
Card terminals that include a PIN pad and support secure PIN entry shall implement the interface ICardTerminalClass2 alongside this interface.