LibLogicalAccess  2.5.0
An Open Source RFID Library
Loading...
Searching...
No Matches
libusbdatatransport.hpp
Go to the documentation of this file.
1
7#ifndef LOGICALACCESS_LIBUSBDATATRANSPORT_HPP
8#define LOGICALACCESS_LIBUSBDATATRANSPORT_HPP
9
12#include <list>
13
14namespace logicalaccess
15{
16#define TRANSPORT_LIBUSB "LibUSB"
17
18#define REPORT_TYPE_FEATURE 0x03
19#define FEATURE_RPT_SIZE 8
20
24class LLA_READERS_LIBUSB_API LibUSBDataTransport : public DataTransport
25{
26 public:
31
35 virtual ~LibUSBDataTransport();
36
41 std::string getTransportType() const override
42 {
43 return TRANSPORT_LIBUSB;
44 }
45
50 std::string getDefaultXmlNodeName() const override;
51
56 void serialize(boost::property_tree::ptree &parentNode) override;
57
62 void unSerialize(boost::property_tree::ptree &node) override;
63
68 bool connect() override;
69
73 void disconnect() override;
74
79 bool isConnected() override;
80
85 std::shared_ptr<LibUSBReaderUnit> getLibUSBReaderUnit() const
86 {
87 return std::dynamic_pointer_cast<LibUSBReaderUnit>(getReaderUnit());
88 }
89
94 std::string getName() const override;
95
100 virtual void send(const std::vector<unsigned char> &data) override;
101
107 virtual std::vector<unsigned char> receive(long int timeout = 5000) override;
108
115 std::vector<unsigned char> sendCommand(const std::vector<unsigned char> &command,
116 long int timeout = 2000) override;
117
118 void usb_write(const std::vector<unsigned char> &data, int report_type, int report_number);
119
120 std::vector<unsigned char> usb_read(int report_type, int report_number, int readlen, int timeout = 1000);
121
122 void CheckLibUSBError(int errorFlag);
123
124 protected:
126};
127}
128
129#endif /* LOGICALACCESS_LIBUSBDATATRANSPORT_HPP */
A data transport base class. It provide an abstraction layer between the host and readers.
Definition: datatransport.hpp:22
An LibUSB data transport class.
Definition: libusbdatatransport.hpp:25
std::shared_ptr< LibUSBReaderUnit > getLibUSBReaderUnit() const
Get the LibUSB reader unit.
Definition: libusbdatatransport.hpp:85
bool d_isConnected
Definition: libusbdatatransport.hpp:125
std::string getTransportType() const override
Get the transport type of this instance.
Definition: libusbdatatransport.hpp:41
Data transport for reader/card commands.
#define TRANSPORT_LIBUSB
Definition: libusbdatatransport.hpp:16
LibUSB Reader unit.
Definition: asn1.hpp:9
LLA_READERS_PCSC_API void getReaderUnit(const std::string &readerName, std::shared_ptr< logicalaccess::ReaderUnit > &u)
Definition: libraryentry.cpp:25