xref: /aosp_15_r20/external/trace-cmd/scripts/debug/tsync_res.py (revision 58e6ee5f017f6a8912852c892d18457e4bafb554)
1*58e6ee5fSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0
2*58e6ee5fSAndroid Build Coastguard Worker#
3*58e6ee5fSAndroid Build Coastguard Worker# Copyright (C) 2019, VMware Inc, Tzvetomir Stoyanov <[email protected]>
4*58e6ee5fSAndroid Build Coastguard Worker# Copyright (C) 2019, VMware Inc, Yordan Karadzhov <[email protected]>
5*58e6ee5fSAndroid Build Coastguard Worker
6*58e6ee5fSAndroid Build Coastguard Worker
7*58e6ee5fSAndroid Build Coastguard Workerimport matplotlib.pyplot as plt
8*58e6ee5fSAndroid Build Coastguard Workerimport matplotlib.lines as mlines
9*58e6ee5fSAndroid Build Coastguard Workerimport numpy as np
10*58e6ee5fSAndroid Build Coastguard Workerimport sys
11*58e6ee5fSAndroid Build Coastguard Worker
12*58e6ee5fSAndroid Build Coastguard Workerdef newline(p1, p2):
13*58e6ee5fSAndroid Build Coastguard Worker    ax = plt.gca()
14*58e6ee5fSAndroid Build Coastguard Worker    xmin, xmax = ax.get_xbound()
15*58e6ee5fSAndroid Build Coastguard Worker
16*58e6ee5fSAndroid Build Coastguard Worker    if(p2[0] == p1[0]):
17*58e6ee5fSAndroid Build Coastguard Worker        xmin = xmax = p1[0]
18*58e6ee5fSAndroid Build Coastguard Worker        ymin, ymax = ax.get_ybound()
19*58e6ee5fSAndroid Build Coastguard Worker    else:
20*58e6ee5fSAndroid Build Coastguard Worker        ymax = p1[1]+(p2[1]-p1[1])/(p2[0]-p1[0])*(xmax-p1[0])
21*58e6ee5fSAndroid Build Coastguard Worker        ymin = p1[1]+(p2[1]-p1[1])/(p2[0]-p1[0])*(xmin-p1[0])
22*58e6ee5fSAndroid Build Coastguard Worker
23*58e6ee5fSAndroid Build Coastguard Worker    l = mlines.Line2D([xmin,xmax], [ymin,ymax], color='red')
24*58e6ee5fSAndroid Build Coastguard Worker    ax.add_line(l)
25*58e6ee5fSAndroid Build Coastguard Worker    return l
26*58e6ee5fSAndroid Build Coastguard Worker
27*58e6ee5fSAndroid Build Coastguard Workerdata = np.loadtxt(fname = sys.argv[1])
28*58e6ee5fSAndroid Build Coastguard Workerx = data[:, 0]
29*58e6ee5fSAndroid Build Coastguard Workery = data[:, 1]
30*58e6ee5fSAndroid Build Coastguard Worker
31*58e6ee5fSAndroid Build Coastguard Workerfig, ax = plt.subplots()
32*58e6ee5fSAndroid Build Coastguard Worker
33*58e6ee5fSAndroid Build Coastguard Workerax.set_xlabel('samples (t)')
34*58e6ee5fSAndroid Build Coastguard Workerax.set_ylabel('clock offset')
35*58e6ee5fSAndroid Build Coastguard Workerax.set_title("$\delta$=%i ns" % (max(y) - min(y)))
36*58e6ee5fSAndroid Build Coastguard Worker
37*58e6ee5fSAndroid Build Coastguard Workerl = mlines.Line2D(x, y)
38*58e6ee5fSAndroid Build Coastguard Workerax.add_line(l)
39*58e6ee5fSAndroid Build Coastguard Workerax.set_xlim(min(x), max(x))
40*58e6ee5fSAndroid Build Coastguard Workerax.set_ylim(min(y), max(y) )
41*58e6ee5fSAndroid Build Coastguard Worker
42*58e6ee5fSAndroid Build Coastguard Workerprint(min(y), max(y), max(y) - min(y))
43*58e6ee5fSAndroid Build Coastguard Worker
44*58e6ee5fSAndroid Build Coastguard Worker# Tweak spacing to prevent clipping of ylabel
45*58e6ee5fSAndroid Build Coastguard Workerfig.tight_layout()
46*58e6ee5fSAndroid Build Coastguard Workerplt.show()
47