LibLogicalAccess
2.5.0
An Open Source RFID Library
|
The card types. More...
#include <readerunit.hpp>
Public Member Functions | |
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 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 Member Functions | |
virtual std::shared_ptr< ResultChecker > | createDefaultResultChecker () const |
virtual std::shared_ptr< CardProbe > | createCardProbe () |
Protected Attributes | |
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. | |
Private Attributes | |
std::shared_ptr< ReaderCardAdapter > | d_defaultReaderCardAdapter |
The default reader/card adapter. | |
std::shared_ptr< DataTransport > | d_dataTransport |
The data transport layer. | |
Additional Inherited Members | |
![]() | |
static unsigned long long | atoull (const std::string &str) |
The card types.
The reader unit base class. This is an object for a specific reader instance to detect card and interact with the reader.
|
explicit |
Constructor.
|
virtual |
Destructor.
|
pure virtual |
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.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ACSACR1222LReaderUnit, logicalaccess::ID3ReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
pure virtual |
Connect to the reader. Implicit connection on first command sent.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ACSACR1222LReaderUnit, logicalaccess::OmnikeyLANXX21ReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
protectedvirtual |
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 in logicalaccess::DummyReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ID3ReaderUnit, and logicalaccess::SpringCardReaderUnit.
|
virtual |
Create the chip object from card type.
type | The card type. |
Reimplemented in logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::OmnikeyXX25ReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
virtual |
Create the chip object from card type with identifier.
type | The card type. |
identifier | The chip identifier. |
|
protectedvirtual |
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 in logicalaccess::DummyReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ACSACR1222LReaderUnit, logicalaccess::ACSACRReaderUnit, and logicalaccess::SpringCardReaderUnit.
|
pure virtual |
Disconnect from the card.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ID3ReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
pure virtual |
Disconnect from reader.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ACSACR1222LReaderUnit, logicalaccess::OmnikeyLANXX21ReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
virtual |
Return a bitset describing which cards technology are enabled.
The default implementation returns a bitset with all flags set to false.
Reimplemented in logicalaccess::PCSCReaderUnit, and logicalaccess::OmnikeyXX21ReaderUnit.
|
inline |
Get the forced card type.
|
pure virtual |
Get chip available in the RFID rang.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ID3ReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
virtual |
Get the reader unit configuration.
Reimplemented in logicalaccess::PCSCReaderUnit.
|
inlinevirtual |
Get the connected reader unit name.
Reimplemented in logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
virtual |
Get the data transport layer.
|
virtual |
Get the default reader/card adapter.
|
overridevirtual |
Get the default Xml Node name for this object.
Implements logicalaccess::XmlSerializable.
|
static |
Get a string hexadecimal representation of the number.
number | The buffer with the number. |
|
static |
Get the number as decimal a number.
number | The buffer with the number. |
padding | Add or soustract a value to the number (Generaly used for a cards pack). |
|
virtual |
Get the LCD Display for this reader unit.
Reimplemented in logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, and logicalaccess::ACSACR1222LReaderUnit.
|
virtual |
Get the LED/Buzzer Display for this reader unit.
Reimplemented in logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, and logicalaccess::ACSACR1222LReaderUnit.
|
pure virtual |
Get the reader unit name.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
virtual |
Get the number from the embedded licensing configuration.
chip | The chip object. |
Reimplemented in logicalaccess::LibUSBReaderUnit.
|
virtual |
Get the number from the reader format composite.
chip | The chip object. |
composite | The card format composite. |
|
virtual |
Get the reader ping command.
Reimplemented in logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
virtual |
This returns a bitset of all technologies that can potentially be enabled on the reader.
This is useful because the TechnoBitset enumerate all possible technologies accros all the readers.
The default implementation returns an empty bitset.
Reimplemented in logicalaccess::OmnikeyXX21ReaderUnit.
|
inline |
Get the associated reader provider.
|
pure virtual |
Get a string hexadecimal representation of the reader serial number.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ACSACR1222LReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
std::string logicalaccess::ReaderUnit::getRPType | ( | ) | const |
Get the reader provider type.
|
virtual |
Request a service object of type type
.
The service object will be associated with the current reader.
The default implementation returns nullptr;
Reimplemented in logicalaccess::PCSCReaderUnit, and logicalaccess::OmnikeyXX21ReaderUnit.
|
pure virtual |
Get the first and/or most accurate chip found.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
pure virtual |
Check if the card is connected.
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::ISO7816ReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
inlinevirtual |
Reconnect to the card with the currently active share mode on the same reader.
Reimplemented in logicalaccess::ISO7816ReaderUnit, and logicalaccess::PCSCReaderUnit.
|
virtual |
Serialize object to Xml Node string.
Reimplemented from logicalaccess::XmlSerializable.
|
overridevirtual |
Serialize the current object to XML.
parentNode | The parent node. |
Implements logicalaccess::XmlSerializable.
Reimplemented in logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
virtual |
Serialize object to Xml Node.
os | The XML stream. |
Implements logicalaccess::XmlSerializable.
|
virtual |
Request that the reader enable or disable the various card technologies as described in the bitset. The default implementation just does nothing.
Reimplemented in logicalaccess::PCSCReaderUnit, and logicalaccess::OmnikeyXX21ReaderUnit.
|
pure virtual |
Set the forced card type.
cardType | The forced card type. |
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::RFIDeasReaderUnit, logicalaccess::STidSTRReaderUnit, and logicalaccess::ISO7816ReaderUnit.
|
virtual |
Set the reader unit configuration.
config | The reader unit configuration. |
Reimplemented in logicalaccess::GunneboReaderUnit, and logicalaccess::PCSCReaderUnit.
|
virtual |
Set the data transport layer.
dataTransport | The data transport layer. |
|
virtual |
Set the default reader/card adapter.
defaultRca | The default reader/card adapter. |
|
virtual |
Get the LCD Display for this reader unit.
Reimplemented in logicalaccess::PCSCReaderUnit.
|
virtual |
Get the LCD Display for this reader unit.
Reimplemented in logicalaccess::PCSCReaderUnit.
|
inline |
Set the associated reader provider.
provider | The associated reader provider. |
|
overridevirtual |
UnSerialize a XML node to the current object.
node | The XML node. |
Implements logicalaccess::XmlSerializable.
Reimplemented in logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::RFIDeasReaderUnit, and logicalaccess::STidSTRReaderUnit.
|
virtual |
UnSerialize object from a Xml Node.
node | The Xml node. |
Implements logicalaccess::XmlSerializable.
|
virtual |
UnSerialize object from a Xml node.
node | The Xml node. |
rootNode | The root node. |
Reimplemented from logicalaccess::XmlSerializable.
|
overridevirtual |
UnSerialize object from a Xml node.
node | The Xml node. |
rootNode | The root node. |
Reimplemented from logicalaccess::XmlSerializable.
|
virtual |
UnSerialize object from a Xml Node string.
xmlstring | The Xml Node string. |
rootNode | The root node. |
Reimplemented from logicalaccess::XmlSerializable.
|
virtual |
UnSerialize object from a Xml node.
is | The Xml stream. |
rootNode | The root node. |
Reimplemented from logicalaccess::XmlSerializable.
|
virtual |
Wait for a specific card insertion.
identifier | The chip identifier to wait. |
maxwait | The maximum time to wait for, in milliseconds. If maxwait is zero, then the call never times out. |
|
pure virtual |
Wait for a card insertion.
maxwait | The maximum time to wait for, in milliseconds. If maxwait is zero, then the call never times out. |
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::RFIDeasReaderUnit, logicalaccess::STidSTRReaderUnit, and logicalaccess::ISO7816ReaderUnit.
|
pure virtual |
Wait for a card removal.
maxwait | The maximum time to wait for, in milliseconds. If maxwait is zero, then the call never times out. |
Implemented in logicalaccess::DummyReaderUnit, logicalaccess::DeisterReaderUnit, logicalaccess::ElatecReaderUnit, logicalaccess::GunneboReaderUnit, logicalaccess::KeyboardReaderUnit, logicalaccess::LibUSBReaderUnit, logicalaccess::OK5553ReaderUnit, logicalaccess::OSDPReaderUnit, logicalaccess::PCSCReaderUnit, logicalaccess::ACSACR1222LReaderUnit, logicalaccess::OmnikeyReaderUnit, logicalaccess::OmnikeyXX21ReaderUnit, logicalaccess::RFIDeasReaderUnit, logicalaccess::STidSTRReaderUnit, and logicalaccess::ISO7816ReaderUnit.
|
protected |
The forced card type.
|
private |
The data transport layer.
|
private |
The default reader/card adapter.
|
protected |
The inserted chip.
|
protected |
The inserted chip.
|
protected |
The inserted chip.
|
protected |
The associated reader provider for the reader unit.
|
protected |
The associated reader provider type for the reader unit configuration.
|
protected |
The reader unit configuration.