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