From fcbcbf4ef7698920006da23ecf0a6f18fa093352 Mon Sep 17 00:00:00 2001 From: sparky8512 <76499194+sparky8512@users.noreply.github.com> Date: Mon, 11 Jan 2021 22:04:39 -0800 Subject: [PATCH] Make sure ints stay ints and floats stay floats Specific history data patterns would sometimes lead to some of the stats switching between int and float type even if they were always whole numbers. This should ensure that doesn't happen. I think this will fix #12, but will likely require deleting all the spacex.starlink.user_terminal.ping_stats data points from the database before the type conflict failure will go away. --- starlink_grpc.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/starlink_grpc.py b/starlink_grpc.py index 10ceca9..09ec8d0 100644 --- a/starlink_grpc.py +++ b/starlink_grpc.py @@ -185,13 +185,13 @@ def history_ping_stats(parse_samples, verbose=False): # index to next data sample after the newest one. offset = current % samples - tot = 0 + tot = 0.0 count_full_drop = 0 count_unsched = 0 - total_unsched_drop = 0 + total_unsched_drop = 0.0 count_full_unsched = 0 count_obstruct = 0 - total_obstruct_drop = 0 + total_obstruct_drop = 0.0 count_full_obstruct = 0 second_runs = [0] * 60 @@ -211,9 +211,10 @@ def history_ping_stats(parse_samples, verbose=False): for i in sample_range: d = history.pop_ping_drop_rate[i] - tot += d if d >= 1: - count_full_drop += d + # just in case... + d = 1 + count_full_drop += 1 run_length += 1 elif run_length > 0: if init_run_length is None: @@ -238,7 +239,8 @@ def history_ping_stats(parse_samples, verbose=False): count_obstruct += 1 total_obstruct_drop += d if d >= 1: - count_full_obstruct += d + count_full_obstruct += 1 + tot += d # If the entire sample set is one big drop run, it will be both initial # fragment (continued from prior sample range) and final one (continued