aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/graphstats.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/scripts/graphstats.py b/scripts/graphstats.py
index 64ef37e9..7600ee52 100755
--- a/scripts/graphstats.py
+++ b/scripts/graphstats.py
@@ -27,10 +27,32 @@ def parse_log(logname):
f.close()
return out
+def find_print_restarts(data):
+ last_print_time = 0.
+ print_resets = []
+ for d in data:
+ print_time = float(d.get('print_time', last_print_time))
+ if print_time < last_print_time:
+ print_resets.append(d['#sampletime'])
+ last_print_time = 0.
+ else:
+ last_print_time = print_time
+ sample_resets = {}
+ for d in data:
+ st = d['#sampletime']
+ while print_resets and st > print_resets[0]:
+ print_resets.pop(0)
+ if not print_resets:
+ break
+ if st + 2. * MAXBUFFER > print_resets[0]:
+ sample_resets[st] = 1
+ return sample_resets
+
def plot_mcu(data, maxbw, outname):
# Generate data for plot
basetime = lasttime = data[0]['#sampletime']
lastbw = float(data[0]['bytes_write']) + float(data[0]['bytes_retransmit'])
+ sample_resets = find_print_restarts(data)
times = []
bwdeltas = []
loads = []
@@ -49,7 +71,7 @@ def plot_mcu(data, maxbw, outname):
load = 0.
pt = float(d['print_time'])
hb = float(d['buffer_time'])
- if pt <= 2*MAXBUFFER or hb >= MAXBUFFER:
+ if pt <= 2. * MAXBUFFER or hb >= MAXBUFFER or st in sample_resets:
hb = 0.
else:
hb = 100. * (MAXBUFFER - hb) / MAXBUFFER
@@ -67,7 +89,7 @@ def plot_mcu(data, maxbw, outname):
ax1.set_ylabel('Usage (%)')
ax1.plot_date(times, bwdeltas, 'g', label='Bandwidth')
ax1.plot_date(times, loads, 'r', label='MCU load')
- #ax1.plot_date(times, hostbuffers, 'c', label='Host buffer')
+ ax1.plot_date(times, hostbuffers, 'c', label='Host buffer')
ax1.legend()
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
#plt.gcf().autofmt_xdate()