diff --git a/serial/rfc2217.py b/serial/rfc2217.py index 12615cf3..b41710eb 100644 --- a/serial/rfc2217.py +++ b/serial/rfc2217.py @@ -330,11 +330,15 @@ def set(self, value): the client needs to know if the change is performed he has to check the state of this object. """ - self.value = value - self.state = REQUESTED - self.connection.rfc2217_send_subnegotiation(self.option, self.value) - if self.connection.logger: - self.connection.logger.debug("SB Requesting {} -> {!r}".format(self.name, self.value)) + if value != self.value: + self.value = value + self.state = REQUESTED + self.connection.rfc2217_send_subnegotiation(self.option, self.value) + if self.connection.logger: + self.connection.logger.debug("SB Requesting {} -> {!r}".format(self.name, self.value)) + else: + if self.connection.logger: + self.connection.logger.debug("SB Requesting {} -> {!r} (skipped)".format(self.name, self.value)) def is_ready(self): """\