Skip to content

Commit 8d44e6c

Browse files
committed
[data] added logging
1 parent abaa978 commit 8d44e6c

File tree

2 files changed

+34
-9
lines changed

2 files changed

+34
-9
lines changed

src/instrumentman/datatransfer/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
default=True
4242
)
4343
@option(
44-
"--inclide-eof/--no-include-eof",
44+
"--include-eof/--no-include-eof",
4545
help=(
4646
"wether the EOF marker is part of the output format "
4747
"(or just sent by the instrument regardless of the format in question)"

src/instrumentman/datatransfer/app.py

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from io import BufferedWriter, TextIOWrapper
2+
from logging import getLogger
23

34
from serial import SerialTimeoutException
45
from rich.progress import Progress, TextColumn
@@ -18,39 +19,53 @@ def main_download(
1819
include_eof: bool = False
1920
) -> None:
2021
eof_bytes = eof.encode("ascii")
22+
logger = getLogger("iman.data.download")
23+
logger.info(f"Opening connection on {port}")
24+
logger.debug(f"Connection parameters: baud={baud:d}, timeout={timeout:d}")
2125
with open_serial(
2226
port,
2327
speed=baud,
2428
timeout=timeout
2529
) as com:
2630
eol_bytes = com.eombytes
2731
started = False
32+
logger.info("Starting data download")
33+
logger.debug("Waiting for first line...")
2834
while True:
2935
try:
3036
data = com.receive_binary()
31-
started = True
37+
if not started:
38+
started = True
39+
logger.debug("Received first line...")
3240

3341
if data == eof_bytes and autoclose and not include_eof:
3442
echo_green("Download finished (end-of-file)")
35-
return
43+
logger.info("Download finished (end-of-file)")
44+
break
3645

3746
echo(data.decode("ascii", "replace"))
3847
if output is not None:
3948
output.write(data + eol_bytes)
4049

4150
if data == eof_bytes and autoclose:
4251
echo_green("Download finished (end-of-file)")
43-
return
52+
logger.info("Download finished (end-of-file)")
53+
break
4454
except SerialTimeoutException:
4555
if started and autoclose:
4656
echo_green("Download finished (timeout)")
47-
return
57+
logger.info("Download finished (timeout)")
58+
break
4859
except KeyboardInterrupt:
4960
echo_yellow("Download stopped manually")
50-
return
61+
logger.info("Download stopped manually")
62+
break
5163
except Exception as e:
5264
echo_red(f"Download interrupted by error ({e})")
53-
return
65+
logger.exception("Download interrupted by error")
66+
break
67+
68+
logger.info(f"Closed connection on {port}")
5469

5570

5671
def main_upload(
@@ -60,12 +75,17 @@ def main_upload(
6075
timeout: int = 15,
6176
skip: int = 0
6277
) -> None:
78+
logger = getLogger("iman.data.upload")
79+
logger.info(f"Opening connection on {port}")
80+
logger.debug(f"Connection parameters: baud={baud:d}, timeout={timeout:d}")
6381
with open_serial(
6482
port,
6583
speed=baud,
6684
timeout=timeout
6785
) as com:
6886
try:
87+
logger.info("Starting data upload")
88+
logger.debug(f"Skipping {skip} line(s)")
6989
for _ in range(skip):
7090
next(file)
7191

@@ -76,8 +96,13 @@ def main_upload(
7696
for line in progress.track(file, description="Uploading..."):
7797
com.send(line)
7898

99+
except KeyboardInterrupt:
100+
echo_yellow("Upload cancelled")
101+
logger.info("Upload cancelled by user")
79102
except Exception as e:
80103
echo_red(f"Upload interrupted by error ({e})")
81-
return
104+
logger.exception("Upload interrupted by error")
105+
else:
106+
echo_green("Upload finished")
82107

83-
echo_green("Upload finished")
108+
logger.info(f"Closed connection on {port}")

0 commit comments

Comments
 (0)