LibLogicalAccess
2.5.0
An Open Source RFID Library
|
The PC/SC reader unit class. More...
#include <pcscreaderunit.hpp>
Public Member Functions | |
PCSCReaderUnit (const std::string &name) | |
Constructor. | |
virtual | ~PCSCReaderUnit () |
Destructor. | |
std::string | getName () const override |
Get the reader unit name. | |
void | setName (const std::string &name) |
Set the reader unit name. | |
std::string | getConnectedName () override |
Get the connected reader unit name. | |
virtual PCSCReaderUnitType | getPCSCType () const |
Get the PC/SC reader unit type. | |
void | setCardType (std::string cardType) override |
Set the card type. | |
bool | waitInsertion (unsigned int maxwait) override |
Wait for a card insertion. | |
bool | waitRemoval (unsigned int maxwait) override |
Wait for a card removal. | |
bool | connect () override |
Connect to the card. | |
virtual bool | connect (PCSCShareMode share_mode) |
Connect to the card. | |
void | disconnect () override |
Disconnect from the card. | |
bool | isConnected () override |
Check if the handle is associated to a card (aka. "connected"). | |
bool | connectToReader () override |
Connect to the reader. Implicit connection on first command sent. | |
void | disconnectFromReader () override |
Disconnect from reader. | |
const SCARDHANDLE & | getHandle () const |
Get the low-level SCARDHANDLE. | |
unsigned long | getActiveProtocol () const |
Get the active protocol for the connected card. | |
PCSCShareMode | getShareMode () const |
Get the currently active share mode. | |
std::shared_ptr< Chip > | createChip (std::string type) override |
Create the chip object from card type. | |
std::shared_ptr< Chip > | getSingleChip () override |
Get the first and/or most accurate chip found. | |
std::vector< std::shared_ptr< Chip > > | getChipList () override |
Get chip available in the RFID rang. | |
virtual ByteVector | getCardSerialNumber () |
Get the card serial number. | |
std::string | getReaderSerialNumber () override |
Get a string hexadecimal representation of the reader serial number. | |
const ByteVector & | getATR () const |
Get the card ATR. | |
virtual std::shared_ptr< PCSCReaderCardAdapter > | getDefaultPCSCReaderCardAdapter () |
Get the default PC/SC reader/card adapter. | |
virtual std::shared_ptr< ReaderCardAdapter > | getReaderCardAdapter (std::string type) |
Get the PC/SC reader/card adapter for a card type. | |
void | serialize (boost::property_tree::ptree &parentNode) override |
Serialize the current object to XML. | |
void | unSerialize (boost::property_tree::ptree &node) override |
UnSerialize a XML node to the current object. | |
std::shared_ptr< ReaderUnitConfiguration > | getConfiguration () override |
Get the reader unit configuration. | |
void | setConfiguration (std::shared_ptr< ReaderUnitConfiguration > config) override |
Set the reader unit configuration. | |
virtual void | changeReaderKey (std::shared_ptr< ReaderMemoryKeyStorage > keystorage, const ByteVector &key) |
Change a key in reader memory. | |
std::shared_ptr< PCSCReaderUnitConfiguration > | getPCSCConfiguration () |
Get the PC/SC reader unit configuration. | |
std::shared_ptr< PCSCReaderProvider > | getPCSCReaderProvider () const |
void | makeProxy (std::shared_ptr< PCSCReaderUnit > readerUnit, std::shared_ptr< PCSCReaderUnitConfiguration > readerUnitConfig) |
Make the reader unit as a proxy to another. Use when listening on all PC/SC reader unit. | |
virtual void | getT_CL_ISOType (bool &isTypeA, bool &isTypeB) |
Get if the inserted card is from ISO 14443-4 A or B. | |
virtual void | cardConnected () |
std::shared_ptr< PCSCReaderUnit > | getProxyReaderUnit () const |
void | setCardTechnologies (const TechnoBitset &bitset) override |
TechnoBitset | getCardTechnologies () override |
std::shared_ptr< LCDDisplay > | getLCDDisplay () override |
Get the LCD Display for this reader unit. | |
void | setLCDDisplay (std::shared_ptr< LCDDisplay > d) override |
Get the LCD Display for this reader unit. | |
std::shared_ptr< LEDBuzzerDisplay > | getLEDBuzzerDisplay () override |
Get the LED/Buzzer Display for this reader unit. | |
void | setLEDBuzzerDisplay (std::shared_ptr< LEDBuzzerDisplay > lbd) override |
Get the LCD Display for this reader unit. | |
ReaderServicePtr | getService (const ReaderServiceType &type) override |
void | beginTransaction () |
void | endTransaction (DWORD dwDisposition=SCARD_LEAVE_CARD) |
void | reset (int action=0) |
Reconnect to the card. | |
void | setup_pcsc_connection (PCSCShareMode share_mode) |
void | teardown_pcsc_connection () |
![]() | |
ISO7816ReaderUnit (std::string rpt) | |
virtual | ~ISO7816ReaderUnit () |
bool | waitInsertion (unsigned int) override |
Wait for a card insertion. | |
bool | waitRemoval (unsigned int) override |
Wait for a card removal. | |
bool | isConnected () override |
Check if the card is connected. | |
void | setCardType (std::string) override |
Set the forced card type. | |
std::shared_ptr< Chip > | getSingleChip () override |
Get the first and/or most accurate chip found. | |
std::vector< std::shared_ptr< Chip > > | getChipList () override |
Get chip available in the RFID rang. | |
bool | connect () override |
Connect to the card. | |
void | disconnect () override |
Disconnect from the card. | |
virtual void | connectToSAM () |
bool | connectToReader () override |
Connect to the reader. Implicit connection on first command sent. | |
virtual void | disconnectFromSAM () |
void | disconnectFromReader () override |
Disconnect from reader. | |
virtual void | reloadReaderConfiguration () |
virtual void | setContext (const std::string &context) |
Set the client context. | |
virtual std::string | getContext () |
Get the client context. | |
std::string | getName () const override |
Get the reader unit name. | |
std::string | getReaderSerialNumber () override |
Get a string hexadecimal representation of the reader serial number. | |
std::shared_ptr< CardProbe > | createCardProbe () override |
virtual std::shared_ptr< SAMChip > | getSAMChip () |
Get The SAM Chip. | |
virtual void | setSAMChip (std::shared_ptr< SAMChip > t) |
Set the SAM Chip. | |
virtual std::shared_ptr< ISO7816ReaderUnit > | getSAMReaderUnit () |
Get The SAM ReaderUnit. | |
virtual void | setSAMReaderUnit (std::shared_ptr< ISO7816ReaderUnit > t) |
Set the SAM ReaderUnit. | |
![]() | |
ReaderUnit (std::string rpt) | |
Constructor. | |
virtual | ~ReaderUnit () |
Destructor. | |
std::string | getRPType () const |
Get the reader provider type. | |
virtual ByteVector | getPingCommand () const |
Get the reader ping command. | |
virtual bool | waitInsertion (unsigned int maxwait)=0 |
Wait for a card insertion. | |
virtual bool | waitInsertion (const ByteVector &identifier, unsigned int maxwait) |
Wait for a specific card insertion. | |
virtual bool | waitRemoval (unsigned int maxwait)=0 |
Wait for a card removal. | |
virtual bool | isConnected ()=0 |
Check if the card is connected. | |
std::string | getCardType () const |
Get the forced card type. | |
virtual void | setCardType (std::string cardType)=0 |
Set the forced card type. | |
virtual std::shared_ptr< Chip > | createChip (std::string type) |
Create the chip object from card type. | |
virtual std::shared_ptr< Chip > | createChip (std::string type, const ByteVector &identifier) |
Create the chip object from card type with identifier. | |
virtual ByteVector | getNumber (std::shared_ptr< Chip > chip) |
Get the number from the embedded licensing configuration. | |
virtual std::shared_ptr< Chip > | getSingleChip ()=0 |
Get the first and/or most accurate chip found. | |
virtual std::vector< std::shared_ptr< Chip > > | getChipList ()=0 |
Get chip available in the RFID rang. | |
virtual ByteVector | getNumber (std::shared_ptr< Chip > chip, std::shared_ptr< CardsFormatComposite > composite) |
Get the number from the reader format composite. | |
virtual bool | connect ()=0 |
Connect to the card. | |
virtual bool | reconnect (int action=0) |
Reconnect to the card with the currently active share mode on the same reader. | |
virtual void | disconnect ()=0 |
Disconnect from the card. | |
virtual bool | connectToReader ()=0 |
Connect to the reader. Implicit connection on first command sent. | |
virtual void | disconnectFromReader ()=0 |
Disconnect from reader. | |
virtual std::string | getName () const =0 |
Get the reader unit name. | |
virtual std::string | getConnectedName () |
Get the connected reader unit name. | |
virtual std::shared_ptr< ReaderUnitConfiguration > | getConfiguration () |
Get the reader unit configuration. | |
virtual void | setConfiguration (std::shared_ptr< ReaderUnitConfiguration > config) |
Set the reader unit configuration. | |
virtual std::shared_ptr< ReaderCardAdapter > | getDefaultReaderCardAdapter () |
Get the default reader/card adapter. | |
virtual void | setDefaultReaderCardAdapter (std::shared_ptr< ReaderCardAdapter > defaultRca) |
Set the default reader/card adapter. | |
virtual std::shared_ptr< DataTransport > | getDataTransport () const |
Get the data transport layer. | |
virtual void | setDataTransport (std::shared_ptr< DataTransport > dataTransport) |
Set the data transport layer. | |
virtual std::string | getReaderSerialNumber ()=0 |
Get a string hexadecimal representation of the reader serial number. | |
std::string | getDefaultXmlNodeName () const override |
Get the default Xml Node name for this object. | |
void | serialize (boost::property_tree::ptree &node) override |
Serialize the current object to XML. | |
void | unSerialize (boost::property_tree::ptree &node) override |
UnSerialize a XML node to the current object. | |
void | unSerialize (boost::property_tree::ptree &node, const std::string &rootNode) override |
UnSerialize object from a Xml node. | |
std::shared_ptr< ReaderProvider > | getReaderProvider () const |
Get the associated reader provider. | |
void | setReaderProvider (std::weak_ptr< ReaderProvider > provider) |
Set the associated reader provider. | |
virtual std::shared_ptr< LCDDisplay > | getLCDDisplay () |
Get the LCD Display for this reader unit. | |
virtual void | setLCDDisplay (std::shared_ptr< LCDDisplay > d) |
Get the LCD Display for this reader unit. | |
virtual std::shared_ptr< LEDBuzzerDisplay > | getLEDBuzzerDisplay () |
Get the LED/Buzzer Display for this reader unit. | |
virtual void | setLEDBuzzerDisplay (std::shared_ptr< LEDBuzzerDisplay > lbd) |
Get the LCD Display for this reader unit. | |
virtual void | setCardTechnologies (const TechnoBitset &bitset) |
virtual TechnoBitset | getCardTechnologies () |
virtual TechnoBitset | getPossibleCardTechnologies () |
virtual ReaderServicePtr | getService (const ReaderServiceType &type) |
virtual std::string | serialize () |
Serialize object to Xml Node string. | |
virtual void | serialize (boost::property_tree::ptree &parentNode)=0 |
Serialize object to Xml Node. | |
virtual void | unSerialize (boost::property_tree::ptree &node)=0 |
UnSerialize object from a Xml Node. | |
virtual void | unSerialize (const std::string &xmlstring, const std::string &rootNode) |
UnSerialize object from a Xml Node string. | |
virtual void | unSerialize (std::istream &is, const std::string &rootNode) |
UnSerialize object from a Xml node. | |
virtual void | unSerialize (boost::property_tree::ptree &node, const std::string &rootNode) |
UnSerialize object from a Xml node. | |
![]() | |
virtual | ~XmlSerializable ()=default |
virtual std::string | serialize () |
Serialize object to Xml Node string. | |
virtual std::string | serializeWithHeaders () |
Serialize object to Xml Node string, with xml headers. | |
virtual void | serialize (boost::property_tree::ptree &parentNode)=0 |
Serialize object to Xml Node. | |
virtual void | serializeToFile (const std::string &filename) |
Serialize object to a Xml file. | |
virtual void | unSerialize (boost::property_tree::ptree &node)=0 |
UnSerialize object from a Xml Node. | |
virtual void | unSerialize (const std::string &xmlstring, const std::string &rootNode) |
UnSerialize object from a Xml Node string. | |
virtual void | unSerialize (std::istream &is, const std::string &rootNode) |
UnSerialize object from a Xml node. | |
virtual void | unSerialize (boost::property_tree::ptree &node, const std::string &rootNode) |
UnSerialize object from a Xml node. | |
virtual void | unSerializeFromFile (const std::string &filename) |
UnSerialize object from a Xml file. | |
virtual std::string | getDefaultXmlNodeName () const =0 |
Get the default Xml Node name for this object. | |
Static Public Member Functions | |
static std::shared_ptr< PCSCReaderUnit > | createPCSCReaderUnit (const std::string &readerName) |
![]() | |
static uint64_t | getFormatedNumber (const ByteVector &number, int padding) |
Get the number as decimal a number. | |
static std::string | getFormatedNumber (const ByteVector &number) |
Get a string hexadecimal representation of the number. | |
![]() | |
static std::string | removeXmlDeclaration (const std::string &xmlstring) |
Remove Xml declaration from a xml string. | |
static ByteVector | formatHexString (std::string hexstr) |
Format hex string to hex string with space. | |
Protected Types | |
using | SPtrStringVector = std::vector< std::shared_ptr< std::string > > |
using | ReaderStateVector = std::vector< SCARD_READERSTATE > |
Protected Member Functions | |
bool | reconnect (int action=0) override |
Reconnect to the card with the currently active share mode on the same reader. | |
std::shared_ptr< Chip > | adjustChip (std::shared_ptr< Chip > c) |
std::shared_ptr< ResultChecker > | createDefaultResultChecker () const override |
std::shared_ptr< CardProbe > | createCardProbe () override |
void | configure_mifareplus_chip (std::shared_ptr< Chip > c, std::shared_ptr< Commands > &commands, std::shared_ptr< ResultChecker > &resultChecker) const |
void | detect_mifareplus_security_level (std::shared_ptr< Chip > c) |
void | setSingleChip (std::shared_ptr< Chip > chip) |
Set the first and/or most accurate chip found. | |
std::shared_ptr< SAMChip > | getSAMChip () override |
Get The SAM Chip. | |
void | setSAMChip (std::shared_ptr< SAMChip > t) override |
Set the SAM Chip. | |
std::shared_ptr< ISO7816ReaderUnit > | getSAMReaderUnit () override |
Get The SAM ReaderUnit. | |
void | setSAMReaderUnit (std::shared_ptr< ISO7816ReaderUnit > t) override |
Set the SAM ReaderUnit. | |
std::tuple< SPtrStringVector, ReaderStateVector > | prepare_poll_parameters () |
void | waitInsertion_create_proxy (const std::string &reader_name) |
virtual bool | process_insertion (const std::string &cardType, unsigned int maxwait, const ElapsedTimeCounter &elapsed) |
![]() | |
std::shared_ptr< ResultChecker > | createDefaultResultChecker () const override |
std::shared_ptr< ISO7816ReaderProvider > | getISO7816ReaderProvider () const |
Get the ISO7816 reader provider. | |
std::shared_ptr< ISO7816ReaderUnitConfiguration > | getISO7816Configuration () |
Get the ISO7816 reader unit configuration. | |
bool | reconnect (int action) override |
Reconnect to the card with the currently active share mode on the same reader. | |
virtual std::shared_ptr< ResultChecker > | createDefaultResultChecker () const |
virtual std::shared_ptr< CardProbe > | createCardProbe () |
Protected Attributes | |
std::string | d_name |
The reader unit name. | |
std::string | d_connectedName |
The reader unit connected name. | |
std::unique_ptr< PCSCConnection > | connection_ |
ByteVector | atr_ |
std::shared_ptr< PCSCReaderUnit > | d_proxyReaderUnit |
The proxy reader unit. | |
![]() | |
std::shared_ptr< SAMChip > | d_sam_chip |
The SAM chip. | |
std::shared_ptr< ISO7816ReaderUnit > | d_sam_readerunit |
The SAM ReaderUnit used SAM Authentication. | |
std::string | d_client_context |
The client context. | |
std::string | d_sam_client_context |
The sam client context. | |
![]() | |
std::string | d_readerProviderType |
The associated reader provider type for the reader unit configuration. | |
std::string | d_card_type |
The forced card type. | |
std::weak_ptr< ReaderProvider > | d_readerProvider |
The associated reader provider for the reader unit. | |
std::shared_ptr< ReaderUnitConfiguration > | d_readerUnitConfig |
The reader unit configuration. | |
std::shared_ptr< Chip > | d_insertedChip |
The inserted chip. | |
std::shared_ptr< LCDDisplay > | d_lcdDisplay |
The inserted chip. | |
std::shared_ptr< LEDBuzzerDisplay > | d_ledBuzzerDisplay |
The inserted chip. | |
Additional Inherited Members | |
![]() | |
static unsigned long long | atoull (const std::string &str) |
The PC/SC reader unit class.
|
protected |
|
protected |
|
explicit |
Constructor.
|
virtual |
Destructor.
void logicalaccess::PCSCReaderUnit::beginTransaction | ( | ) |
|
inlinevirtual |
This method is used to notify the (proxyfied) implementation that a card was connected
|
virtual |
Change a key in reader memory.
keystorage | The key storage information. |
key | The key value. |
Reimplemented in logicalaccess::OmnikeyXX21ReaderUnit.
|
protected |
|
overridevirtual |
Connect to the card.
If the card handle was already connected, connect() first call disconnect(). If you intend to do a reconnection, call reconnect() instead.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit, and logicalaccess::ID3ReaderUnit.
|
virtual |
Connect to the card.
reader | The reader name. If an empty or invalid reader name is specified, connect will fail. |
share_mode | The share mode. |
If the card handle was already connected, connect() first call disconnect(). If you intend to do a reconnection, call reconnect() instead.
Reimplemented in logicalaccess::ID3ReaderUnit, and logicalaccess::ID3ReaderUnit.
|
overridevirtual |
Connect to the reader. Implicit connection on first command sent.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit, and logicalaccess::OmnikeyLANXX21ReaderUnit.
|
overrideprotectedvirtual |
Create a new CardProbe object that works with the current reader.
This is required because the behaviour of reader varies a lot when probing for cards.
The default implementation returns nullptr;
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ID3ReaderUnit, and logicalaccess::SpringCardReaderUnit.
|
overridevirtual |
Create the chip object from card type.
type | The card type. |
Reimplemented from logicalaccess::ReaderUnit.
Reimplemented in logicalaccess::OmnikeyXX25ReaderUnit.
|
overrideprotectedvirtual |
Create a new ResultChecker object that make sense for the current reader.
It's possible that this ResultChecker won't be used, as more fine-grained check regarding reader/card-type combination happen.
The default implementation returns nullptr.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit, logicalaccess::ACSACRReaderUnit, and logicalaccess::SpringCardReaderUnit.
|
static |
|
protected |
Attempt to detect the security level by sending command to the card once its' been connected.
If we find something, we'll override the commands objects and reconfigure the chip.
|
overridevirtual |
Disconnect from the card.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ID3ReaderUnit.
|
overridevirtual |
Disconnect from reader.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit, and logicalaccess::OmnikeyLANXX21ReaderUnit.
void logicalaccess::PCSCReaderUnit::endTransaction | ( | DWORD | dwDisposition = SCARD_LEAVE_CARD | ) |
unsigned long logicalaccess::PCSCReaderUnit::getActiveProtocol | ( | ) | const |
Get the active protocol for the connected card.
const std::vector< uint8_t > & logicalaccess::PCSCReaderUnit::getATR | ( | ) | const |
Get the card ATR.
atr | The array that will contains the ATR data. |
atrLength | The ATR array length. |
|
virtual |
Get the card serial number.
If the card handle is not connected to the card, the call fails.
Reimplemented in logicalaccess::OmnikeyXX25ReaderUnit.
|
overridevirtual |
Return a bitset describing which cards technology are enabled.
The default implementation returns a bitset with all flags set to false.
Reimplemented from logicalaccess::ReaderUnit.
Reimplemented in logicalaccess::OmnikeyXX21ReaderUnit.
|
overridevirtual |
Get chip available in the RFID rang.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ID3ReaderUnit.
|
overridevirtual |
Get the reader unit configuration.
Reimplemented from logicalaccess::ReaderUnit.
|
overridevirtual |
Get the connected reader unit name.
Reimplemented from logicalaccess::ReaderUnit.
|
virtual |
Get the default PC/SC reader/card adapter.
const SCARDHANDLE & logicalaccess::PCSCReaderUnit::getHandle | ( | ) | const |
Get the low-level SCARDHANDLE.
|
overridevirtual |
Get the LCD Display for this reader unit.
Reimplemented from logicalaccess::ReaderUnit.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit.
|
overridevirtual |
Get the LED/Buzzer Display for this reader unit.
Reimplemented from logicalaccess::ReaderUnit.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit.
|
overridevirtual |
Get the reader unit name.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
|
inline |
Get the PC/SC reader unit configuration.
std::shared_ptr< PCSCReaderProvider > logicalaccess::PCSCReaderUnit::getPCSCReaderProvider | ( | ) | const |
|
virtual |
Get the PC/SC reader unit type.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit, logicalaccess::ACSACRReaderUnit, logicalaccess::CherryReaderUnit, logicalaccess::ID3ReaderUnit, logicalaccess::OmnikeyLANXX21ReaderUnit, logicalaccess::OmnikeyXX21ReaderUnit, logicalaccess::OmnikeyXX22ReaderUnit, logicalaccess::OmnikeyXX25ReaderUnit, logicalaccess::SCMReaderUnit, and logicalaccess::SpringCardReaderUnit.
std::shared_ptr< PCSCReaderUnit > logicalaccess::PCSCReaderUnit::getProxyReaderUnit | ( | ) | const |
Returns the proxy implementation reader unit, or null.
|
virtual |
Get the PC/SC reader/card adapter for a card type.
type | The card type. |
Reimplemented in logicalaccess::OmnikeyXX21ReaderUnit.
|
overridevirtual |
Get a string hexadecimal representation of the reader serial number.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit.
|
overrideprotectedvirtual |
Get The SAM Chip.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
|
overrideprotectedvirtual |
Get The SAM ReaderUnit.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
|
overridevirtual |
Request a service object of type type
.
The service object will be associated with the current reader.
The default implementation returns nullptr;
Reimplemented from logicalaccess::ReaderUnit.
Reimplemented in logicalaccess::OmnikeyXX21ReaderUnit.
PCSCShareMode logicalaccess::PCSCReaderUnit::getShareMode | ( | ) | const |
Get the currently active share mode.
If the card is not connected, requesting the share mode value is meaningless.
|
overridevirtual |
Get the first and/or most accurate chip found.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
|
virtual |
Get if the inserted card is from ISO 14443-4 A or B.
isTypeA | Will be set to true if the card is from ISO 14443-4 A, false if not or unknown. |
isTypeB | Will be set to true if the card is from ISO 14443-4 B, false if not or unknown. |
Reimplemented in logicalaccess::OmnikeyXX21ReaderUnit.
|
overridevirtual |
Check if the handle is associated to a card (aka. "connected").
Reimplemented from logicalaccess::ISO7816ReaderUnit.
void logicalaccess::PCSCReaderUnit::makeProxy | ( | std::shared_ptr< PCSCReaderUnit > | readerUnit, |
std::shared_ptr< PCSCReaderUnitConfiguration > | readerUnitConfig | ||
) |
Make the reader unit as a proxy to another. Use when listening on all PC/SC reader unit.
readerUnit | The referenced reader unit. |
readerUnitConfig | The referenced reader unit configuration. |
|
protected |
Prepare the parameters for the call to SCardGetStatusChange invoked by waitInsertion()
|
protectedvirtual |
Give a chance to concrete reader implementation to do something just after a insertion has been detected.
This default implemented MUST be called explicitly if you override this method.
Reimplemented in logicalaccess::ID3ReaderUnit.
|
overrideprotectedvirtual |
Reconnect to the card with the currently active share mode on the same reader.
control | the behavior of the reconnect. |
Reimplemented from logicalaccess::ISO7816ReaderUnit.
void logicalaccess::PCSCReaderUnit::reset | ( | int | action = 0 | ) |
Reconnect to the card.
control | the behavior of the reconnect. |
|
overridevirtual |
Serialize the current object to XML.
parentNode | The parent node. |
Reimplemented from logicalaccess::ReaderUnit.
|
overridevirtual |
Request that the reader enable or disable the various card technologies as described in the bitset. The default implementation just does nothing.
Reimplemented from logicalaccess::ReaderUnit.
Reimplemented in logicalaccess::OmnikeyXX21ReaderUnit.
|
inlineoverridevirtual |
Set the card type.
cardType | The card type. |
Reimplemented from logicalaccess::ISO7816ReaderUnit.
|
overridevirtual |
Set the reader unit configuration.
config | The reader unit configuration. |
Reimplemented from logicalaccess::ReaderUnit.
|
overridevirtual |
Get the LCD Display for this reader unit.
Reimplemented from logicalaccess::ReaderUnit.
|
overridevirtual |
Get the LCD Display for this reader unit.
Reimplemented from logicalaccess::ReaderUnit.
void logicalaccess::PCSCReaderUnit::setName | ( | const std::string & | name | ) |
Set the reader unit name.
name | The reader unit name. |
|
overrideprotectedvirtual |
Set the SAM Chip.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
|
overrideprotectedvirtual |
Set the SAM ReaderUnit.
Reimplemented from logicalaccess::ISO7816ReaderUnit.
|
protected |
Set the first and/or most accurate chip found.
chip | The single chip. |
void logicalaccess::PCSCReaderUnit::setup_pcsc_connection | ( | PCSCShareMode | share_mode | ) |
Direct means we established without requiring that a card be near the card reader.
void logicalaccess::PCSCReaderUnit::teardown_pcsc_connection | ( | ) |
Terminate the PCSC connection. This is a noop if the connection is already terminated.
|
overridevirtual |
UnSerialize a XML node to the current object.
node | The XML node. |
Reimplemented from logicalaccess::ReaderUnit.
|
overridevirtual |
Wait for a card insertion.
maxwait | The maximum time to wait for, in milliseconds. If maxwait is zero, then the call never times out. |
Reimplemented from logicalaccess::ISO7816ReaderUnit.
|
protected |
Create the proxy reader based on which reader detected a card during waitInsertion.
|
overridevirtual |
Wait for a card removal.
maxwait | The maximum time to wait for, in milliseconds. If maxwait is zero, then the call never times out. |
Reimplemented from logicalaccess::ISO7816ReaderUnit.
Reimplemented in logicalaccess::ACSACR1222LReaderUnit, logicalaccess::OmnikeyReaderUnit, and logicalaccess::OmnikeyXX21ReaderUnit.
|
protected |
The current ATR
|
protected |
A PCSC connection object.
|
protected |
The reader unit connected name.
|
protected |
The reader unit name.
|
protected |
The proxy reader unit.