From 3e89fd18d3428b5c9aaab3f63aa05c282c4889bf Mon Sep 17 00:00:00 2001 From: Emanuele Laface <emanuele.laface@esss.se> Date: Mon, 27 Jul 2020 14:10:53 +0200 Subject: [PATCH] Update live screens --- PythonServer/screens/ts2_screens.py | 105 +++++++--------------------- 1 file changed, 26 insertions(+), 79 deletions(-) diff --git a/PythonServer/screens/ts2_screens.py b/PythonServer/screens/ts2_screens.py index 7f0bb24..534b244 100755 --- a/PythonServer/screens/ts2_screens.py +++ b/PythonServer/screens/ts2_screens.py @@ -26,6 +26,7 @@ class ts2_screensScreen(Thread): "TS2-010CDL:Cryo-TE-82314:MeasValue", "CrS-TICP:Cryo-TE-31492:Val", ] + intervals = {"2w": 24 * 14, "1w": 24 * 7, "2d": 24 * 2, "1d": 24, "live": 1} epics_dict = {} for pv in pvs: @@ -34,90 +35,36 @@ class ts2_screensScreen(Thread): counter = 0 while not self.stop_signal.isSet(): try: - if counter % 7200 == 0: + if counter % 100 == 0: json_dict = {} + final_data = {} for pv in epics_dict: - start_date = ( - datetime.datetime.now() - datetime.timedelta(days=14) - ).isoformat() + "Z" - end_date = datetime.datetime.now().isoformat() + "Z" - url = "http://archiver-01.tn.esss.lu.se:17668/retrieval/data/getData.json?pv=ncount({})&from={}&to={}".format( - pv, start_date, end_date - ) - entries = int(requests.get(url).json()[0]["data"][0]["val"]) - url = "http://archiver-01.tn.esss.lu.se:17668/retrieval/data/getData.json?pv=nth_{}({})&from={}&to={}".format( - int(entries // 1400), pv, start_date, end_date - ) - r = requests.get(url).json()[0]["data"] - raw_data = pandas.DataFrame.from_dict(r) - final_data = {} - final_data["2w"] = raw_data.groupby( - raw_data.index // (raw_data.shape[0] / 100) - ).mean() - tmp = raw_data[ - raw_data["secs"] - > ( - datetime.datetime.now() - datetime.timedelta(days=7) - ).timestamp() - ] - final_data["1w"] = tmp.groupby( - tmp.index // (tmp.shape[0] / 100) - ).mean() - tmp = raw_data[ - raw_data["secs"] - > ( - datetime.datetime.now() - datetime.timedelta(days=2) - ).timestamp() - ] - final_data["2d"] = tmp.groupby( - tmp.index // (tmp.shape[0] / 100) - ).mean() - tmp = raw_data[ - raw_data["secs"] - > ( - datetime.datetime.now() - datetime.timedelta(days=1) - ).timestamp() - ] - final_data["1d"] = tmp.groupby( - tmp.index // (tmp.shape[0] / 100) - ).mean() - final_data["live"] = raw_data[-100:] json_dict[pv] = {} - json_dict[pv]["2w"] = list( - zip( - (final_data["2w"]["secs"] * 1000).astype("int") - + (final_data["2w"]["nanos"] / 1e6).astype("int"), - round(final_data["2w"]["val"], 3), + for interval in intervals: + start_date = ( + datetime.datetime.now() + - datetime.timedelta(hours=intervals[interval]) + ).isoformat() + "Z" + end_date = datetime.datetime.now().isoformat() + "Z" + url = "http://archiver-01.tn.esss.lu.se:17668/retrieval/data/getData.json?pv=ncount({})&from={}&to={}".format( + pv, start_date, end_date ) - ) - json_dict[pv]["1w"] = list( - zip( - (final_data["1w"]["secs"] * 1000).astype("int") - + (final_data["1w"]["nanos"] / 1e6).astype("int"), - round(final_data["1w"]["val"], 3), + entries = int(requests.get(url).json()[0]["data"][0]["val"]) + url = "http://archiver-01.tn.esss.lu.se:17668/retrieval/data/getData.json?pv=nth_{}({})&from={}&to={}".format( + int(entries // 100), pv, start_date, end_date ) - ) - json_dict[pv]["2d"] = list( - zip( - (final_data["2d"]["secs"] * 1000).astype("int") - + (final_data["2d"]["nanos"] / 1e6).astype("int"), - round(final_data["2d"]["val"], 3), + r = requests.get(url).json()[0]["data"] + raw_data = pandas.DataFrame.from_dict(r) + final_data[interval] = raw_data + json_dict[pv][interval] = list( + zip( + (final_data[interval]["secs"] * 1000).astype("int") + + (final_data[interval]["nanos"] / 1e6).astype( + "int" + ), + round(final_data[interval]["val"], 3), + ) ) - ) - json_dict[pv]["1d"] = list( - zip( - (final_data["1d"]["secs"] * 1000).astype("int") - + (final_data["1d"]["nanos"] / 1e6).astype("int"), - round(final_data["1d"]["val"], 3), - ) - ) - json_dict[pv]["live"] = list( - zip( - (final_data["live"]["secs"] * 1000).astype("int") - + (final_data["live"]["nanos"] / 1e6).astype("int"), - round(final_data["live"]["val"], 3), - ) - ) counter = 0 for pv in epics_dict: @@ -139,7 +86,7 @@ class ts2_screensScreen(Thread): except Exception: print(sys.exc_info()) time.sleep(1) - time.sleep(0.5) + time.sleep(36) counter += 1 for pv in epics_dict: -- GitLab