Skip to content

Commit 5569aa5

Browse files
committed
fix(esp_rfc2217): Fixed keyboard interrupt on Windows and added info for command
1 parent ab2e0bf commit 5569aa5

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

esp_rfc2217_server/__init__.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,28 @@ def main():
9090
srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
9191
srv.bind(("", args.localport))
9292
srv.listen(1)
93-
logging.info(" TCP/IP port: {}".format(args.localport))
93+
logging.info(f" TCP/IP port: {args.localport}")
94+
95+
host_ip = socket.gethostbyname(socket.gethostname())
96+
logging.info(
97+
f"Waiting for connection ... use the 'rfc2217://{host_ip}:{args.localport}?ign_set_control' as a PORT"
98+
)
99+
94100
while True:
101+
srv.settimeout(5)
102+
client_socket = None
103+
try:
104+
while client_socket is None:
105+
try:
106+
client_socket, addr = srv.accept()
107+
except TimeoutError:
108+
print(".", end="", flush=True)
109+
except KeyboardInterrupt:
110+
print("") # resetting inline print
111+
logging.info("Exited with keyboard interrupt")
112+
break
95113
try:
96-
client_socket, addr = srv.accept()
97-
logging.info("Connected by {}:{}".format(addr[0], addr[1]))
114+
logging.info(f" Connected by {addr[0]}:{addr[1]}")
98115
client_socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
99116
ser.rts = True
100117
ser.dtr = True
@@ -103,7 +120,7 @@ def main():
103120
try:
104121
r.shortcircuit()
105122
finally:
106-
logging.info("Disconnected")
123+
logging.info(" Disconnected")
107124
r.stop()
108125
client_socket.close()
109126
ser.dtr = False
@@ -117,7 +134,7 @@ def main():
117134
except socket.error as msg:
118135
logging.error(str(msg))
119136

120-
logging.info("--- exit ---")
137+
logging.info(" --- exit ---")
121138

122139

123140
if __name__ == "__main__":

0 commit comments

Comments
 (0)