diff options
-rw-r--r-- | device.cc | 3 | ||||
-rw-r--r-- | include/device.h | 6 | ||||
-rw-r--r-- | include/device_proto.h | 2 |
3 files changed, 8 insertions, 3 deletions
@@ -85,6 +85,7 @@ Stick10::Stick10() { m_vid = 0x20a0; m_pid = 0x4108; m_model = DeviceModel::PRO; + m_send_receive_delay = 10ms; } Stick20::Stick20() { @@ -92,5 +93,5 @@ Stick20::Stick20() { m_pid = 0x4109; m_retry_timeout = std::chrono::milliseconds(500); m_model = DeviceModel::STORAGE; - + m_send_receive_delay = 1000ms; } diff --git a/include/device.h b/include/device.h index 1f6d486..ffc38e5 100644 --- a/include/device.h +++ b/include/device.h @@ -10,6 +10,7 @@ namespace nitrokey { namespace device { + using namespace std::chrono_literals; enum class CommError { ERR_NO_ERROR = 0, @@ -25,7 +26,8 @@ enum class DeviceModel{ }; class Device { - public: + +public: Device(); // lack of device is not actually an error, @@ -46,6 +48,7 @@ class Device { int get_retry_count() const { return m_retry_count; }; std::chrono::milliseconds get_retry_timeout() const { return m_retry_timeout; }; + std::chrono::milliseconds get_send_receive_delay() const {return m_send_receive_delay;} int get_last_command_status() const; void set_last_command_status(uint8_t _err) { last_command_status = _err;} ; @@ -66,6 +69,7 @@ private: */ int m_retry_count; std::chrono::milliseconds m_retry_timeout; + std::chrono::milliseconds m_send_receive_delay; hid_device *mp_devhandle; }; diff --git a/include/device_proto.h b/include/device_proto.h index 7e2c0d9..6e21f9f 100644 --- a/include/device_proto.h +++ b/include/device_proto.h @@ -191,7 +191,7 @@ class Transaction : semantics::non_constructible { std::string("Device error while sending command ") + std::to_string((int)(status))); - std::this_thread::sleep_for(1000ms); + std::this_thread::sleep_for(dev.get_send_receive_delay()); // FIXME make checks done in device:recv here int retry = dev.get_retry_count(); |