diff --git a/power_plot.py b/power_plot.py index f182ef0b8d9d49c290f98382fd9a5652222d3e99..5ade44fb094289952e5ec22beeb6504466cb474b 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)