diff --git a/Stream/measure_rtl/delayData/HiveMQ/qos0.png b/Stream/measure_rtl/delayData/HiveMQ/qos0.png new file mode 100644 index 0000000..666d0db Binary files /dev/null and b/Stream/measure_rtl/delayData/HiveMQ/qos0.png differ diff --git a/Stream/measure_rtl/delayData/HiveMQ/qos0/qos0.png b/Stream/measure_rtl/delayData/HiveMQ/qos0/qos0.png new file mode 100644 index 0000000..f5c658b Binary files /dev/null and b/Stream/measure_rtl/delayData/HiveMQ/qos0/qos0.png differ diff --git a/Stream/measure_rtl/delayData/HiveMQ/qos1/qos1.png b/Stream/measure_rtl/delayData/HiveMQ/qos1/qos1.png new file mode 100644 index 0000000..48f7317 Binary files /dev/null and b/Stream/measure_rtl/delayData/HiveMQ/qos1/qos1.png differ diff --git a/Stream/measure_rtl/delayData/HiveMQ/qos2/qos2.png b/Stream/measure_rtl/delayData/HiveMQ/qos2/qos2.png new file mode 100644 index 0000000..a79094d Binary files /dev/null and b/Stream/measure_rtl/delayData/HiveMQ/qos2/qos2.png differ diff --git a/Stream/measure_rtl/delayData/Mosquitto/qos0/qos0.png b/Stream/measure_rtl/delayData/Mosquitto/qos0/qos0.png new file mode 100644 index 0000000..47667a5 Binary files /dev/null and b/Stream/measure_rtl/delayData/Mosquitto/qos0/qos0.png differ diff --git a/Stream/measure_rtl/delayData/Mosquitto/qos1/qos1.png b/Stream/measure_rtl/delayData/Mosquitto/qos1/qos1.png new file mode 100644 index 0000000..8571ceb Binary files /dev/null and b/Stream/measure_rtl/delayData/Mosquitto/qos1/qos1.png differ diff --git a/Stream/measure_rtl/delayData/Mosquitto/qos2/qos2.png b/Stream/measure_rtl/delayData/Mosquitto/qos2/qos2.png new file mode 100644 index 0000000..a789963 Binary files /dev/null and b/Stream/measure_rtl/delayData/Mosquitto/qos2/qos2.png differ diff --git a/Stream/measure_rtl/delayData/Mosquitto/testf.py b/Stream/measure_rtl/delayData/Mosquitto/testf.py new file mode 100644 index 0000000..89867a1 --- /dev/null +++ b/Stream/measure_rtl/delayData/Mosquitto/testf.py @@ -0,0 +1,13 @@ +from pathlib import Path + +# Get the path to the directory to traverse +directory = Path.cwd() +Protodir = [] +Jsondir = [] +# Iterate over the files and directories in the directory tree +for path in directory.glob('**/*.log'): + if "Proto" in str(path): + Protodir.append(path) + elif "Json" in str(path): + Jsondir.append(path) + print(Protodir) \ No newline at end of file diff --git a/Stream/measure_rtl/delayData/measureDelay.py b/Stream/measure_rtl/delayData/measureDelay.py new file mode 100644 index 0000000..0652286 --- /dev/null +++ b/Stream/measure_rtl/delayData/measureDelay.py @@ -0,0 +1,55 @@ +import pandas as pd +import matplotlib.pyplot as plt +import numpy as np +import argparse + +numberOfMsg = 1000 + +def checkNumberofLines(df): + if df.shape[0] != numberOfMsg: + raise Exception("Number of lines in the log file is not correct") + else: + return True + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("-q", "--qos", type=int, default=0, help="qos", required=True) + parser.add_argument("-b", "--broker", type=str, default="{}", help="Broker", required=True) + args = parser.parse_args() + + # read in the log file + df_Proto_delayA_PUB = pd.read_csv(f"{args.broker}/qos{args.qos}/ProtodelayA_PUB.log", delim_whitespace=True, header=None, names=["count", "time"]) + df_Proto_delayA_SUB = pd.read_csv(f"{args.broker}/qos{args.qos}/ProtodelayA_SUB.log", delim_whitespace=True, header=None, names=["count", "time"]) + df_Proto_delayB_SUB = pd.read_csv(f"{args.broker}/qos{args.qos}/ProtodelayB_SUB.log", delim_whitespace=True, header=None, names=["count", "time"]) + + df_Json_delayA_PUB = pd.read_csv(f"{args.broker}/qos{args.qos}/JsondelayA_PUB.log", delim_whitespace=True, header=None, names=["count", "time"]) + df_Json_delayA_SUB = pd.read_csv(f"{args.broker}/qos{args.qos}/JsondelayA_SUB.log", delim_whitespace=True, header=None, names=["count", "time"]) + df_Json_delayB_SUB = pd.read_csv(f"{args.broker}/qos{args.qos}/JsondelayB_SUB.log", delim_whitespace=True, header=None, names=["count", "time"]) + + + # check if the number of lines is correct + checkNumberofLines(df_Proto_delayA_PUB) + checkNumberofLines(df_Proto_delayA_SUB) + checkNumberofLines(df_Proto_delayB_SUB) + checkNumberofLines(df_Json_delayA_PUB) + checkNumberofLines(df_Json_delayA_SUB) + checkNumberofLines(df_Json_delayB_SUB) + + # print the resulting DataFrame + diff_Proto_df = pd.DataFrame({"Difftime":(df_Proto_delayA_SUB["time"] - df_Proto_delayA_PUB["time"] - df_Proto_delayB_SUB["time"])/1e9}) + diff_Json_df = pd.DataFrame({"Difftime":(df_Json_delayA_SUB["time"] - df_Json_delayA_PUB["time"] - df_Json_delayB_SUB["time"])/1e9}) + + array_Proto = diff_Proto_df["Difftime"].to_numpy() + array_Json = diff_Json_df["Difftime"].to_numpy() + + avg_Proto = np.average(array_Proto) + avg_Json = np.average(array_Json) + + fig = plt.figure() + plt.plot(array_Proto, color="blue", label=f"Proto: {avg_Proto}") + plt.plot(array_Json, color="red", label=f"Json: {avg_Json}") + plt.legend() + plt.xlabel("Number of messages") + plt.ylabel("Delay (s)") + plt.savefig(f"{args.broker}/qos{args.qos}/qos{args.qos}.png", dpi=100)