Additional ‘Reader Plugins’ provided by CNA
The Keyple project already hosts several plugins for interfacing with “standard” smartcard reader solutions (PC/SC, Android NFC / OMAPI), or for emulating readers.
To illustrate some other ways of designing plugins, CNA has also released additional plugins under the Eclipse Public License version 2:
- For some of these plugins, the native libraries of the reader solutions are public, in this case, the plugin can be compiled autonomously.
- In the opposite case, a mock is used to compensate the unavailability of the native reader library, meaning that it is necessary to contact the manufacturer in order to compile the plugin.
4 plugins are designed for integration into Android based embedded ticketing terminals equipped with a contactless card reader, as well as one or more contact readers for SAMs.
- The Famoco plugin interfaces only with SAM readers, as the contactless reader on the Famoco supported terminals is based on the standard Android NFC API (natively supported by Keyple).
- In addition to SAM readers, the Coppernic, Flowbird and Bluebird plug-ins manage an observable contactless reader (capable of detecting the card presence).
The 5th plugin enables a Calypso legacy HSM to be interfaced on a Linux server equipped with a Spirtech HSM.
Name | Supported Device | Native reader library accessibility | Interface | OS | Language |
---|---|---|---|---|---|
Coppernic | C-One v2 | public | Internal | Android | Kotlin |
Famoco | FX100, FX105, FX200, FX205, FX300, FX915, FX920 | public | |||
Flowbird | Axio Touch Validator/MTBorne validator, Magnetic Axio Touch Validator, Axio 4 Validator, Infigo Driver Console, Voyager Embedded Ticketing Vending Machine, Coppernic C-One, Coppernic C-One V2, Zebra TC77, ACTIA PSDT | private | |||
Bluebird | EF501, EF551 | private | |||
Legacy HSM | Spirtech HSM | private | IP | Linux | Java |
Some special features:
- The embedded Android terminals addressed by these plugins only support static configurations for their contactless card and contact SAM readers. However, the Coppernic and Famoco plugins are designed as βobservableβ plugins, because when these portable terminals are in standby mode, their readers are no longer powered (as if they were unplugged).
- Most of these readers for embedded terminals are βconfigurableβ to enable the support of specific communications protocols. In addition, the Bluebird plugin can be configured to support the Enhanced Contactless Polling (ECP) protocol specific to Apple NFC devices.
Plugin API implemented interfaces for each plugin | Coppernic | Famoco | Flowbird | Bluebird | Legacy HSM | |
---|---|---|---|---|---|---|
plugin | PluginSpi | β | β | β | β | β |
ObservablePluginSpi | β | β | ||||
AutonomousObservablePluginSpi | ||||||
PoolPluginSpi | β | |||||
contact | ReaderSpi | β | β | β | β | β |
ConfigurableReaderSpi | β | |||||
AutonomousSelectionReaderSpi | ||||||
PoolReaderSpi | β | |||||
contact -less | ReaderSpi | β | β | β | ||
ConfigurableReaderSpi | β | β | β | |||
ObservableReaderSpi | β | β | β | |||
CardInsertionWaiterAsynchronousSpi | β | β | ||||
CardInsertionWaiterBlockingSpi | β | |||||
CardInsertionWaiterNonBlockingSpi | ||||||
CardRemovalWaiterAsynchronousSpi | β | |||||
CardRemovalWaiterBlockingSpi | ||||||
CardRemovalWaiterNonBlockingSpi | β | β | ||||
CardPresenceMonitorBlockingSpi | ||||||
β | β | β | ||||