From 02654f03eb1a2342d3fdd513bd2c95108434be42 Mon Sep 17 00:00:00 2001 From: "Mr.Chip" Date: Wed, 21 Aug 2024 13:20:06 +0800 Subject: [PATCH] Fix: only set timeout for handle instead of reconfiguring the com port --- src/impl/win.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/impl/win.cc b/src/impl/win.cc index e9fd21c..17b0ca6 100644 --- a/src/impl/win.cc +++ b/src/impl/win.cc @@ -427,7 +427,17 @@ Serial::SerialImpl::setTimeout (serial::Timeout &timeout) { timeout_ = timeout; if (is_open_) { - reconfigurePort (); + //reconfigurePort (); + // Setup timeouts + COMMTIMEOUTS timeouts = { 0 }; + timeouts.ReadIntervalTimeout = timeout_.inter_byte_timeout; + timeouts.ReadTotalTimeoutConstant = timeout_.read_timeout_constant; + timeouts.ReadTotalTimeoutMultiplier = timeout_.read_timeout_multiplier; + timeouts.WriteTotalTimeoutConstant = timeout_.write_timeout_constant; + timeouts.WriteTotalTimeoutMultiplier = timeout_.write_timeout_multiplier; + if (!SetCommTimeouts(fd_, &timeouts)) { + THROW(IOException, "Error setting timeouts."); + } } }