Add temperature_logger/src/temperature_logger/cli.py
This commit is contained in:
parent
a7e7b95ea0
commit
04acc1bd3d
1 changed files with 51 additions and 0 deletions
51
temperature_logger/src/temperature_logger/cli.py
Normal file
51
temperature_logger/src/temperature_logger/cli.py
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import argparse
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Importiere Funktion aus core-Modul
|
||||
from temperature_logger.core import log_temperature_data
|
||||
|
||||
def main() -> None:
|
||||
"""CLI-Einstiegspunkt für das Temperatur-Logging-Tool.
|
||||
|
||||
Liest Kommandozeilenargumente und startet den Logging-Prozess.
|
||||
"""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Starte das Temperatur-Logging über einen Infrarot-Sensor."
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--sensor",
|
||||
required=True,
|
||||
help="Pfad zum Sensor oder Portname, z. B. /dev/ttyUSB0."
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--interval",
|
||||
type=float,
|
||||
default=1.0,
|
||||
help="Messintervall in Sekunden (Standard: 1.0)."
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Input Validation
|
||||
sensor = args.sensor
|
||||
if not isinstance(sensor, str) or not sensor:
|
||||
print("Fehler: Der Wert für --sensor muss eine nicht-leere Zeichenkette sein.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
interval = args.interval
|
||||
if not isinstance(interval, (int, float)) or interval <= 0:
|
||||
print("Fehler: Der Wert für --interval muss eine positive Zahl sein.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
log_temperature_data(sensor=sensor, interval=interval)
|
||||
except Exception as exc: # pragma: no cover
|
||||
print(f"Fehler beim Starten des Temperatur-Loggings: {exc}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in a new issue