30 #if defined(HAVE_HIDAPI) 32 #include <boost/optional/optional.hpp> 33 #include <hidapi/hidapi.h> 53 struct hid_conn_params {
57 unsigned short usage_page;
61 class device_io_hid: device_io {
67 unsigned short channel;
69 unsigned int packet_size;
74 hid_device *usb_device;
76 void io_hid_log(
int read,
unsigned char*
buf,
int buf_len);
79 void io_hid_open(
int vid,
int pid,
int mode);
80 void io_hid_close (
void);
82 unsigned int wrapCommand(
const unsigned char *command,
size_t command_len,
unsigned char *out,
size_t out_len);
83 unsigned int unwrapReponse(
const unsigned char *
data,
size_t data_len,
unsigned char *out,
size_t out_len);
85 hid_device_info *find_device(hid_device_info *devices_list, boost::optional<int> interface_number, boost::optional<unsigned short> usage_page);
88 bool hid_verbose =
false;
90 static const unsigned short DEFAULT_CHANNEL = 0x0001;
91 static const unsigned char DEFAULT_TAG = 0x01;
92 static const unsigned int DEFAULT_PACKET_SIZE = 64;
93 static const unsigned int DEFAULT_TIMEOUT = 120000;
95 device_io_hid(
unsigned short channel,
unsigned char tag,
unsigned int packet_zize,
unsigned int timeout);
100 void connect(
void *params);
101 void connect(
const std::vector<hid_conn_params> &
conn);
102 hid_device *connect(
unsigned int vid,
unsigned int pid, boost::optional<int> interface_number, boost::optional<unsigned short> usage_page);
103 bool connected()
const;
104 int exchange(
unsigned char *command,
unsigned int cmd_len,
unsigned char *response,
unsigned int max_resp_len,
bool user_input);
111 #endif //#if defined(HAVE_HIDAPI) static int init(int argc, char **argv, struct runtime_vars *v)
Definition: miniupnpd.c:1149
def release
Definition: support.py:307
const char * tag
Definition: testobsdrdr.c:19
std::string data
Definition: base58.cpp:37
Definition: device.cpp:38
const char * buf
Definition: slow_memmem.cpp:73
enum modes mode
Definition: minihttptestserver.c:268
static uint32_t io
Definition: blockchain_stats.cpp:67
std::unique_ptr< test_connection > conn(new test_connection(io_service, m_handler_config))