diff options
Diffstat (limited to 'device.cc')
-rw-r--r-- | device.cc | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -13,7 +13,8 @@ using namespace nitrokey::log; Device::Device() : m_vid(0), m_pid(0), - m_retry_count(40), + m_retry_sending_count(3), + m_retry_receiving_count(40), m_retry_timeout(100), mp_devhandle(NULL), last_command_status(0){} @@ -21,14 +22,16 @@ Device::Device() bool Device::disconnect() { Log::instance()(__PRETTY_FUNCTION__, Loglevel::DEBUG_L2); - hid_exit(); + if(mp_devhandle== nullptr) return false; + hid_close(mp_devhandle); mp_devhandle = NULL; + hid_exit(); return true; } bool Device::connect() { Log::instance()(__PRETTY_FUNCTION__, Loglevel::DEBUG_L2); - // hid_init(); +// hid_init(); mp_devhandle = hid_open(m_vid, m_pid, NULL); // hid_init(); return mp_devhandle != NULL; @@ -67,7 +70,7 @@ int Device::recv(void *packet) { Loglevel::DEBUG_L2); if (status > 0) break; // success - if (retry_count++ >= m_retry_count) { + if (retry_count++ >= m_retry_receiving_count) { Log::instance()( "Maximum retry count reached" + std::to_string(retry_count), Loglevel::WARNING); @@ -86,13 +89,14 @@ Stick10::Stick10() { m_pid = 0x4108; m_model = DeviceModel::PRO; m_send_receive_delay = 100ms; - m_retry_count = 100; + m_retry_receiving_count = 100; } Stick20::Stick20() { m_vid = 0x20a0; m_pid = 0x4109; - m_retry_timeout = std::chrono::milliseconds(500); + m_retry_timeout = 20ms; m_model = DeviceModel::STORAGE; - m_send_receive_delay = 1000ms; + m_send_receive_delay = 20ms; + m_retry_receiving_count = 40; } |