From 8b5c1c5cd17ebfd2a63d4ee3564879c92e465de7 Mon Sep 17 00:00:00 2001
From: Tammo Jan Dijkema <T.J.Dijkema@gmail.com>
Date: Thu, 22 Feb 2024 12:36:41 +0100
Subject: [PATCH] Make start time and duration options

---
 power_plot.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/power_plot.py b/power_plot.py
index f182ef0..5ade44f 100755
--- a/power_plot.py
+++ b/power_plot.py
@@ -96,7 +96,7 @@ class MyToolbar(NavigationToolbar):
 class PowerPlotMainWindow(QMainWindow):
     """QT Application that reads data from stdin, plots in a PowerPlot"""
 
-    def __init__(self, offset=None, col_num=1):
+    def __init__(self, offset=None, col_num=1, first_time=None, duration=2):
         super().__init__()
         self.setStyleSheet("background-color: white;")
         self.autoscale_x = True
@@ -126,13 +126,15 @@ class PowerPlotMainWindow(QMainWindow):
 
         line = sys.stdin.readline()
         values = line.split(",")
-        first_time = datetime.utcfromtimestamp(float(values[0]))
+
+        if first_time is None:
+            first_time = datetime.utcfromtimestamp(float(values[0]))
         self.time_dt = np.array(date2num(first_time))
 
         self.data = np.array([float(values[self.col_num])])
 
         self.start_time = first_time
-        self.stop_time = first_time + timedelta(hours=2)
+        self.stop_time = first_time + timedelta(hours=duration)
 
         plt.ion()
 
@@ -206,6 +208,8 @@ def handle_interrupt_signal(signum, frame):
 if __name__ == "__main__":
     parser = ArgumentParser(description="Read files and numbers from stdin and plot them")
     parser.add_argument("-o", "--offset", help="Offset along y-axis", type=float, default=None)
+    parser.add_argument("-s", "--start", help="Start time (default: now)", type=datetime.fromisoformat, default=None)
+    parser.add_argument("-d", "--duration", help="Duration in hours (default: 2", default=2, type=float)
 
     args = parser.parse_args()
 
@@ -217,7 +221,7 @@ if __name__ == "__main__":
         app.setWindowIcon(QtGui.QIcon(icon_path))
     except:
         pass
-    main_window = PowerPlotMainWindow(offset=args.offset)
+    main_window = PowerPlotMainWindow(offset=args.offset, first_time=args.start, duration=args.duration)
     main_window.show()
     signal.signal(signal.SIGINT, handle_interrupt_signal)
 
-- 
GitLab