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