7#ifndef LOGICALACCESS_LIBUSBREADERUNIT_HPP
8#define LOGICALACCESS_LIBUSBREADERUNIT_HPP
12#include <logicalaccess/plugins/readers/libusb/lla_readers_libusb_api.hpp>
21#define READER_LIBUSB "LibUSB"
22#define LIBUSB_DEVICE_YUBIKEY_VENDORID 0x1050
23#define LIBUSB_DEVICE_ONLYKEY_VENDORID 0x1D50
24#define HID_SET_REPORT 0x09
26class LibUSBReaderCardAdapter;
27class LibUSBReaderProvider;
49 std::string getName()
const override;
51 void setName(
const std::string& name);
57 std::string getConnectedName()
override;
63 void setCardType(std::string cardType)
override;
74 bool waitInsertion(
unsigned int maxwait)
override;
84 bool waitRemoval(
unsigned int maxwait)
override;
91 std::shared_ptr<Chip> createChip(std::string type)
override;
93 std::vector<unsigned char> getNumber(std::shared_ptr<Chip> chip)
override;
99 std::shared_ptr<Chip> getSingleChip()
override;
105 std::vector<std::shared_ptr<Chip>> getChipList()
override;
114 bool connect()
override;
122 void disconnect()
override;
128 bool isConnected()
override;
134 bool connectToReader()
override;
139 void disconnectFromReader()
override;
145 std::string getReaderSerialNumber()
override;
151 virtual std::shared_ptr<LibUSBReaderCardAdapter> getDefaultLibUSBReaderCardAdapter();
157 void serialize(boost::property_tree::ptree &parentNode)
override;
163 void unSerialize(boost::property_tree::ptree &node)
override;
171 return std::dynamic_pointer_cast<LibUSBReaderUnitConfiguration>(getConfiguration());
178 std::shared_ptr<LibUSBReaderProvider> getLibUSBReaderProvider()
const;
191 return d_device_handle;
194 void setVendorID(uint16_t vendor_id);
216 libusb_device* look_for_device(uint16_t vendor_id, uint16_t product_id);
222 template <
typename TargetFunction,
typename... Args>
225 int ret = fct(arg...);
229 "LibUSB error: " + std::string(libusb_strerror(d_device)));
A liblogicalaccess exception class.
Definition: myexception.hpp:22
The LibUSB reader unit class.
Definition: libusbreaderunit.hpp:33
std::string d_serial_number
Definition: libusbreaderunit.hpp:210
uint16_t d_vendor_id
Definition: libusbreaderunit.hpp:206
struct libusb_device_handle * getHandle() const
Definition: libusbreaderunit.hpp:189
struct libusb_device * getDevice() const
Get the LibUSB device.
Definition: libusbreaderunit.hpp:184
std::shared_ptr< LibUSBReaderUnitConfiguration > getLibUSBConfiguration()
Get the LibUSB reader unit configuration.
Definition: libusbreaderunit.hpp:169
struct libusb_device * d_device
The LibUSB device.
Definition: libusbreaderunit.hpp:200
uint16_t d_product_id
Definition: libusbreaderunit.hpp:208
int libusb_safe_call(TargetFunction fct, Args... arg)
Definition: libusbreaderunit.hpp:223
std::string d_product
Definition: libusbreaderunit.hpp:212
struct libusb_device_handle * d_device_handle
Definition: libusbreaderunit.hpp:204
std::string d_name
Definition: libusbreaderunit.hpp:214
struct libusb_device * d_tmp_device
Definition: libusbreaderunit.hpp:202
The card types.
Definition: readerunit.hpp:42
LibUSB Reader unit configuration.
#define THROW_EXCEPTION_WITH_LOG(type, msg,...)
Definition: logs.hpp:237