diff options
| author | Szczepan Zalega <szczepan@nitrokey.com> | 2017-01-31 18:15:48 +0100 | 
|---|---|---|
| committer | Szczepan Zalega <szczepan@nitrokey.com> | 2017-03-11 15:41:41 +0100 | 
| commit | d69cf0b866fa3cc5afda2bb1a321a900520fbcc1 (patch) | |
| tree | 50f0e9e28c7b5dae8a006695d8f8a67a90644988 | |
| parent | 0503db5b47f247568b78504fa781e083e108eab9 (diff) | |
| download | libnitrokey-d69cf0b866fa3cc5afda2bb1a321a900520fbcc1.tar.gz libnitrokey-d69cf0b866fa3cc5afda2bb1a321a900520fbcc1.tar.bz2  | |
Add method for checking is the device listed as connected in OS
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
| -rw-r--r-- | device.cc | 18 | ||||
| -rw-r--r-- | include/device.h | 2 | 
2 files changed, 20 insertions, 0 deletions
@@ -106,6 +106,24 @@ int Device::recv(void *packet) {    return status;  } +bool Device::is_connected() { +  Log::instance()(__PRETTY_FUNCTION__, Loglevel::DEBUG_L2); +  std::lock_guard<std::mutex> lock(mex_dev_com); +  if (mp_devhandle==nullptr){ +    return false; +  } +  auto pInfo = hid_enumerate(m_vid, m_pid); +  if (pInfo != nullptr){ +    hid_free_enumeration(pInfo); +    return true; +  } +  return false; + +//  alternative: +//  unsigned char buf[1]; +//  return hid_read_timeout(mp_devhandle, buf, sizeof(buf), 20) != -1; +} +  Stick10::Stick10():    Device(0x20a0, 0x4108, DeviceModel::PRO, 100ms, 20, 100ms)    {} diff --git a/include/device.h b/include/device.h index 4001d45..5965f99 100644 --- a/include/device.h +++ b/include/device.h @@ -52,6 +52,8 @@ public:     */    virtual int recv(void *packet); +  bool is_connected(); +    int get_retry_receiving_count() const { return m_retry_receiving_count; };    int get_retry_sending_count() const { return m_retry_sending_count; };    std::chrono::milliseconds get_retry_timeout() const { return m_retry_timeout; };  | 
