65 lines
1.4 KiB
Python
Executable File
65 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python
|
|
'''
|
|
Example of live plotting of pipe logging data.
|
|
This has some problems still...
|
|
'''
|
|
|
|
import sys
|
|
import Queue
|
|
from optparse import OptionParser
|
|
|
|
import Gnuplot
|
|
|
|
# Include the local pynorm in the module search path
|
|
sys.path.insert(0, "../")
|
|
from pynorm.extra.pipeparser import PipeParser
|
|
|
|
USAGE = 'usage: %s [options]' % sys.argv[0]
|
|
DEFAULT_PIPE = 'normtest'
|
|
|
|
def get_option_parser():
|
|
parser = OptionParser(usage=USAGE)
|
|
parser.set_defaults(pipe=DEFAULT_PIPE)
|
|
|
|
parser.add_option('-p', '--pipe',
|
|
help='The pipe to connect to (default %s)' % DEFAULT_PIPE)
|
|
return parser
|
|
|
|
def main(argv):
|
|
(opts, args) = get_option_parser().parse_args(argv)
|
|
|
|
if len(args) != 1:
|
|
print USAGE
|
|
return 1
|
|
|
|
pipep = PipeParser(opts.pipe)
|
|
pipep.start()
|
|
|
|
g = Gnuplot.Gnuplot()
|
|
g('set data style lines')
|
|
g.title('FEC Buffer Usage')
|
|
g.xlabel('Time (s)')
|
|
g.ylabel('FEC Usage')
|
|
|
|
ydata = []
|
|
while True:
|
|
try:
|
|
report = pipep.reports.get(False)
|
|
except Queue.Empty:
|
|
continue
|
|
try:
|
|
ydata.append(report['remote'][0]['fec_cur'])
|
|
g.plot(list(enumerate(ydata)))
|
|
except IndexError:
|
|
continue
|
|
pipep.reports.task_done()
|
|
print "Exiting..."
|
|
# g.reset()
|
|
# g.close()
|
|
# del g
|
|
|
|
return 0
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main(sys.argv))
|