From d478f9a20ab3cb1c4697138e103d061ba7e5e1ee Mon Sep 17 00:00:00 2001 From: Christos Houtouridis Date: Sun, 6 Oct 2019 13:37:16 +0300 Subject: [PATCH] Measurements and comments added --- measurements/4_10/output.txt | 601 +++++++++++++++++++++ measurements/4_10/output1.txt | 262 ++++++++++ measurements/4_10/output2.txt | 18 + measurements/4_10/statistics.txt | 20 + measurements/4_10/statistics1.txt | 20 + measurements/4_10/statistics2_.txt | 20 + measurements/check.sh | 10 + src/client.c | 76 ++- src/core.c | 292 ++++++++--- src/core.h | 23 +- src/listener.c | 5 +- src/main.c | 18 +- src/messenger.c | 806 ----------------------------- src/msg_impl.h | 4 +- 14 files changed, 1270 insertions(+), 905 deletions(-) create mode 100644 measurements/4_10/output.txt create mode 100644 measurements/4_10/output1.txt create mode 100644 measurements/4_10/output2.txt create mode 100644 measurements/4_10/statistics.txt create mode 100644 measurements/4_10/statistics1.txt create mode 100644 measurements/4_10/statistics2_.txt create mode 100755 measurements/check.sh delete mode 100755 src/messenger.c diff --git a/measurements/4_10/output.txt b/measurements/4_10/output.txt new file mode 100644 index 0000000..e4164d1 --- /dev/null +++ b/measurements/4_10/output.txt @@ -0,0 +1,601 @@ +In dev=8880, message: from=8880, to=8261, timestamp=1570209164, text=Message from toliz with +new message: from=8997, to=8844, timestamp=1570209284, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570209284, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570209284, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8844, timestamp=1570209284, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8844, timestamp=1570209284, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8844, timestamp=1570209323, text=kotsarelos#0 +In dev=8861, message: from=8861, to=8877, timestamp=1570209345, text=This is a random message +In dev=8880, message: from=8880, to=8861, timestamp=1570209340, text=Message from toliz with +In dev=8844, message: from=8844, to=9001, timestamp=1570209381, text=I am message #0 of GKyri +In dev=8941, message: from=8941, to=8861, timestamp=1570209440, text=kotsarelos#1 +In dev=8880, message: from=8880, to=8261, timestamp=1570209464, text=Message from toliz with +new message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570209522, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8941, timestamp=1570209530, text=This is a random message +In dev=8844, message: from=8844, to=8997, timestamp=1570209598, text=I am message #1 of GKyri +In dev=8941, message: from=8941, to=8861, timestamp=1570209613, text=kotsarelos#2 +new message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570209713, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8941, timestamp=1570209715, text=This is a random message +In dev=8880, message: from=8880, to=8861, timestamp=1570209675, text=Message from toliz with +In dev=8941, message: from=8941, to=8880, timestamp=1570209779, text=kotsarelos#3 +In dev=8941, message: from=8941, to=8997, timestamp=1570209848, text=kotsarelos#4 +In dev=8861, message: from=8861, to=8934, timestamp=1570209900, text=This is a random message +In dev=8880, message: from=8880, to=8941, timestamp=1570209884, text=Message from toliz with +new message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570209985, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8861, timestamp=1570210030, text=kotsarelos#5 +In dev=8844, message: from=8844, to=9001, timestamp=1570210032, text=I am message #3 of GKyri +In dev=8861, message: from=8861, to=8941, timestamp=1570210085, text=This is a random message +In dev=8941, message: from=8941, to=8861, timestamp=1570210140, text=kotsarelos#6 +In dev=8861, message: from=8880, to=8941, timestamp=1570210039, text=Message from toliz with +In dev=8861, message: from=8861, to=8941, timestamp=1570210270, text=This is a random message +new message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570210284, text=The ships hung in the sk +In dev=8844, message: from=8844, to=8880, timestamp=1570210249, text=I am message #4 of GKyri +In dev=8941, message: from=8941, to=8844, timestamp=1570210283, text=kotsarelos#7 +In dev=8941, message: from=8941, to=8844, timestamp=1570210403, text=kotsarelos#8 +In dev=8861, message: from=8861, to=8934, timestamp=1570210455, text=This is a random message +In dev=8861, message: from=8844, to=8941, timestamp=1570210466, text=I am message #5 of GKyri +In dev=8941, message: from=8941, to=8880, timestamp=1570210515, text=kotsarelos#9 +In dev=8880, message: from=8880, to=8997, timestamp=1570210521, text=Message from toliz with +new message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570210586, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8880, timestamp=1570210586, text=kotsarelos#10 +In dev=8880, message: from=8880, to=8861, timestamp=1570210629, text=Message from toliz with +In dev=8861, message: from=8861, to=8941, timestamp=1570210640, text=This is a random message +new message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570210688, text=The ships hung in the sk +In dev=8861, message: from=8844, to=8880, timestamp=1570210683, text=I am message #6 of GKyri +In dev=8941, message: from=8941, to=8997, timestamp=1570210733, text=kotsarelos#11 +In dev=8880, message: from=8880, to=8997, timestamp=1570210783, text=Message from toliz with +In dev=8861, message: from=8861, to=8997, timestamp=1570210825, text=This is a random message +In dev=8844, message: from=8844, to=9001, timestamp=1570210900, text=I am message #7 of GKyri +new message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570210967, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8844, timestamp=1570210975, text=kotsarelos#12 +In dev=8861, message: from=8861, to=8844, timestamp=1570211010, text=This is a random message +In dev=8861, message: from=8880, to=8941, timestamp=1570210974, text=Message from toliz with +In dev=8880, message: from=8880, to=8997, timestamp=1570211083, text=Message from toliz with +In dev=8941, message: from=8941, to=8861, timestamp=1570211097, text=kotsarelos#13 +In dev=8861, message: from=8844, to=8941, timestamp=1570211117, text=I am message #8 of GKyri +In dev=8880, message: from=8880, to=8997, timestamp=1570211204, text=Message from toliz with +In dev=8861, message: from=8861, to=8877, timestamp=1570211195, text=This is a random message +new message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570211253, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8861, timestamp=1570211224, text=kotsarelos#14 +new message: from=8997, to=8765, timestamp=1570211337, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570211337, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8765, timestamp=1570211337, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570211337, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8765, timestamp=1570211337, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8765, timestamp=1570211337, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570211337, text=The ships hung in the sk +In dev=8844, message: from=8844, to=8997, timestamp=1570211334, text=I am message #9 of GKyri +In dev=8861, message: from=8861, to=8997, timestamp=1570211380, text=This is a random message +In dev=8941, message: from=8941, to=8844, timestamp=1570211373, text=kotsarelos#15 +In dev=8880, message: from=8880, to=8997, timestamp=1570211442, text=Message from toliz with +new message: from=8997, to=8941, timestamp=1570211530, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570211530, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570211530, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570211530, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570211530, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8844, timestamp=1570211535, text=kotsarelos#16 +In dev=8844, message: from=8844, to=8997, timestamp=1570211551, text=I am message #10 of GKyr +In dev=8861, message: from=8861, to=8844, timestamp=1570211565, text=This is a random message +new message: from=8997, to=8261, timestamp=1570211651, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570211651, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570211651, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570211651, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570211651, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570211651, text=The ships hung in the sk +In dev=8880, message: from=8880, to=8261, timestamp=1570211667, text=Message from toliz with +In dev=8941, message: from=8941, to=8861, timestamp=1570211624, text=kotsarelos#17 +In dev=8861, message: from=8861, to=8877, timestamp=1570211750, text=This is a random message +In dev=8941, message: from=8941, to=8880, timestamp=1570211877, text=kotsarelos#18 +new message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570211944, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8997, timestamp=1570211935, text=This is a random message +In dev=8880, message: from=8880, to=8861, timestamp=1570211930, text=Message from toliz with +In dev=8861, message: from=8844, to=8941, timestamp=1570211985, text=I am message #12 of GKyr +In dev=8861, message: from=8861, to=8877, timestamp=1570212120, text=This is a random message +In dev=8941, message: from=8941, to=8844, timestamp=1570212148, text=kotsarelos#19 +In dev=8880, message: from=8880, to=8844, timestamp=1570212170, text=Message from toliz with +new message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570212217, text=The ships hung in the sk +In dev=8844, message: from=8844, to=8997, timestamp=1570212202, text=I am message #13 of GKyr +In dev=8880, message: from=8880, to=8844, timestamp=1570212267, text=Message from toliz with +In dev=8941, message: from=8941, to=8997, timestamp=1570212277, text=kotsarelos#20 +In dev=8861, message: from=8861, to=8934, timestamp=1570212305, text=This is a random message +In dev=8941, message: from=8941, to=8861, timestamp=1570212358, text=kotsarelos#21 +In dev=8880, message: from=8880, to=8941, timestamp=1570212405, text=Message from toliz with +In dev=8844, message: from=8844, to=8261, timestamp=1570212419, text=I am message #14 of GKyr +new message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570212465, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8880, timestamp=1570212490, text=This is a random message +In dev=8880, message: from=8880, to=8997, timestamp=1570212495, text=Message from toliz with +In dev=8941, message: from=8941, to=8997, timestamp=1570212522, text=kotsarelos#22 +In dev=8880, message: from=8880, to=8861, timestamp=1570212589, text=Message from toliz with +In dev=8844, message: from=8844, to=9001, timestamp=1570212636, text=I am message #15 of GKyr +In dev=8861, message: from=8861, to=8934, timestamp=1570212675, text=This is a random message +new message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570212753, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8880, timestamp=1570212740, text=kotsarelos#23 +In dev=8844, message: from=8844, to=9001, timestamp=1570212853, text=I am message #16 of GKyr +In dev=8880, message: from=8880, to=8261, timestamp=1570212826, text=Message from toliz with +In dev=8861, message: from=8861, to=8877, timestamp=1570212860, text=This is a random message +In dev=8941, message: from=8941, to=8844, timestamp=1570212955, text=kotsarelos#24 +new message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8844, timestamp=1570213015, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8844, timestamp=1570213045, text=This is a random message +In dev=8844, message: from=8844, to=8997, timestamp=1570213070, text=I am message #17 of GKyr +In dev=8880, message: from=8880, to=8941, timestamp=1570213105, text=Message from toliz with +new message: from=8997, to=7700, timestamp=1570213192, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570213192, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570213192, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570213192, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570213192, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570213192, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570213192, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570213192, text=The ships hung in the sk +In dev=8880, message: from=8880, to=8261, timestamp=1570213230, text=Message from toliz with +In dev=8941, message: from=8941, to=8844, timestamp=1570213188, text=kotsarelos#25 +new message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570213270, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8880, timestamp=1570213230, text=This is a random message +In dev=8880, message: from=8844, to=8941, timestamp=1570213287, text=I am message #18 of GKyr +In dev=8941, message: from=8941, to=8880, timestamp=1570213339, text=kotsarelos#26 +In dev=8880, message: from=8880, to=8997, timestamp=1570213371, text=Message from toliz with +In dev=8861, message: from=8861, to=8877, timestamp=1570213415, text=This is a random message +In dev=8880, message: from=8880, to=8261, timestamp=1570213446, text=Message from toliz with +new message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8844, timestamp=1570213517, text=The ships hung in the sk +In dev=8844, message: from=8844, to=8997, timestamp=1570213504, text=I am message #19 of GKyr +In dev=8941, message: from=8941, to=8997, timestamp=1570213515, text=kotsarelos#27 +In dev=8861, message: from=8861, to=8844, timestamp=1570213600, text=This is a random message +In dev=8880, message: from=8880, to=8261, timestamp=1570213677, text=Message from toliz with +new message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570213709, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8844, timestamp=1570213637, text=kotsarelos#28 +In dev=8861, message: from=8861, to=8877, timestamp=1570213785, text=This is a random message +new message: from=8997, to=8844, timestamp=1570213857, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213857, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213857, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213857, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213857, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213857, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8844, timestamp=1570213857, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8844, timestamp=1570213857, text=The ships hung in the sk +new message: from=8997, to=8844, timestamp=1570213923, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8844, timestamp=1570213923, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8844, timestamp=1570213923, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8844, timestamp=1570213923, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8844, timestamp=1570213923, text=The ships hung in the sk +In dev=8880, message: from=8880, to=8941, timestamp=1570213924, text=Message from toliz with +In dev=8941, message: from=8941, to=8997, timestamp=1570213893, text=kotsarelos#29 +In dev=8861, message: from=8861, to=8880, timestamp=1570213970, text=This is a random message +In dev=8880, message: from=8880, to=8844, timestamp=1570214079, text=Message from toliz with +new message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570214141, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8844, timestamp=1570214155, text=This is a random message +In dev=8941, message: from=8941, to=8997, timestamp=1570214178, text=kotsarelos#30 +In dev=8880, message: from=8880, to=8941, timestamp=1570214321, text=Message from toliz with +In dev=8941, message: from=8941, to=8861, timestamp=1570214282, text=kotsarelos#31 +In dev=8861, message: from=8861, to=8880, timestamp=1570214340, text=This is a random message +new message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570214399, text=The ships hung in the sk +In dev=8844, message: from=8844, to=9001, timestamp=1570214372, text=I am message #23 of GKyr +In dev=8880, message: from=8880, to=8997, timestamp=1570214470, text=Message from toliz with +In dev=8880, message: from=8880, to=8941, timestamp=1570214564, text=Message from toliz with +In dev=8861, message: from=8861, to=8844, timestamp=1570214525, text=This is a random message +In dev=8941, message: from=8941, to=8997, timestamp=1570214518, text=kotsarelos#32 +In dev=8844, message: from=8844, to=8261, timestamp=1570214589, text=I am message #24 of GKyr +new message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570214633, text=The ships hung in the sk +In dev=8880, message: from=8880, to=8941, timestamp=1570214639, text=Message from toliz with +In dev=8941, message: from=8941, to=8997, timestamp=1570214624, text=kotsarelos#33 +In dev=8861, message: from=8861, to=8880, timestamp=1570214710, text=This is a random message +In dev=8880, message: from=8880, to=8844, timestamp=1570214726, text=Message from toliz with +new message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570214831, text=The ships hung in the sk +In dev=8844, message: from=8844, to=8261, timestamp=1570214806, text=I am message #25 of GKyr +In dev=8880, message: from=8880, to=8261, timestamp=1570214850, text=Message from toliz with +In dev=8941, message: from=8941, to=8997, timestamp=1570214877, text=kotsarelos#34 +In dev=8861, message: from=8861, to=8877, timestamp=1570214895, text=This is a random message +In dev=8844, message: from=8844, to=8997, timestamp=1570215023, text=I am message #26 of GKyr +In dev=8880, message: from=8880, to=8844, timestamp=1570215025, text=Message from toliz with +new message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570215105, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8844, timestamp=1570215080, text=This is a random message +In dev=8880, message: from=8880, to=8844, timestamp=1570215103, text=Message from toliz with +In dev=8941, message: from=8941, to=8861, timestamp=1570215141, text=kotsarelos#35 +In dev=8880, message: from=8880, to=8261, timestamp=1570215203, text=Message from toliz with +In dev=8861, message: from=8861, to=8877, timestamp=1570215265, text=This is a random message +In dev=8861, message: from=8844, to=8941, timestamp=1570215240, text=I am message #27 of GKyr +new message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570215372, text=The ships hung in the sk +new message: from=8997, to=8941, timestamp=1570215490, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570215490, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8941, timestamp=1570215490, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570215490, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570215490, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8844, timestamp=1570215450, text=This is a random message +In dev=8861, message: from=8844, to=8880, timestamp=1570215457, text=I am message #28 of GKyr +In dev=8941, message: from=8941, to=8997, timestamp=1570215423, text=kotsarelos#36 +In dev=8941, message: from=8941, to=8861, timestamp=1570215497, text=kotsarelos#37 +In dev=8880, message: from=8880, to=8941, timestamp=1570215461, text=Message from toliz with +In dev=8880, message: from=8861, to=8934, timestamp=1570215635, text=This is a random message +new message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8877, timestamp=1570215672, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8880, timestamp=1570215631, text=kotsarelos#38 +In dev=8844, message: from=8844, to=8261, timestamp=1570215674, text=I am message #29 of GKyr +new message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8765, timestamp=1570215745, text=The ships hung in the sk +In dev=8880, message: from=8880, to=8844, timestamp=1570215727, text=Message from toliz with +In dev=8861, message: from=8861, to=8877, timestamp=1570215820, text=This is a random message +new message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570215826, text=The ships hung in the sk +In dev=8941, message: from=8941, to=8844, timestamp=1570215814, text=kotsarelos#39 +In dev=8880, message: from=8880, to=8844, timestamp=1570215864, text=Message from toliz with +new message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570215928, text=The ships hung in the sk +In dev=8880, message: from=8880, to=8261, timestamp=1570215956, text=Message from toliz with +In dev=8861, message: from=8861, to=8877, timestamp=1570216005, text=This is a random message +In dev=8941, message: from=8941, to=8880, timestamp=1570216001, text=kotsarelos#40 +new message: from=8997, to=8261, timestamp=1570216155, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570216155, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570216155, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570216155, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570216155, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570216155, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570216155, text=The ships hung in the sk +In dev=8880, message: from=8880, to=8844, timestamp=1570216136, text=Message from toliz with +In dev=8844, message: from=8844, to=9001, timestamp=1570216108, text=I am message #31 of GKyr +In dev=8861, message: from=8861, to=8941, timestamp=1570216190, text=This is a random message +In dev=8941, message: from=8941, to=8844, timestamp=1570216217, text=kotsarelos#41 +In dev=8880, message: from=8880, to=8844, timestamp=1570216236, text=Message from toliz with +new message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8261, timestamp=1570216301, text=The ships hung in the sk +In dev=8844, message: from=8844, to=8997, timestamp=1570216325, text=I am message #32 of GKyr +In dev=8861, message: from=8861, to=8880, timestamp=1570216375, text=This is a random message +In dev=8880, message: from=8880, to=8261, timestamp=1570216464, text=Message from toliz with +new message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8880, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8880, timestamp=1570216481, text=The ships hung in the sk +new message: from=8997, to=8877, timestamp=1570216559, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8877, timestamp=1570216559, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8877, timestamp=1570216559, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8877, timestamp=1570216559, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8880, timestamp=1570216560, text=This is a random message +In dev=8941, message: from=8941, to=8880, timestamp=1570216465, text=kotsarelos#42 +In dev=8861, message: from=8861, to=8941, timestamp=1570216745, text=This is a random message +In dev=8941, message: from=8941, to=8861, timestamp=1570216648, text=kotsarelos#43 +new message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=7700, timestamp=1570216790, text=The ships hung in the sk +In dev=8844, message: from=8844, to=8997, timestamp=1570216759, text=I am message #34 of GKyr +new message: from=8997, to=8941, timestamp=1570216900, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8941, timestamp=1570216900, text=The ships hung in the sk +Out dev=8861, message: from=8997, to=8941, timestamp=1570216900, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8941, timestamp=1570216900, text=The ships hung in the sk +In dev=8861, message: from=8861, to=8997, timestamp=1570216930, text=This is a random message +In dev=8941, message: from=8941, to=8861, timestamp=1570216902, text=kotsarelos#44 +In dev=8844, message: from=8844, to=9001, timestamp=1570216976, text=I am message #35 of GKyr +In dev=8941, message: from=8941, to=8880, timestamp=1570216974, text=kotsarelos#45 +new message: from=8997, to=8934, timestamp=1570217188, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570217188, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570217188, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570217188, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8934, timestamp=1570217188, text=The ships hung in the sk +Out dev=8941, message: from=8997, to=8934, timestamp=1570217188, text=The ships hung in the sk +In dev=8844, message: from=8844, to=8997, timestamp=1570217193, text=I am message #36 of GKyr +In dev=8844, message: from=8844, to=8261, timestamp=1570217410, text=I am message #37 of GKyr +new message: from=8997, to=8261, timestamp=1570217455, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570217455, text=The ships hung in the sk +Out dev=8844, message: from=8997, to=8261, timestamp=1570217455, text=The ships hung in the sk +new message: from=8997, to=8765, timestamp=1570217680, text=The ships hung in the sk diff --git a/measurements/4_10/output1.txt b/measurements/4_10/output1.txt new file mode 100644 index 0000000..b7f7fee --- /dev/null +++ b/measurements/4_10/output1.txt @@ -0,0 +1,262 @@ +new message: from=8997, to=8941, timestamp=1570198382, text=The ships hung in the sk +new message: from=8997, to=8880, timestamp=1570198392, text=The ships hung in the sk +dev=8941, message: from=8941, to=8844, timestamp=1570198391, text=kotsarelos#0 +new message: from=8997, to=8877, timestamp=1570198404, text=The ships hung in the sk +dev=8861, message: from=8861, to=8877, timestamp=1570198391, text=This is a random message +dev=8941, message: from=8941, to=6969, timestamp=1570198404, text=kotsarelos#1 +new message: from=8997, to=8844, timestamp=1570198414, text=The ships hung in the sk +new message: from=8997, to=8880, timestamp=1570198425, text=The ships hung in the sk +dev=8941, message: from=8941, to=8997, timestamp=1570198417, text=kotsarelos#2 +new message: from=8997, to=7700, timestamp=1570198436, text=The ships hung in the sk +dev=8844, message: from=8844, to=8997, timestamp=1570198390, text=I am message #1 of GKyri +dev=8844, message: from=8844, to=8997, timestamp=1570198397, text=I am message #2 of GKyri +dev=8844, message: from=8844, to=8880, timestamp=1570198404, text=I am message #3 of GKyri +dev=8844, message: from=8844, to=8880, timestamp=1570198432, text=I am message #7 of GKyri +dev=8844, message: from=8844, to=8261, timestamp=1570198439, text=I am message #8 of GKyri +dev=8941, message: from=8941, to=8844, timestamp=1570198431, text=kotsarelos#3 +new message: from=8997, to=8877, timestamp=1570198446, text=The ships hung in the sk +dev=8941, message: from=8941, to=6666, timestamp=1570198444, text=kotsarelos#4 +new message: from=8997, to=8844, timestamp=1570198457, text=The ships hung in the sk +new message: from=8997, to=8880, timestamp=1570198467, text=The ships hung in the sk +dev=8941, message: from=8941, to=8844, timestamp=1570198458, text=kotsarelos#5 +dev=8861, message: from=8861, to=8844, timestamp=1570198407, text=This is a random message +dev=8861, message: from=8861, to=8844, timestamp=1570198423, text=This is a random message +dev=8861, message: from=8844, to=8941, timestamp=1570198383, text=I am message #0 of GKyri +dev=8861, message: from=8844, to=8941, timestamp=1570198425, text=I am message #6 of GKyri +dev=8861, message: from=8861, to=8844, timestamp=1570198439, text=This is a random message +dev=8861, message: from=8861, to=8877, timestamp=1570198455, text=This is a random message +new message: from=8997, to=8941, timestamp=1570198478, text=The ships hung in the sk +dev=8941, message: from=8941, to=6969, timestamp=1570198471, text=kotsarelos#6 +new message: from=8997, to=8000, timestamp=1570198489, text=The ships hung in the sk +dev=8880, message: from=8880, to=8861, timestamp=1570198474, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570198479, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570198484, text=Message from toliz with +dev=8941, message: from=8941, to=8861, timestamp=1570198484, text=kotsarelos#7 +new message: from=8997, to=8941, timestamp=1570198500, text=The ships hung in the sk +dev=8844, message: from=8844, to=8997, timestamp=1570198447, text=I am message #9 of GKyri +dev=8844, message: from=8844, to=8997, timestamp=1570198453, text=I am message #10 of GKyr +dev=8844, message: from=8844, to=8261, timestamp=1570198467, text=I am message #12 of GKyr +dev=8844, message: from=8844, to=8261, timestamp=1570198474, text=I am message #13 of GKyr +dev=8844, message: from=8844, to=8261, timestamp=1570198481, text=I am message #14 of GKyr +dev=8844, message: from=8844, to=9001, timestamp=1570198488, text=I am message #15 of GKyr +dev=8844, message: from=8844, to=8261, timestamp=1570198495, text=I am message #16 of GKyr +dev=8941, message: from=8941, to=8997, timestamp=1570198498, text=kotsarelos#8 +new message: from=8997, to=8934, timestamp=1570198511, text=The ships hung in the sk +dev=8941, message: from=8941, to=8844, timestamp=1570198511, text=kotsarelos#9 +new message: from=8997, to=8877, timestamp=1570198522, text=The ships hung in the sk +new message: from=8997, to=8880, timestamp=1570198533, text=The ships hung in the sk +dev=8861, message: from=8861, to=8941, timestamp=1570198471, text=This is a random message +dev=8861, message: from=8861, to=8880, timestamp=1570198487, text=This is a random message +dev=8861, message: from=8844, to=8880, timestamp=1570198460, text=I am message #11 of GKyr +dev=8941, message: from=8941, to=8880, timestamp=1570198524, text=kotsarelos#10 +dev=8861, message: from=8861, to=8941, timestamp=1570198503, text=This is a random message +dev=8861, message: from=8861, to=8844, timestamp=1570198519, text=This is a random message +new message: from=8997, to=8934, timestamp=1570198543, text=The ships hung in the sk +dev=8941, message: from=8941, to=8844, timestamp=1570198538, text=kotsarelos#11 +new message: from=8997, to=7700, timestamp=1570198554, text=The ships hung in the sk +dev=8941, message: from=8941, to=8880, timestamp=1570198551, text=kotsarelos#12 +new message: from=8997, to=8877, timestamp=1570198580, text=The ships hung in the sk +dev=8861, message: from=8861, to=8880, timestamp=1570198535, text=This is a random message +dev=8861, message: from=8861, to=8934, timestamp=1570198551, text=This is a random message +dev=8861, message: from=8880, to=8941, timestamp=1570198489, text=Message from toliz with +dev=8861, message: from=8880, to=8941, timestamp=1570198494, text=Message from toliz with +dev=8861, message: from=8880, to=8844, timestamp=1570198504, text=Message from toliz with +dev=8861, message: from=8880, to=8844, timestamp=1570198509, text=Message from toliz with +dev=8861, message: from=8880, to=8844, timestamp=1570198514, text=Message from toliz with +dev=8861, message: from=8880, to=8261, timestamp=1570198524, text=Message from toliz with +dev=8861, message: from=8880, to=8997, timestamp=1570198529, text=Message from toliz with +dev=8861, message: from=8880, to=8261, timestamp=1570198534, text=Message from toliz with +dev=8861, message: from=8880, to=8844, timestamp=1570198539, text=Message from toliz with +dev=8861, message: from=8880, to=8941, timestamp=1570198544, text=Message from toliz with +dev=8861, message: from=8880, to=8261, timestamp=1570198549, text=Message from toliz with +dev=8861, message: from=8844, to=8997, timestamp=1570198502, text=I am message #17 of GKyr +dev=8861, message: from=8844, to=9001, timestamp=1570198509, text=I am message #18 of GKyr +dev=8861, message: from=8844, to=8941, timestamp=1570198516, text=I am message #19 of GKyr +dev=8861, message: from=8844, to=8261, timestamp=1570198523, text=I am message #20 of GKyr +dev=8861, message: from=8844, to=8941, timestamp=1570198530, text=I am message #21 of GKyr +dev=8861, message: from=8844, to=8941, timestamp=1570198537, text=I am message #22 of GKyr +dev=8861, message: from=8844, to=8997, timestamp=1570198544, text=I am message #23 of GKyr +dev=8861, message: from=8844, to=8941, timestamp=1570198551, text=I am message #24 of GKyr +dev=8861, message: from=8844, to=9001, timestamp=1570198558, text=I am message #25 of GKyr +dev=8861, message: from=8861, to=8934, timestamp=1570198567, text=This is a random message +dev=8861, message: from=8941, to=8844, timestamp=1570198565, text=kotsarelos#13 +dev=8861, message: from=8861, to=8880, timestamp=1570198583, text=This is a random message +new message: from=8997, to=8934, timestamp=1570198626, text=The ships hung in the sk +dev=8941, message: from=8941, to=6666, timestamp=1570198700, text=kotsarelos#14 +dev=8941, message: from=8941, to=6969, timestamp=1570198712, text=kotsarelos#15 +dev=8941, message: from=8941, to=8861, timestamp=1570198724, text=kotsarelos#16 +dev=8941, message: from=8941, to=8861, timestamp=1570198736, text=kotsarelos#17 +dev=8941, message: from=8941, to=6969, timestamp=1570198749, text=kotsarelos#18 +dev=8941, message: from=8941, to=6969, timestamp=1570198762, text=kotsarelos#19 +dev=8941, message: from=8941, to=6666, timestamp=1570198776, text=kotsarelos#20 +dev=8941, message: from=8941, to=8880, timestamp=1570198789, text=kotsarelos#21 +new message: from=8997, to=8844, timestamp=1570198825, text=The ships hung in the sk +dev=8941, message: from=8941, to=8997, timestamp=1570198802, text=kotsarelos#22 +dev=8941, message: from=8941, to=8997, timestamp=1570198816, text=kotsarelos#23 +dev=8941, message: from=8941, to=8880, timestamp=1570198829, text=kotsarelos#24 +dev=8941, message: from=8941, to=8880, timestamp=1570198842, text=kotsarelos#25 +dev=8941, message: from=8941, to=8880, timestamp=1570198856, text=kotsarelos#26 +new message: from=8997, to=8877, timestamp=1570198892, text=The ships hung in the sk +new message: from=8997, to=8880, timestamp=1570198903, text=The ships hung in the sk +dev=8844, message: from=8844, to=8880, timestamp=1570198565, text=I am message #26 of GKyr +dev=8844, message: from=8844, to=8861, timestamp=1570198908, text=I am message #75 of GKyr +dev=8844, message: from=8880, to=8861, timestamp=1570198688, text=Message from toliz with +dev=8844, message: from=8880, to=8941, timestamp=1570198693, text=Message from toliz with +dev=8844, message: from=8880, to=8941, timestamp=1570198698, text=Message from toliz with +dev=8844, message: from=8880, to=8941, timestamp=1570198703, text=Message from toliz with +dev=8844, message: from=8880, to=8261, timestamp=1570198708, text=Message from toliz with +dev=8844, message: from=8880, to=8941, timestamp=1570198718, text=Message from toliz with +dev=8844, message: from=8880, to=8861, timestamp=1570198723, text=Message from toliz with +dev=8844, message: from=8880, to=8861, timestamp=1570198728, text=Message from toliz with +new message: from=8997, to=8000, timestamp=1570198914, text=The ships hung in the sk +new message: from=8997, to=8844, timestamp=1570198926, text=The ships hung in the sk +dev=8844, message: from=8844, to=8261, timestamp=1570198915, text=I am message #76 of GKyr +dev=8844, message: from=8844, to=8997, timestamp=1570198922, text=I am message #77 of GKyr +dev=8844, message: from=8844, to=8880, timestamp=1570198929, text=I am message #78 of GKyr +dev=8880, message: from=8880, to=8941, timestamp=1570198919, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570198924, text=Message from toliz with +new message: from=8997, to=8844, timestamp=1570198938, text=The ships hung in the sk +new message: from=8997, to=8861, timestamp=1570198948, text=The ships hung in the sk +dev=8861, message: from=8861, to=8880, timestamp=1570198599, text=This is a random message +dev=8861, message: from=8861, to=8844, timestamp=1570198903, text=This is a random message +dev=8861, message: from=8861, to=8880, timestamp=1570198919, text=This is a random message +dev=8861, message: from=8880, to=8261, timestamp=1570198914, text=Message from toliz with +dev=8861, message: from=8861, to=8877, timestamp=1570198935, text=This is a random message +dev=8861, message: from=8861, to=8880, timestamp=1570198951, text=This is a random message +new message: from=8997, to=8000, timestamp=1570198959, text=The ships hung in the sk +new message: from=8997, to=8000, timestamp=1570198971, text=The ships hung in the sk +new message: from=8997, to=8880, timestamp=1570198982, text=The ships hung in the sk +new message: from=8997, to=8861, timestamp=1570198993, text=The ships hung in the sk +dev=8880, message: from=8880, to=8261, timestamp=1570198929, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570198934, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570198939, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570198944, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570198949, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570198954, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570198959, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570198964, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570198969, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570198974, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570198979, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570198984, text=Message from toliz with +dev=8880, message: from=8880, to=8997, timestamp=1570198989, text=Message from toliz with +new message: from=8997, to=8941, timestamp=1570199005, text=The ships hung in the sk +dev=8861, message: from=8861, to=8934, timestamp=1570198967, text=This is a random message +dev=8861, message: from=8861, to=8844, timestamp=1570198983, text=This is a random message +dev=8861, message: from=8844, to=8941, timestamp=1570198936, text=I am message #79 of GKyr +dev=8861, message: from=8844, to=8880, timestamp=1570198943, text=I am message #80 of GKyr +dev=8861, message: from=8844, to=8997, timestamp=1570198950, text=I am message #81 of GKyr +dev=8861, message: from=8844, to=8941, timestamp=1570198957, text=I am message #82 of GKyr +dev=8861, message: from=8844, to=8880, timestamp=1570198964, text=I am message #83 of GKyr +dev=8861, message: from=8844, to=9001, timestamp=1570198971, text=I am message #84 of GKyr +dev=8861, message: from=8844, to=8997, timestamp=1570198978, text=I am message #85 of GKyr +dev=8861, message: from=8844, to=8997, timestamp=1570198985, text=I am message #86 of GKyr +dev=8861, message: from=8861, to=8877, timestamp=1570198999, text=This is a random message +new message: from=8997, to=8844, timestamp=1570199051, text=The ships hung in the sk +dev=8880, message: from=8880, to=8261, timestamp=1570198994, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570198999, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199004, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199009, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199014, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199020, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199025, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199030, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199035, text=Message from toliz with +dev=8880, message: from=8880, to=8997, timestamp=1570199040, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199045, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199050, text=Message from toliz with +new message: from=8997, to=8765, timestamp=1570199091, text=The ships hung in the sk +new message: from=8997, to=8861, timestamp=1570199107, text=The ships hung in the sk +new message: from=8997, to=8765, timestamp=1570199118, text=The ships hung in the sk +dev=8844, message: from=8844, to=9001, timestamp=1570198992, text=I am message #87 of GKyr +dev=8844, message: from=8844, to=8941, timestamp=1570199125, text=I am message #106 of GKy +new message: from=8997, to=8000, timestamp=1570199129, text=The ships hung in the sk +new message: from=8997, to=8877, timestamp=1570199141, text=The ships hung in the sk +new message: from=8997, to=8000, timestamp=1570199152, text=The ships hung in the sk +new message: from=8997, to=8941, timestamp=1570199163, text=The ships hung in the sk +new message: from=8997, to=8934, timestamp=1570199174, text=The ships hung in the sk +dev=8844, message: from=8844, to=8261, timestamp=1570199174, text=I am message #113 of GKy +dev=8861, message: from=8861, to=8877, timestamp=1570199015, text=This is a random message +dev=8861, message: from=8861, to=8877, timestamp=1570199031, text=This is a random message +dev=8861, message: from=8861, to=8941, timestamp=1570199127, text=This is a random message +dev=8861, message: from=8861, to=8877, timestamp=1570199143, text=This is a random message +dev=8861, message: from=8861, to=8997, timestamp=1570199159, text=This is a random message +dev=8861, message: from=8844, to=8941, timestamp=1570199146, text=I am message #109 of GKy +dev=8861, message: from=8861, to=8934, timestamp=1570199175, text=This is a random message +new message: from=8997, to=8861, timestamp=1570199185, text=The ships hung in the sk +new message: from=8997, to=8861, timestamp=1570199196, text=The ships hung in the sk +new message: from=8997, to=8934, timestamp=1570199207, text=The ships hung in the sk +new message: from=8997, to=8880, timestamp=1570199217, text=The ships hung in the sk +dev=8880, message: from=8880, to=8261, timestamp=1570199193, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199198, text=Message from toliz with +dev=8880, message: from=8880, to=8997, timestamp=1570199203, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199208, text=Message from toliz with +new message: from=8997, to=8861, timestamp=1570199228, text=The ships hung in the sk +dev=8844, message: from=8844, to=8997, timestamp=1570199188, text=I am message #115 of GKy +dev=8844, message: from=8844, to=8997, timestamp=1570199216, text=I am message #119 of GKy +dev=8844, message: from=8844, to=9001, timestamp=1570199223, text=I am message #120 of GKy +dev=8844, message: from=8844, to=8997, timestamp=1570199230, text=I am message #121 of GKy +new message: from=8997, to=8844, timestamp=1570199239, text=The ships hung in the sk +dev=8861, message: from=8861, to=8997, timestamp=1570199191, text=This is a random message +dev=8861, message: from=8861, to=8934, timestamp=1570199207, text=This is a random message +dev=8861, message: from=8861, to=8997, timestamp=1570199223, text=This is a random message +dev=8861, message: from=8844, to=8941, timestamp=1570199181, text=I am message #114 of GKy +dev=8861, message: from=8844, to=8941, timestamp=1570199195, text=I am message #116 of GKy +dev=8861, message: from=8861, to=8934, timestamp=1570199239, text=This is a random message +new message: from=8997, to=7700, timestamp=1570199250, text=The ships hung in the sk +new message: from=8997, to=7700, timestamp=1570199260, text=The ships hung in the sk +new message: from=8997, to=8941, timestamp=1570199271, text=The ships hung in the sk +dev=8880, message: from=8880, to=8861, timestamp=1570199213, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199218, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199223, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199228, text=Message from toliz with +dev=8880, message: from=8880, to=8997, timestamp=1570199233, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199238, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199243, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199248, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199253, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199258, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199263, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199268, text=Message from toliz with +new message: from=8997, to=8861, timestamp=1570199281, text=The ships hung in the sk +new message: from=8997, to=8861, timestamp=1570199292, text=The ships hung in the sk +dev=8861, message: from=8861, to=8844, timestamp=1570199255, text=This is a random message +dev=8861, message: from=8861, to=8880, timestamp=1570199271, text=This is a random message +dev=8861, message: from=8861, to=8941, timestamp=1570199287, text=This is a random message +dev=8861, message: from=8844, to=8997, timestamp=1570199237, text=I am message #122 of GKy +dev=8861, message: from=8844, to=9001, timestamp=1570199244, text=I am message #123 of GKy +dev=8861, message: from=8844, to=8941, timestamp=1570199251, text=I am message #124 of GKy +dev=8861, message: from=8844, to=8880, timestamp=1570199259, text=I am message #125 of GKy +dev=8861, message: from=8844, to=8941, timestamp=1570199265, text=I am message #126 of GKy +dev=8861, message: from=8844, to=8941, timestamp=1570199272, text=I am message #127 of GKy +dev=8861, message: from=8844, to=9001, timestamp=1570199279, text=I am message #128 of GKy +dev=8861, message: from=8844, to=8997, timestamp=1570199286, text=I am message #129 of GKy +dev=8861, message: from=8861, to=8880, timestamp=1570199303, text=This is a random message +new message: from=8997, to=8934, timestamp=1570199308, text=The ships hung in the sk +dev=8880, message: from=8880, to=8941, timestamp=1570199274, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199279, text=Message from toliz with +dev=8880, message: from=8880, to=8997, timestamp=1570199284, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199289, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199294, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199299, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199304, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199309, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199314, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199319, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199324, text=Message from toliz with +dev=8880, message: from=8880, to=8997, timestamp=1570199329, text=Message from toliz with +new message: from=8997, to=8765, timestamp=1570199356, text=The ships hung in the sk +dev=8880, message: from=8880, to=8861, timestamp=1570199335, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570199340, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199345, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199350, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199355, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199360, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199365, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570199370, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199375, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199380, text=Message from toliz with +dev=8880, message: from=8880, to=8941, timestamp=1570199385, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199390, text=Message from toliz with +dev=8880, message: from=8880, to=8861, timestamp=1570199395, text=Message from toliz with +new message: from=8997, to=8877, timestamp=1570199437, text=The ships hung in the sk diff --git a/measurements/4_10/output2.txt b/measurements/4_10/output2.txt new file mode 100644 index 0000000..090d831 --- /dev/null +++ b/measurements/4_10/output2.txt @@ -0,0 +1,18 @@ +new message: from=8997, to=8844, timestamp=1570200083, text=The ships hung in the sk +new message: from=8997, to=8941, timestamp=1570200149, text=The ships hung in the sk +dev=8941, message: from=8941, to=6969, timestamp=1570200180, text=kotsarelos#0 +dev=8844, message: from=8844, to=9001, timestamp=1570200146, text=I am message #0 of GKyri +new message: from=8997, to=8844, timestamp=1570200215, text=The ships hung in the sk +new message: from=8997, to=8765, timestamp=1570200281, text=The ships hung in the sk +dev=8861, message: from=8861, to=8997, timestamp=1570200258, text=This is a random message +dev=8941, message: from=8941, to=8844, timestamp=1570200297, text=kotsarelos#1 +dev=8844, message: from=8844, to=8261, timestamp=1570200272, text=I am message #1 of GKyri +new message: from=8997, to=8877, timestamp=1570200346, text=The ships hung in the sk +new message: from=8997, to=8844, timestamp=1570200413, text=The ships hung in the sk +dev=8941, message: from=8844, to=8941, timestamp=1570200398, text=I am message #2 of GKyri +dev=8880, message: from=8880, to=8861, timestamp=1570200458, text=Message from toliz with +dev=8880, message: from=8880, to=8261, timestamp=1570200459, text=Message from toliz with +dev=8880, message: from=8880, to=8844, timestamp=1570200460, text=Message from toliz with +new message: from=8997, to=8000, timestamp=1570200478, text=The ships hung in the sk +dev=8861, message: from=8861, to=8997, timestamp=1570200469, text=This is a random message +dev=8941, message: from=8941, to=8844, timestamp=1570200473, text=kotsarelos#2 diff --git a/measurements/4_10/statistics.txt b/measurements/4_10/statistics.txt new file mode 100644 index 0000000..d581c9e --- /dev/null +++ b/measurements/4_10/statistics.txt @@ -0,0 +1,20 @@ + +Statistics + total messages: 483 + duplicate messages: 277 + messages for me: 122 + messages by me: 43 + In messages direct for me: 33 + Out direct messages: 35 + Average message size: 28.6562 + Average time to me: 67.4166 + Device 7700 found on 0, last: 0 + Device 8261 found on 1570210285, last: 1570211945 + Device 8765 found on 0, last: 0 + Device 8844 found on 1570209288, last: 1570217684 + Device 8880 found on 1570209288, last: 1570216562 + Device 8861 found on 1570209288, last: 1570216904 + Device 8877 found on 0, last: 0 + Device 8941 found on 1570209289, last: 1570217461 + Device 8934 found on 0, last: 0 + Device 8997 found on 0, last: 0 diff --git a/measurements/4_10/statistics1.txt b/measurements/4_10/statistics1.txt new file mode 100644 index 0000000..e41624f --- /dev/null +++ b/measurements/4_10/statistics1.txt @@ -0,0 +1,20 @@ + +Statistics + total messages: 345 + duplicate messages: 91 + messages for me: 59 + messages by me: 53 + In messages direct for me: 26 + Out direct messages: 184 + Average message size: 24.0445 + Average time to me: 0 + Device 7700 found on 0, last: 0 + Device 8000 found on 0, last: 0 + Device 8765 found on 0, last: 0 + Device 8844 found on 1570198385, last: 1570199359 + Device 8880 found on 1570198385, last: 1570199359 + Device 8861 found on 1570198385, last: 1570199359 + Device 8877 found on 0, last: 0 + Device 8941 found on 1570198386, last: 1570199360 + Device 8934 found on 0, last: 0 + Device 8997 found on 0, last: 0 diff --git a/measurements/4_10/statistics2_.txt b/measurements/4_10/statistics2_.txt new file mode 100644 index 0000000..90bed75 --- /dev/null +++ b/measurements/4_10/statistics2_.txt @@ -0,0 +1,20 @@ + +Statistics + total messages: 23 + duplicate messages: 7 + messages for me: 3 + messages by me: 7 + In messages direct for me: 1 + Out direct messages: 4 + Average message size: 35.6208 + Average time to me: 33.0286 + Device 7700 found on 0, last: 0 + Device 8000 found on 0, last: 0 + Device 8765 found on 0, last: 0 + Device 8844 found on 1570200086, last: 1570200481 + Device 8880 found on 1570200086, last: 1570200482 + Device 8861 found on 1570200086, last: 1570200482 + Device 8877 found on 0, last: 0 + Device 8941 found on 1570200087, last: 1570200483 + Device 8934 found on 0, last: 0 + Device 8997 found on 0, last: 0 diff --git a/measurements/check.sh b/measurements/check.sh new file mode 100755 index 0000000..9659935 --- /dev/null +++ b/measurements/check.sh @@ -0,0 +1,10 @@ +#! /bin/bash + +for AEM in 7700 8261 8765 8844 8880 8861 8877 8941 8934 8997; do + echo I have send $(grep -e "Out dev=$AEM" output.txt| wc -l) messages to $AEM + echo I have received $(grep -e "In dev=$AEM" output.txt| wc -l) messages from $AEM + + # bad!! Pi0 + echo I have echo-back $(grep -e "Out dev=$AEM, message: from=$AEM" output.txt| wc -l) messages to $AEM +done + diff --git a/src/client.c b/src/client.c index 5614756..bdb623e 100644 --- a/src/client.c +++ b/src/client.c @@ -1,5 +1,6 @@ /*! * \file client.c + * This file contains all the client and device search functionalities. * * \author Christos Choutouridis AEM:8997 */ @@ -14,9 +15,19 @@ #include #include "client.h" +/*! + * Transmit buffer + */ +static char_t tx_buffer [MSG_TEXT_SIZE]; -char_t tx_buffer [MSG_TEXT_SIZE]; - +/*! + * Ping functionality. We use system and pass a test command in order to + * find out if a particular device is on range. + * @param dev The device to ping + * @return The status of the operation + * @arg true The device was on range and replyed to our ping + * @arg false The device wasn't on range + */ static bool_t ping (devAEM_t dev) { char_t cmd[72]; devIP_t ip = AEM2ip (dev); @@ -29,6 +40,10 @@ static bool_t ping (devAEM_t dev) { return (system(cmd) == 0) ? true:false; } +/*! + * Search for devices on range and mark the time of first and last sight + * @return The number of devices on range + */ static size_t seeker (void) { size_t cnt =0; // count devices on range log_debug ("Debug: Pinging devices...\n"); @@ -40,9 +55,10 @@ static size_t seeker (void) { if (ping (devList[i].dev)) { // Noc noc.... devList[i].onRange = true; // Who's there? ++cnt; // No one, bye bye! + // Mark the time for first and last time we saw this device if (!devList[i].begin) - devList[i].begin = time(NULL); - devList[i].end = time(NULL); + devList[i].begin = time(NULL); // first time only + devList[i].end = time(NULL); // every time log_debug ("Debug: Device %u found\n", devList[i].dev); } else @@ -52,6 +68,19 @@ static size_t seeker (void) { return cnt; } +/*! + * @brief + * Send message functionality + * TCP socket communication for sending a message to device. We use non-blocking + * connect/select in order to be able to timeout from select. We also use send with + * timeout. + * + * @param dev The device to send the message + * @param msg Pointer to message to send + * @return The status of the operation + * @note + * We treat all error of this function as "non-fatal". + */ static bool_t sendMsg (devAEM_t dev, cMsg_t* msg) { int sock; sockaddr_in_t srvAddr; @@ -140,7 +169,7 @@ static bool_t sendMsg (devAEM_t dev, cMsg_t* msg) { break; } log_debug ("Debug: Setting send timeout succeed\n"); - size_t len = cMsg_cat (msg, tx_buffer); + size_t len = cMsg_serialize (msg, tx_buffer); if (send (sock, tx_buffer, len, MSG_CONFIRM) == -1) { ret = false; log_debug ("Debug: Sending failed\n"); @@ -154,10 +183,20 @@ static bool_t sendMsg (devAEM_t dev, cMsg_t* msg) { return ret; } -static status_t client (void) { +/*! + * @brief + * Client functionality + * + * Creates a message in a random interval, seeks for devices on range + * and loop in entire msgList in order to send all messages + * @note + * This function never returns + */ +static void client (void) { msg_t msg; // new message buffer while (true) { - sleep (settings.msgInterval); // Idle until the time comes + // Idle until the time comes + sleep (settings.msgInterval + (rand()%settings.msgRand)); memset ((void*)&msg, 0, sizeof (msg)); // create a new message cMsg_make (&msg.cMsg); msg.sender = settings.me; @@ -167,16 +206,16 @@ static status_t client (void) { msgList_acquire (); // try to lock resources mIter_t at = msgList_add (&msgList, &msg); // Add message to msgList + msgList_release (); log_debug ("Debug: Message added to msgList at %d\n", at); - if (!seeker ()) { // If we are alone skip the rest - msgList_release (); // but unlock resources first + if (!seeker ()) // If we are alone skip the rest continue; - } + log_debug ("Debug: Devices found on range\n"); + msgList_acquire (); mIter_t it = msgList_begin (&msgList); // get a message iterator - // begin with old messages first // for each message -> for each recipient for (size_t i=0 ; i */ @@ -14,20 +14,48 @@ #include "core.h" -pthread_mutex_t lock_msgList; -pthread_mutex_t lock_stderr; -pthread_mutex_t lock_stdout; -pthread_mutex_t lock_stats; +//! Global data +//! @{ +msgList_t msgList; //!< The message list for our application. +//! @} + +/* + * Local data types + */ +static pthread_mutex_t lock_msgList; //!< mutex for msgList locking +static pthread_mutex_t lock_stderr; //!< mutex for stderr locking +static pthread_mutex_t lock_stdout; //!< mutex for stderr locking +static pthread_mutex_t lock_stats; //!< mutex for stats locking //! Helper API //! @{ +//! Macro to create a in_addr_t #define _ADHOC_SUBNET(A, B, C, D) (((A)<<24) | ((B)<<16) | ((C)<<8) | (D)) -devAEM_t addr2devAEM (uint32_t in_addr) { +/*! + * in_addr_t to devAEM_t conversion utility function + * @param in_addr Internet address (host byte order) + * @return devAEM_t representation of the address + * @example + * @code{.c} + * devAEM_t dev = addr2devAEM (ntohl(clntAddr.sin_addr.s_addr)); + * @endcode + */ +devAEM_t addr2devAEM (in_addr_t in_addr) { return (in_addr & 0x000000FF) + ((in_addr >> 8) & 0x000000FF) * 100; } +/*! + * devAEM_t to in_addr_t conversion utility function + * @param dev devAEM_t address + * @return Internet address (host byte order) + * @example + * @code{.c} + * sockaddr_in_t srvAddr; + * srvAddr.sin_addr.s_addr = htonl (devAEM2addr (dev)); + * @endcode + */ in_addr_t devAEM2addr (devAEM_t dev) { uint32_t add = _ADHOC_SUBNET (ADHOC_NET_A, ADHOC_NET_B, ADHOC_NET_C, ADHOC_NET_D); add |= (dev % 100) & 0x000000FF; @@ -35,36 +63,48 @@ in_addr_t devAEM2addr (devAEM_t dev) { return add; } +/*! + * DevIP_t to devAEM_t conversion utility function + * @param ip pointer to devIP_t type address + * @return devAEM_t representation of the address + * @note + * We discard the first 2 fields + */ devAEM_t ip2AEM (devIP_t* ip) { return ip->C*100 + ip->D; } +/*! + * devAEM_t to DevIP_t conversion utility function + * @param dev devAEM_t representation of the address + * @return devIP_t type address + */ devIP_t AEM2ip (devAEM_t dev) { devIP_t ip = { .A =ADHOC_NET_A, .B=ADHOC_NET_B, .C=dev/100, .D=dev%100 }; return ip; } - -devIP_t addr2ip (in_addr_t in_addr) { - devIP_t ip = { - .A = ADHOC_NET_A, - .B = ADHOC_NET_B, - .C = (in_addr >> 8) & 0x000000FF, - .D = in_addr & 0x000000FF - }; - return ip; -} //! @} +/* + * Log related local data + */ +static char_t* _frm_msg_in = "In from dev=%d, message: from=%d, to=%d, timestamp=%lld, text=%s\n"; +static char_t* _frm_msg_out = "Out to dev=%d, message: from=%d, to=%d, timestamp=%lld, text=%s\n"; +static char_t* _frm_msg_new = "New message: from=%d, to=%d, timestamp=%lld, text=%s\n"; + //! log API //! @{ -static char_t* _frm_msg_io = "dev=%d, message: from=%d, to=%d, timestamp=%lld, text=%s\n"; -static char_t* _frm_msg_new = "new message: from=%d, to=%d, timestamp=%lld, text=%s\n"; #define _HEAD_SIZE 25 +/*! + * Initialize log functionality + * @return The status of the operation + */ status_t log_init (void) { + // Try to initialize pthreads for logging if (pthread_mutex_init(&lock_stderr, NULL) != 0) { fprintf (stderr, "Error %s: mutex init has failed\n", __FUNCTION__ ); return MSG_ERROR; @@ -76,41 +116,74 @@ status_t log_init (void) { return MSG_OK; } -void log_msg_io (msg_t* msg) { +/*! + * Logs incoming messages + * @param msg Pointer to msg to log + * @note + * This function depends on \sa settings.outLevel + */ +void log_msg_in (msg_t* msg) { if (settings.outLevel >= OUTLEVEL_1) { - char_t head[_HEAD_SIZE]; - memcpy (head, msg->cMsg.text, (_HEAD_SIZE-1)); - head[_HEAD_SIZE-1] = 0; - pthread_mutex_lock(&lock_stdout); - fprintf (stdout, _frm_msg_io, + pthread_mutex_lock(&lock_stdout); // lock stdout + fprintf (stdout, _frm_msg_in, // print and flush msg->sender, - cMsg_getFrom (&msg->cMsg), - cMsg_getTo (&msg->cMsg), - cMsg_getTs (&msg->cMsg), - head + msg->cMsg.from, + msg->cMsg.to, + msg->cMsg.ts, + msg->cMsg.text ); fflush(stdout); - pthread_mutex_unlock(&lock_stdout); + pthread_mutex_unlock(&lock_stdout); // unlock stdout } } +/*! + * Logs outgoing messages + * @param msg Pointer to msg to log + * @param dev device that accepts the message + * @note + * This function depends on \sa settings.outLevel + */ +void log_msg_out (msg_t* msg, devAEM_t dev) { + if (settings.outLevel >= OUTLEVEL_1) { + pthread_mutex_lock(&lock_stdout); // lock stdout + fprintf (stdout, _frm_msg_out, // print and flush + dev, + msg->cMsg.from, + msg->cMsg.to, + msg->cMsg.ts, + msg->cMsg.text + ); + fflush(stdout); + pthread_mutex_unlock(&lock_stdout); // unlock stdout + } +} + +/*! + * Logs new messages + * @param msg Pointer to msg to log + * @note + * This function depends on \sa settings.outLevel + */ void log_msg_new (msg_t* msg) { if (settings.outLevel >= OUTLEVEL_1) { - char_t head[_HEAD_SIZE]; - memcpy (head, msg->cMsg.text, (_HEAD_SIZE-1)); - head[_HEAD_SIZE-1] = 0; - pthread_mutex_lock(&lock_stdout); - fprintf (stdout, _frm_msg_new, - cMsg_getFrom (&msg->cMsg), - cMsg_getTo (&msg->cMsg), - cMsg_getTs (&msg->cMsg), - head + pthread_mutex_lock(&lock_stdout); // lock stdout + fprintf (stdout, _frm_msg_new, // print and flush + msg->cMsg.from, + msg->cMsg.to, + msg->cMsg.ts, + msg->cMsg.text ); fflush(stdout); - pthread_mutex_unlock(&lock_stdout); + pthread_mutex_unlock(&lock_stdout); // unlock stdout } } +/*! + * Debug message log to stdout + * Variadic formating print + * @param fmt Pointer to printf like format string + */ void log_debug (const char *fmt, ...) { if (settings.outLevel >= OUTLEVEL_2) { va_list ap; @@ -123,6 +196,11 @@ void log_debug (const char *fmt, ...) { } } +/*! + * Debug error message log to stderr + * Variadic formating print + * @param fmt Pointer to printf like format string + */ void log_error (const char *fmt, ...) { va_list ap; va_start(ap, fmt); @@ -133,7 +211,6 @@ void log_error (const char *fmt, ...) { va_end(ap); } - //! @} //! cMsg_t API @@ -157,7 +234,14 @@ void cMsg_make (cMsg_t* msg) { sprintf (msg->text, "%s #%d", MESSAGE_BODY, msgID++); } -size_t cMsg_cat (cMsg_t* msg, char_t* buffer) { +/*! + * Message concatenation + * This function synthesize the ascii message for transmission + * @param msg Pointer to message to serialize + * @param buffer Pointer to output buffer + * @return The size of the resulting message + */ +size_t cMsg_serialize (cMsg_t* msg, char_t* buffer) { return sprintf (buffer, "%d_%d_%lld_%s", msg->from, msg->to, @@ -166,7 +250,17 @@ size_t cMsg_cat (cMsg_t* msg, char_t* buffer) { ); } -char_t* _strtok (char_t* str, char_t c, size_t max) { +/*! + * Custom strtok functionality + * @param str Pointer to string to parse + * @param max The size of string + * @param c Single delimiter character (non compatible with strtok()) + * @return Pointer to token (non compatible with strtok()) + * @note + * This function alters the given string by adding null termination in the places + * of delimiters + */ +char_t* _strtok (char_t* str, size_t max, char_t c) { static char_t* last = NULL; char_t* ret = str; @@ -206,7 +300,7 @@ status_t cMsg_parse (cMsg_t* cMsg, char_t* rawMsg, size_t size) { bool_t done = true; for (size_t i =0; i < 3; ++i) { - tok[i] = _strtok (rest, MSG_DELIMITER, size); + tok[i] = _strtok (rest, size, MSG_DELIMITER); if (tok[i] == NULL) { done = false; @@ -260,20 +354,18 @@ bool_t cMsg_equal (cMsg_t* m1, cMsg_t* m2) { * mgs_t API */ //! @{ + +/*! + * message initialization + * @param msg + */ void msg_init (msg_t* msg) { - memset ((void*)msg, 0, sizeof(msg)); + memset ((void*)msg, 0, sizeof(msg_t)); // init to 0 } //! @} - -/*! - * Create a message list for our application. - */ -msgList_t msgList; - - //! msgList API //! @{ @@ -287,6 +379,11 @@ msgList_t msgList; if (test < value) apply = value; \ while (0) +/*! + * Returns an iterator for \sa devList AND \sa msg_t.recipients + * @param dev The device to search + * @return The iterator, namely the index to devList array in which is the \p dev + */ dIter_t devList_getIter (devAEM_t dev) { for (dIter_t i =0 ; ifirst; } +/*! + * @param this Pointer to msgList to use + * @return An iterator to the last inserted message of \sa MSG_LIST_SIZE + * of msgList.m[] + */ mIter_t msgList_last (msgList_t* this) { return this->last; } +/*! + * @param this Pointer to msgList to use + * @return The current used slots of msgList + * @note + * As the msgList is a ring buffer we can not have a sensible end() iterator. + * end() will eventually merge with begin() when the size reaches \sa MSG_LIST_SIZE + * For that reason in all of our loops through msgList we shall take a begin() + * iterator and loop using size as sentinel + * @example + * @code{.c} + * mIter_t it = msgList_begin (&msgList); // get a message iterator + * size_t size= msgList_size(&msgList); // get current msgList size + * for (size_t i=0 ; isize; } @@ -392,7 +533,9 @@ mIter_t msgList_add (msgList_t* this, msg_t* msg) { } +//! Acquires msgList resources void msgList_acquire () { pthread_mutex_lock (&lock_msgList); } +//! releases msgList resources void msgList_release () { pthread_mutex_unlock (&lock_msgList); } //! @} @@ -400,6 +543,11 @@ void msgList_release () { pthread_mutex_unlock (&lock_msgList); } //! Statistics API //! @{ +/*! + * Initialize statistics + * @param s Pointer to \sa stat_t struct to initialize + * @return The status of the operation + */ status_t stats_init (stats_t* s) { memset ((void*)s, 0, sizeof (stats_t)); if (pthread_mutex_init(&lock_stats, NULL) != 0) { @@ -409,6 +557,10 @@ status_t stats_init (stats_t* s) { return MSG_OK; } +/*! + * Update statistics for newly created messages + * @param msg Pointer to msg + */ void statsUpdateCreate (msg_t* msg) { pthread_mutex_lock (&lock_stats); @@ -418,6 +570,7 @@ void statsUpdateCreate (msg_t* msg) { // average message size int32_t saved = stats.totalMsg - stats.duplicateMsg; if ((saved-1) > 0) { + // Append to average int32_t l = strlen(msg->cMsg.text); stats.avMsgSize += l / (fpdata_t)(saved -1); stats.avMsgSize *= (fpdata_t)(saved-1)/saved; @@ -425,6 +578,11 @@ void statsUpdateCreate (msg_t* msg) { pthread_mutex_unlock (&lock_stats); } +/*! + * Update statistics for incoming message + * @param msg Pointer to incoming message + * @param dup Flag to indicate if the message was duplicate + */ void statsUpdateIn (msg_t* msg, bool_t dup) { pthread_mutex_lock (&lock_stats); @@ -437,11 +595,13 @@ void statsUpdateIn (msg_t* msg, bool_t dup) { // averages int32_t saved = stats.totalMsg - stats.duplicateMsg; if ((saved-1) > 0) { + // Append to message size average int32_t l = strlen(msg->cMsg.text); stats.avMsgSize += l / (fpdata_t)(saved -1); stats.avMsgSize *= (fpdata_t)(saved-1)/saved; if (settings.trackTime) { + // append to time to me average tstamp_t dt = (tstamp_t)time(NULL) - msg->cMsg.ts; if (dt < 0) dt = 0; @@ -452,27 +612,37 @@ void statsUpdateIn (msg_t* msg, bool_t dup) { pthread_mutex_unlock (&lock_stats); } +/*! + * Update statistics for outgoing message + * @param msg Pointer to message + * @param dev The recipient device + */ void statsUpdateOut (msg_t* msg, devAEM_t dev) { pthread_mutex_lock (&lock_stats); stats.outDirectMsg += (msg->cMsg.to == dev) ? 1:0; pthread_mutex_unlock (&lock_stats); } +/*! + * Statistics print functionality + * @param stats Pointer to stats to print + * @return The status of the operation + */ status_t statsPrint (stats_t* stats) { FILE* fp = fopen ("statistics.txt", "w"); if (fp == NULL) { fclose (fp); return MSG_ERROR; } - fprintf (fp, "\nStatistics\n"); - fprintf (fp, " total messages: %d\n", stats->totalMsg); - fprintf (fp, " duplicate messages: %d\n", stats->duplicateMsg); - fprintf (fp, " messages for me: %d\n", stats->forMeMsg); - fprintf (fp, " messages by me: %d\n",stats->myMsg); - fprintf (fp, " In messages direct for me: %d\n", stats->inDirectMsg); - fprintf (fp, " Out direct messages: %d\n", stats->outDirectMsg); - fprintf (fp, " Average message size: %g\n", stats->avMsgSize); - fprintf (fp, " Average time to me: %g\n", stats->avTimeToMe); + fprintf (fp, "\n Statistics\n============\n"); + fprintf (fp, "Total messages: %d\n", stats->totalMsg); + fprintf (fp, "Duplicate messages: %d\n", stats->duplicateMsg); + fprintf (fp, "Messages for me: %d\n", stats->forMeMsg); + fprintf (fp, "Messages by me: %d\n",stats->myMsg); + fprintf (fp, "In messages direct for me: %d\n", stats->inDirectMsg); + fprintf (fp, "Out direct messages: %d\n", stats->outDirectMsg); + fprintf (fp, "Average message size: %g\n", stats->avMsgSize); + fprintf (fp, "Average time to me: %g\n", stats->avTimeToMe); for (size_t i =0 ; i */ -#ifndef __core__ -#define __core__ +#ifndef __core_h__ +#define __core_h__ #include @@ -13,14 +13,13 @@ extern msgList_t msgList; -devAEM_t addr2devAEM (uint32_t in_addr); +devAEM_t addr2devAEM (in_addr_t in_addr); in_addr_t devAEM2addr (devAEM_t dev); devAEM_t ip2AEM (devIP_t* ip); devIP_t AEM2ip (devAEM_t dev); -devIP_t addr2ip (in_addr_t in_addr); void cMsg_make (cMsg_t* msg); -size_t cMsg_cat (cMsg_t* msg, char_t* buffer); +size_t cMsg_serialize (cMsg_t* msg, char_t* buffer); status_t cMsg_parse (cMsg_t* cMsg, char_t* rawMsg, size_t size); uint32_t cMsg_getFrom (cMsg_t* cMsg); uint32_t cMsg_getTo (cMsg_t* cMsg); @@ -38,25 +37,23 @@ status_t msgList_init (msgList_t* msgList); mIter_t msgList_begin (msgList_t* this); mIter_t msgList_last (msgList_t* this); size_t msgList_size (msgList_t* this); - mIter_t msgList_find (msgList_t* this, msg_t* msg); mIter_t msgList_add (msgList_t* this, msg_t* msg); - void msgList_acquire (); void msgList_release (); status_t stats_init (stats_t* s); -void statsUpdateCreate (msg_t* msg); -void statsUpdateIn (msg_t* msg, bool_t dup); -void statsUpdateOut (msg_t* msg, devAEM_t dev); +void statsUpdateCreate (msg_t* msg); +void statsUpdateIn (msg_t* msg, bool_t dup); +void statsUpdateOut (msg_t* msg, devAEM_t dev); status_t statsPrint (stats_t* stats); status_t log_init(void); - -void log_msg_io (msg_t* msg); +void log_msg_in (msg_t* msg); +void log_msg_out (msg_t* msg, devAEM_t dev); void log_msg_new (msg_t* msg); void log_debug (const char *fmt, ...); void log_error (const char *fmt, ...); -#endif /* __core__ */ +#endif /* __core_h__ */ diff --git a/src/listener.c b/src/listener.c index 0bc0d2e..edee376 100755 --- a/src/listener.c +++ b/src/listener.c @@ -35,15 +35,18 @@ static void listen_handler (devAEM_t dev, char_t* buffer, size_t size) { if (myCopy == -1) { // We don't have a copy, accept and store it msgList_add (&msgList, &msg); + msgList_release (); statsUpdateIn (&msg, false); // message process - log_msg_io (&msg); // log + log_msg_in (&msg); // log } else { // We have a copy + msgList_release (); statsUpdateIn (&msg, true); // message process log_debug("Debug: Duplicate message from: %d\n", msg.sender); } // Processing... + msgList_acquire (); // Do not echo message to sender, he already has it msgList.m[myCopy].recipients[devList_getIter (dev)] = true; // don't push back message to creator, he already has it diff --git a/src/main.c b/src/main.c index ae87bd8..fc13a2e 100644 --- a/src/main.c +++ b/src/main.c @@ -1,3 +1,10 @@ +/*! + * \file main.c + * This is the main file of the RTES final task + * + * \author Christos Choutouridis AEM:8997 + */ + #include #include #include @@ -40,13 +47,6 @@ const struct option long_opt[] = { {NULL, 0, NULL, 0} }; -//// Interrupt handler -//void intHandler(int dummy) { -// (void)dummy; -// statsPrint (&stats); -// exit (0); -//} - /*! * \brief * Parse input argument and fill the kcli_input_t struct @@ -92,12 +92,12 @@ int parse_args (settings_t *s, int argc, char const *argv[]) { int main(int argc, char const *argv[]) { parse_args (&settings, argc, argv); + + // Initialize all subsystems log_init (); stats_init (&stats); msgList_init (&msgList); -// if (signal(SIGTERM, intHandler) == SIG_ERR) //catching interrupt -// log_error("Error: Can not catch SIGINT\n"); // Create threads pthread_t ptL, ptC; pthread_create (&ptL, NULL, pthListener, NULL); diff --git a/src/messenger.c b/src/messenger.c deleted file mode 100755 index 8238a0c..0000000 --- a/src/messenger.c +++ /dev/null @@ -1,806 +0,0 @@ -#define DEBUG -#define FU08 "%hhu" -#define FU16 "%hu" -#define FU32 "%lu" -#define FU64 "%llu" -#define FSTR "%s" - -#include -#include -#include - -#include -#include -#include -#include - - -//--Tools Module -#include -uint64_t TIME_u64Current(void) { - return time(NULL); -} -uint16_t RAND_u16GetNumber(uint16_t u16Min, uint16_t u16Max) { - static uint8_t i = 0; - if (i == 0) { - srand(time(NULL)); - i++; - } - return rand() % (u16Max + 1 - u16Min) + u16Min; -} - - -//--Log Module -#include -sem_t semLog; -void LOG_vSetup(void) { - sem_init(&semLog, 0, 1); -} -void LOG_vPrintf(const char* format, ...) { - sem_wait(&semLog); - - va_list args; - va_start(args, format); - -#ifdef DEBUG - printf(FU64":", TIME_u64Current()); - vprintf(format, args); -#endif - - FILE* fp; - fp = fopen("/tmp/log.txt", "a"); - if (fp != NULL) { - fprintf(fp, FU64":", TIME_u64Current()); - vfprintf(fp, format, args); - fclose(fp); - } - - va_end(args); - sem_post(&semLog); -} - - -//--File Module -#define FILE_EOF 0xFF -int8_t FILE_i08Compare(char* pchPath1, char* pchPath2) { - FILE* file1 = fopen(pchPath1, "r"); - FILE* file2 = fopen(pchPath2, "r"); - - if (file1 == NULL) { - if (file2 != NULL) - fclose(file2); - return 1; - } - - if (file2 == NULL) { - fclose(file1); - return 2; - } - - char ch1, ch2; - do { - ch1 = fgetc(file1); - ch2 = fgetc(file2); - - if (ch1 != ch2) { - fclose(file1); - fclose(file2); - return 0; - } - } while (ch1 != FILE_EOF && ch2 != FILE_EOF); - - if (ch1 == FILE_EOF && ch2 == FILE_EOF) { - fclose(file1); - fclose(file2); - return 3; - } - else { - fclose(file1); - fclose(file2); - return 0; - } -} - - -//--WiFi Module -#define NETWORK_TYPE "wlan0" -#include -#include -#define WIFI_BUFFER 2000 -#include -struct ParserArgs { - int sock; - struct sockaddr_in client_address; - socklen_t client_address_len; - bool (*bParse)(uint8_t* pu08Address, char* pchBuffer); -}; -void WiFi_vParser(void* ptr) { - struct ParserArgs temp; - memcpy(&temp, ptr, sizeof(struct ParserArgs)); - - char pchRemoteAddress[INET_ADDRSTRLEN]; - inet_ntop(AF_INET, &(temp.client_address.sin_addr), pchRemoteAddress, INET_ADDRSTRLEN); - //uint16_t pu16RemotePort = temp.client_address.sin_port; - - char pchBuffer[WIFI_BUFFER]; - char* pchTemp = (char*)pchBuffer; - int16_t i16New = 0; - uint16_t u16Length = 0; - uint16_t u16Remaining = WIFI_BUFFER; - while ((i16New = recv(temp.sock, pchTemp, u16Remaining, 0)) > 0) { - pchTemp += i16New; - u16Remaining -= i16New; - u16Length += i16New; - pchTemp[0] = '\0'; - } - - uint8_t pu08Levels[4]; - sscanf(pchRemoteAddress, FU08"."FU08"."FU08"."FU08, &pu08Levels[0], &pu08Levels[1], &pu08Levels[2], &pu08Levels[3]); - temp.bParse(pu08Levels, pchBuffer); - - close(temp.sock); -} -bool WiFi_bListener(int32_t i32ServerPort, bool (*bParse)(uint8_t* pu08Address, char* pchBuffer)) { - struct sockaddr_in server_address; - memset(&server_address, 0, sizeof(server_address)); - server_address.sin_family = AF_INET; - - server_address.sin_port = htons(i32ServerPort); - server_address.sin_addr.s_addr = htonl(INADDR_ANY); - - int listen_sock; - if ((listen_sock = socket(PF_INET, SOCK_STREAM, 0)) == -1) - return false; - - if ((bind(listen_sock, (struct sockaddr *)&server_address, sizeof(server_address))) == -1) { - close(listen_sock); - return false; - } - - if (listen(listen_sock, WIFI_BUFFER) == -1) { - close(listen_sock); - return false; - } - - while (true) { - LOG_vPrintf("WiFiListener-New\n"); - - struct ParserArgs client; - client.client_address_len = sizeof(client.client_address); - client.bParse = bParse; - - LOG_vPrintf("WiFiListener-Start\n"); - if ((client.sock = accept(listen_sock, (struct sockaddr *)&client.client_address, &client.client_address_len)) == -1) { - return false; - } - WiFi_vParser(&client); - LOG_vPrintf("WiFiListener-Stop\n"); - } - - close(listen_sock); - return true; -} -bool WiFi_bSend(char* pchServerAddress, int32_t i32ServerPort, char* pchServerText) { - LOG_vPrintf("WiFi-Send-Sock\n"); - int sock; - if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) { - LOG_vPrintf("WiFi-Send-Fail\n"); - return false; - } - - LOG_vPrintf("WiFi-Send-Init\n"); - struct sockaddr_in server_address; - memset(&server_address, 0, sizeof(server_address)); - server_address.sin_family = AF_INET; - server_address.sin_addr.s_addr = inet_addr(pchServerAddress); - server_address.sin_port = htons(i32ServerPort); - - LOG_vPrintf("WiFi-Send-Connect\n"); - if (connect(sock, (struct sockaddr*)&server_address, sizeof(server_address)) == -1) { - LOG_vPrintf("WiFi-Send-Fail\n"); - close(sock); - return false; - } - - LOG_vPrintf("WiFi-Send-Send\n"); - if (send(sock, pchServerText, strlen(pchServerText), MSG_CONFIRM) == -1) { - LOG_vPrintf("WiFi-Send-NoConfirmation\n"); - close(sock); - return false; - } - - LOG_vPrintf("WiFi-Send-Close\n"); - close(sock); - return true; -} - - -//--Messages Module -#define PAYLOAD_SIZE 256 -#define PAYLOAD_DELIMITER '_' -#define MESSAGES_SIZE 2000 -typedef struct tMessage { - uint32_t u32Sender; - uint32_t u32Receiver; - uint64_t u64Timestamp; - char pchMessage[PAYLOAD_SIZE]; - bool bDone; - uint32_t* pu32Sent; - uint32_t u32Sent; -} sMessage; -typedef struct tMessages { - uint32_t u32Owner; - sMessage psArray[MESSAGES_SIZE]; - uint16_t u16ArrayIndex; - bool bFull; - uint32_t u32CheckedMessages; - uint32_t u32LoggedMessages; - sem_t semAccess; -} sMessages; -void MSG_vSetup(sMessages* psMessages, uint32_t u32Owner) { - sem_init(&psMessages->semAccess, 0, 1); - - psMessages->u32Owner = u32Owner; - - psMessages->u16ArrayIndex = 0; - psMessages->bFull = false; - - psMessages->u32CheckedMessages = 0; - psMessages->u32LoggedMessages = 0; -} -static inline sMessage* MSG_mGet(sMessages* psMessages, uint16_t u16Index) { - //sem_wait(&semMessages); - - sMessage* temp; - if (psMessages->bFull) { - temp = &psMessages->psArray[(psMessages->u16ArrayIndex + u16Index) % MESSAGES_SIZE]; - } else - temp = &psMessages->psArray[u16Index]; - - //sem_post(&semMessages); - - return temp; -} -static inline uint16_t MSG_u16Length(sMessages* psMessages) { - //sem_wait(&semMessages); - - uint16_t temp; - if (psMessages->bFull) - temp = MESSAGES_SIZE; - else - temp = psMessages->u16ArrayIndex; - - //sem_post(&semMessages); - - return temp; -} -void MSG_vInsert(sMessages* psMessages, sMessage* psMessage, bool bSent, uint32_t u32Device) { - sem_wait(&psMessages->semAccess); - - psMessages->psArray[psMessages->u16ArrayIndex].u32Sender = psMessage->u32Sender; - psMessages->psArray[psMessages->u16ArrayIndex].u32Receiver = psMessage->u32Receiver; - psMessages->psArray[psMessages->u16ArrayIndex].u64Timestamp = psMessage->u64Timestamp; - psMessages->psArray[psMessages->u16ArrayIndex].bDone = (psMessage->u32Receiver == psMessages->u32Owner); - memcpy(psMessages->psArray[psMessages->u16ArrayIndex].pchMessage, psMessage->pchMessage, strlen(psMessage->pchMessage)); - if (bSent) { - psMessages->psArray[psMessages->u16ArrayIndex].u32Sent = 1; - psMessages->psArray[psMessages->u16ArrayIndex].pu32Sent = (uint32_t*)malloc(1 * sizeof(uint32_t)); - psMessages->psArray[psMessages->u16ArrayIndex].pu32Sent[0] = u32Device; - } - else - psMessages->psArray[psMessages->u16ArrayIndex].u32Sent = 0; - - psMessages->u16ArrayIndex = (psMessages->u16ArrayIndex + 1) % MESSAGES_SIZE; - if (psMessages->u16ArrayIndex == 0) - psMessages->bFull = true; - - psMessages->u32LoggedMessages++; - sem_post(&psMessages->semAccess); -} -bool MSG_bCheck(sMessages* psMessages, sMessage* psMessage) { - sem_wait(&psMessages->semAccess); - - uint16_t u16ArrayLength = MSG_u16Length(psMessages); - - bool flag = false; - for (uint16_t i = 0; i < u16ArrayLength; i++) { - sMessage* temp = MSG_mGet(psMessages, i); - if (temp->u32Sender != psMessage->u32Sender) - continue; - if (temp->u32Receiver != psMessage->u32Receiver) - continue; - if (temp->u64Timestamp != psMessage->u64Timestamp) - continue; - if (strcmp(temp->pchMessage, psMessage->pchMessage) != 0) - continue; - flag = true; - break; - } - - psMessages->u32CheckedMessages++; - sem_post(&psMessages->semAccess); - return flag; -} -bool MSG_bParse(sMessage* psMessage, char* pchBuffer) { - char* pchArrays[4]; - bool bFlag = false; - - uint16_t i; - char* s = pchBuffer; - for (i = 0; s[i]; s[i] == PAYLOAD_DELIMITER ? i++ : *s++); - if (i != 3) - return false; - - char* pchRest = pchBuffer; - for (uint8_t i = 0; i < 3; i++) { - const char s[2] = { PAYLOAD_DELIMITER, '\0'}; - pchArrays[i] = strtok(pchRest, s); - - if (pchArrays[i] == NULL) { - bFlag = true; - break; - } else { - pchRest += strlen(pchRest) + 1; - } - } - pchArrays[3] = pchRest; - - if (!bFlag) { - psMessage->u32Sender = atoi(pchArrays[0]); - psMessage->u32Receiver = atoi(pchArrays[1]); - psMessage->u64Timestamp = atoi(pchArrays[2]); - strcpy(psMessage->pchMessage, pchArrays[3]); - } - - return (!bFlag); -} -void MSG_vExport(sMessages* psMessages) { - sem_wait(&psMessages->semAccess); - - uint16_t u16ArrayLength = MSG_u16Length(psMessages); - FILE* file = fopen("/tmp/messages.txt", "w"); - if (file == NULL) { - sem_post(&psMessages->semAccess); - return; - } - fprintf(file, "Checked:"FU32"\n", psMessages->u32CheckedMessages); - fprintf(file, "Logged:"FU32"\n", psMessages->u32LoggedMessages); - fprintf(file, "Index:"FU32"\n", psMessages->u16ArrayIndex); - fprintf(file, "index:sender_receiver_timestamp_message:sent:done\n"); - for (uint16_t i = 0; i < u16ArrayLength; i++) { - sMessage* temp = MSG_mGet(psMessages, i); - fprintf(file, FU16":"FU32"_"FU32"_"FU64"_"FSTR":"FU32":"FU08"\n", i, temp->u32Sender, temp->u32Receiver, temp->u64Timestamp, temp->pchMessage, temp->u32Sent, (temp->bDone ? 1 : 0)); - } - fclose(file); - - sem_post(&psMessages->semAccess); -} -void MSG_vSend(sMessages* psMessages, uint32_t u32Receiver, bool (*bSend)(char* pchBuffer)) { - sem_wait(&psMessages->semAccess); - - uint16_t u16Length; - if (psMessages->bFull) - u16Length = MESSAGES_SIZE; - else - u16Length = psMessages->u16ArrayIndex; - - for (uint16_t i = 0; i < u16Length; i++) { - sMessage* temp = MSG_mGet(psMessages, i); - - bool bFlag = false; - if (temp->bDone) - bFlag = true; - else { - for (uint32_t j = 0 ; j < temp->u32Sent; j++) { - if (temp->pu32Sent[j] == u32Receiver) { - bFlag = true; - break; - } - } - } - - - if (bFlag) - continue; - else { - LOG_vPrintf("Message-Send-"FU32"-Start\n", i); - char pchBuffer[5 + 5 + 3 + 10 + 256]; - sprintf(pchBuffer, FU32"_"FU32"_"FU64"_"FSTR, temp->u32Sender, temp->u32Receiver, temp->u64Timestamp, temp->pchMessage); - LOG_vPrintf("Message-Send-"FU32"-Send\n", i); - if (bSend(pchBuffer)) { - if (temp->u32Sent == 0) - temp->pu32Sent = (uint32_t*)malloc(1 * sizeof(uint32_t)); - else - temp->pu32Sent = (uint32_t*)realloc(temp->pu32Sent, (temp->u32Sent + 1) * sizeof(uint32_t)); - temp->pu32Sent[temp->u32Sent] = u32Receiver; - temp->u32Sent++; - - temp->bDone = (temp->u32Receiver == u32Receiver); - } else { - LOG_vPrintf("Message-Send-"FU32"-Error\n", i); - } - LOG_vPrintf("Message-Send-"FU32"-Stop\n", i); - } - } - - sem_post(&psMessages->semAccess); -} -sMessages sMessagesList; - - -//--Devices Module -#define DEVICES_SIZE 100 -typedef struct tDevice { - uint32_t u32Id; - bool bActive; - uint64_t u64Start; - uint64_t u64Last; -} sDevice; -typedef struct tDevices { - sDevice psArray[DEVICES_SIZE]; - uint16_t u16ArrayIndex; - bool bFull; - sem_t semAccess; -} sDevices; -void DVC_vSetup(sDevices* psDevices) { - sem_init(&psDevices->semAccess, 0, 1); - - psDevices->u16ArrayIndex = 0; - psDevices->bFull = false; -} -void DVC_vInsert(sDevices* psDevices, uint16_t u32Id) { - //sem_wait(&semDevices); - - psDevices->psArray[psDevices->u16ArrayIndex].u32Id = u32Id; - psDevices->psArray[psDevices->u16ArrayIndex].bActive = true; - psDevices->psArray[psDevices->u16ArrayIndex].u64Start = TIME_u64Current(); - psDevices->psArray[psDevices->u16ArrayIndex].u64Last = 0; - - psDevices->u16ArrayIndex = (psDevices->u16ArrayIndex + 1) % DEVICES_SIZE; - if (psDevices->u16ArrayIndex == 0) - psDevices->bFull = true; - - //sem_post(&semDevices); -} -uint16_t DVC_u16Update(sDevices* psDevices, uint32_t* pu32Id, uint16_t u16IdSize, uint32_t* pu32New) { - sem_wait(&psDevices->semAccess); - - uint16_t u16ArrayLength; - if (psDevices->bFull) - u16ArrayLength = DEVICES_SIZE; - else - u16ArrayLength = psDevices->u16ArrayIndex; - - bool pbFlag[u16IdSize]; - for (uint16_t j = 0; j < u16IdSize; j++) { - pbFlag[j] = false; - } - for (uint16_t i = 0; i < u16ArrayLength; i++) { - bool bFlag = false; - for (uint16_t j = 0; j < u16IdSize; j++) { - if (psDevices->psArray[i].u32Id == pu32Id[j]) { - bFlag = true; - pbFlag[j] = true; - break; - } - } - - if (bFlag) { - if (psDevices->psArray[i].bActive) - psDevices->psArray[i].u64Last = TIME_u64Current(); - else { - psDevices->psArray[i].bActive = true; - psDevices->psArray[i].u64Start = TIME_u64Current(); - psDevices->psArray[i].u64Last = 0; - } - } else { - psDevices->psArray[i].bActive = false; - } - } - - uint16_t u16Cnt = 0; - for (uint16_t j = 0; j < u16IdSize; j++) { - if (!pbFlag[j]) { - DVC_vInsert(psDevices, pu32Id[j]); - pu32New[u16Cnt] = pu32Id[j]; - u16Cnt++; - } - } - - sem_post(&psDevices->semAccess); - return u16Cnt; -} -void DVC_vExport(sDevices* psDevices) { - sem_wait(&psDevices->semAccess); - - uint16_t u16ArrayLength; - if (psDevices->bFull) - u16ArrayLength = DEVICES_SIZE; - else - u16ArrayLength = psDevices->u16ArrayIndex; - - FILE* file = fopen("/tmp/devices.txt", "w"); - if (file == NULL) { - sem_post(&psDevices->semAccess); - return; - } - fprintf(file, FU32"\n", psDevices->u16ArrayIndex); - fprintf(file, "index:active,id,start,stop\n"); - for (uint16_t i = 0; i < u16ArrayLength; i++) - fprintf(file, FU32":"FSTR","FU32","FU64","FU64"\n", i, psDevices->psArray[i].bActive ? "true" : "false", psDevices->psArray[i].u32Id, psDevices->psArray[i].u64Start, psDevices->psArray[i].u64Last); - fclose(file); - - sem_post(&psDevices->semAccess); -} -sDevices sDevicesList; - - -//--Timer Module -#include -#include -typedef struct tInterrupt { - bool bRunning; - uint32_t u32Ticks; - void (*vCallback)(uint32_t); -} sInterrupt; -sInterrupt sTimer; -void TMR_vHandler(int sig) { - static uint32_t i = 0; - sTimer.vCallback(i - 1); - - i++; - if (sTimer.u32Ticks > 0 && i >= sTimer.u32Ticks) { - struct itimerval sInterval = {0}; - setitimer(ITIMER_REAL, &sInterval, NULL); - sTimer.bRunning = false; - } -} -bool TMR_bSetup(suseconds_t susInterval, void (*vCallback)(uint32_t)) { - sTimer.vCallback = vCallback; - sTimer.u32Ticks = 0; - sTimer.bRunning = true; - - signal(SIGALRM, TMR_vHandler); - - struct itimerval sInterval; - sInterval.it_interval.tv_usec = susInterval % 1000000; - sInterval.it_interval.tv_sec = susInterval / 1000000; - sInterval.it_value = sInterval.it_interval; - - if (setitimer(ITIMER_REAL, &sInterval, NULL) != 0) - return false; - - return true; -} - - -//--High Level Application -#include -#include -#include -#define AEM 8844 -#define SERVER_PORT 2288 -#define INTERRUPTS -#ifdef INTERRUPTS -sem_t semSearcher; -#endif -const uint32_t pu32FriendsList[] = {7000, 7001, 7002, 7003, 8845}; -const uint8_t u08FriendsSize = 5; - -#define CREATE_PERIOD_MIN 1 //secs -#define CREATE_PERIOD_MAX 1 //secs -//#define CREATE_PERIOD_MIN 1*60 //secs -//#define CREATE_PERIOD_MAX 5*60 //secs -uint32_t u32Selector(void) { - static uint32_t count = 0; - count++; - - uint8_t index = RAND_u16GetNumber(0, u08FriendsSize - 1); - sMessage temp; - temp.u32Sender = AEM; - temp.u32Receiver = pu32FriendsList[index]; - temp.u64Timestamp = TIME_u64Current(); - sprintf(temp.pchMessage, "I am message #%d of GKyri", count); - temp.u32Sent = 0; - - LOG_vPrintf("Selector-Insert\n"); - MSG_vInsert(&sMessagesList, &temp, false, 0); - /* - LOG_vPrintf("Selector-Export\n"); - MSG_vExport(&sMessagesList); - */ - - return pu32FriendsList[index]; -} -void APP_vCallback(uint32_t u32Tick) { - static bool bRunning = false; - if (!bRunning) { - bRunning = true; - - LOG_vPrintf("Callback-Start\n"); - u32Selector(); - LOG_vPrintf("Callback-Stop\n"); - - #ifdef INTERRUPTS - sem_post(&semSearcher); - #endif - - bRunning = false; - } -} -void APP_vCreator(void) { - uint16_t u16Interval = RAND_u16GetNumber(CREATE_PERIOD_MIN, CREATE_PERIOD_MAX); - if (TMR_bSetup(500000, APP_vCallback)) { - //if (TMR_bSetup(u16Interval * 1000000, APP_vCallback)) { - while (true) - pause(); - } -} - -bool APP_bReceiveBuffer(uint8_t* pu08Address, char* pchBuffer) { - LOG_vPrintf("Receiver-Start\n"); - uint32_t u32Id = (uint32_t)pu08Address[2] * 100 + pu08Address[3]; - - sMessage temp; - if (!MSG_bParse(&temp, pchBuffer)) - return false; - temp.u32Sent = 0; - if (!MSG_bCheck(&sMessagesList, &temp)) { - LOG_vPrintf("Receiver-Insert\n"); - MSG_vInsert(&sMessagesList, &temp, true, u32Id); - /* - LOG_vPrintf("Receiver-Export\n"); - MSG_vExport(&sMessagesList); - */ - } - LOG_vPrintf("Receiver-Stop\n"); - -#ifdef INTERRUPTS - sem_post(&semSearcher); -#endif - return true; -} -void APP_vListener(void) { - WiFi_bListener(SERVER_PORT, APP_bReceiveBuffer); -} - -char pchMessageReceiver[15 + 1]; -bool APP_bSendBuffer(char* pchBuffer) { - return WiFi_bSend(pchMessageReceiver, SERVER_PORT, pchBuffer); -} -bool APP_bSender(uint32_t u32Receiver) { - sprintf(pchMessageReceiver, "10.0."FU08"."FU08, u32Receiver / 100, u32Receiver % 100); - - char pchTest[13 + 15 + 12 + 1]; - sprintf(pchTest, "ping -c1 -w1 "FSTR" > /dev/null", pchMessageReceiver); - if (system(pchTest) == 0) { - MSG_vSend(&sMessagesList, u32Receiver, APP_bSendBuffer); - return true; - } else { - return false; - } -} -#define SEARCHER_SLEEP_PERIOD 60 //secs -#define SEARCHER_SLEEP_DELAY 30 //secs -void APP_vSearcher(void) { -#ifdef INTERRUPTS - sem_init(&semSearcher, 0, 0); -#endif - - sleep(SEARCHER_SLEEP_PERIOD); - while (true) { - LOG_vPrintf("Searcher-Start\n"); - - uint16_t u16Cnt = 0; - uint32_t* pu32Id = (uint32_t*)malloc(1 * sizeof(uint32_t)); - for (uint8_t i = 0; i < u08FriendsSize; i++) { - uint32_t u32Receiver = pu32FriendsList[i]; - sprintf(pchMessageReceiver, "10.0."FU08"."FU08, u32Receiver / 100, u32Receiver % 100); - - char pchTest[13 + 15 + 12 + 1]; - sprintf(pchTest, "ping -c1 -w1 "FSTR" > /dev/null", pchMessageReceiver); - if (system(pchTest) == 0) { - pu32Id[u16Cnt] = u32Receiver; - u16Cnt++; - pu32Id = (uint32_t*)realloc(pu32Id, (u16Cnt + 1) * sizeof(uint32_t)); - } - } - - LOG_vPrintf("Searcher-Send-Start\n"); - uint32_t pu32New[u16Cnt]; - //uint16_t u16NewLength = DVC_u16Update(&sDevicesList, pu32Id, u16Cnt, pu32New); - DVC_u16Update(&sDevicesList, pu32Id, u16Cnt, pu32New); - - for (uint16_t i = 0; i < u16Cnt; i++) { - LOG_vPrintf("Searcher-Send-"FU32"-Start\n", i); - APP_bSender(pu32Id[i]); - LOG_vPrintf("Searcher-Send-"FU32"-Stop\n", i); - } - free(pu32Id); - LOG_vPrintf("Searcher-Send-Stop\n"); - - LOG_vPrintf("Searcher-Export\n"); - DVC_vExport(&sDevicesList); - MSG_vExport(&sMessagesList); - LOG_vPrintf("Searcher-Stop\n"); - -#ifdef INTERRUPTS - for (uint16_t i = 0; i < SEARCHER_SLEEP_PERIOD; i++) { - int value; - sem_getvalue(&semSearcher, &value); - if (value > 0) { - if (i > SEARCHER_SLEEP_DELAY) { - LOG_vPrintf("Searcher-Interrupt\n"); - sem_wait(&semSearcher); - break; - } - } - sleep(1); - } -#else - sleep(SLEEP_PERIOD); -#endif - } -} - -void APP_vSetup(void){ - int8_t i08Result; - - bool bFlag = false; - i08Result = FILE_i08Compare("/root/wpa_supplicant.conf", "/etc/wpa_supplicant/wpa_supplicant.conf"); - if (i08Result == 0 || i08Result == 2) { - bFlag = true; - LOG_vPrintf("Replacing 'wpa_supplicant'\n"); - system("sudo cp /root/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf"); - } - - i08Result = FILE_i08Compare("/root/interfaces", "/etc/network/interfaces"); - if (i08Result == 0 || i08Result == 2) { - bFlag = true; - LOG_vPrintf("Replacing 'interfaces'\n"); - system("sudo cp /root/interfaces /etc/network/interfaces"); - } - - i08Result = FILE_i08Compare("/root/messenger.service", "/etc/systemd/system/messenger.service"); - if (i08Result == 0 || i08Result == 2) { - bFlag = true; - LOG_vPrintf("Replacing 'messenger.service'\n"); - system("sudo cp /root/messenger.service /etc/systemd/system"); - system("systemctl enable messenger"); - } - - if (bFlag) { - LOG_vPrintf("Restarting\n"); - system("shutdown -r 0"); - exit(EXIT_SUCCESS); - } -} -void* Th1Func(void* ptr) { - APP_vListener(); - return NULL; -} -void* Th2Func(void* ptr) { - APP_vCreator(); - return NULL; -} -void* Th3Func(void* ptr) { - APP_vSearcher(); - return NULL; -} -int main( int argc, char* const* argv) { - APP_vSetup(); - LOG_vSetup(); - MSG_vSetup(&sMessagesList, AEM); - DVC_vSetup(&sDevicesList); - - pthread_t thread1, thread2, thread3; - pthread_create( &thread1, NULL, Th1Func, NULL); - pthread_create( &thread2, NULL, Th2Func, NULL); - pthread_create( &thread3, NULL, Th3Func, NULL); - - pthread_join( thread1, NULL); - pthread_join( thread2, NULL); - pthread_join( thread3, NULL); - - return EXIT_SUCCESS; -} diff --git a/src/msg_impl.h b/src/msg_impl.h index 8cae98d..c782a49 100644 --- a/src/msg_impl.h +++ b/src/msg_impl.h @@ -23,7 +23,7 @@ #define devList_init(l) l = { \ { 7700, 0, 0, 0}, \ - { 8000, 0, 0, 0}, \ + { 8261, 0, 0, 0}, \ { 8765, 0, 0, 0}, \ { 8844, 0, 0, 0}, \ { 8880, 0, 0, 0}, \ @@ -218,6 +218,7 @@ typedef struct { devAEM_t me; uint16_t port; time_t msgInterval; + time_t msgRand; outLevel_en outLevel; time_t pingTimeout; timeval_t sendTimeout; @@ -230,6 +231,7 @@ extern settings_t settings; .me = 8997, \ .port = 2288, \ .msgInterval = 60, \ + .msgRand = 240, \ .outLevel = OUTLEVEL_1, \ .pingTimeout = 1, \ .sendTimeout = {4, 0}, \