summaryrefslogtreecommitdiffstats
path: root/unit_trace
diff options
context:
space:
mode:
authorGary Bressler <garybressler@nc.rr.com>2010-04-30 14:51:19 -0400
committerGary Bressler <garybressler@nc.rr.com>2010-04-30 14:51:19 -0400
commit9f9bb86ed919bcb6be32b6818ca232f071fe90f3 (patch)
tree05d97562eb53b7958d022eda02d3f6134850e0d9 /unit_trace
parentc21dea9f97dd31ad8a915469edc01f44345a469e (diff)
Added ability to specify units along with -t command-line option
Diffstat (limited to 'unit_trace')
-rw-r--r--unit_trace/viz/__init__.py4
-rw-r--r--unit_trace/viz/util.py23
-rw-r--r--unit_trace/viz/viewer.py8
3 files changed, 26 insertions, 9 deletions
diff --git a/unit_trace/viz/__init__.py b/unit_trace/viz/__init__.py
index 91093c1..118a026 100644
--- a/unit_trace/viz/__init__.py
+++ b/unit_trace/viz/__init__.py
@@ -11,8 +11,8 @@ try:
11except ImportError: 11except ImportError:
12 import sys 12 import sys
13 13
14 print 'Unit-Trace could not find pycairo and/or pygtk installed on your system. Please\n' \ 14 sys.stderr.write('Unit-Trace could not find pycairo and/or pygtk installed on your system. Please\n' \
15 + 'make sure these libraries are installed before attempting to use the visualizer.' 15 + 'make sure these libraries are installed before attempting to use the visualizer.')
16 sys.exit(1) 16 sys.exit(1)
17 17
18gobject.signal_new('set-scroll-adjustments', viewer.GraphArea, gobject.SIGNAL_RUN_FIRST, 18gobject.signal_new('set-scroll-adjustments', viewer.GraphArea, gobject.SIGNAL_RUN_FIRST,
diff --git a/unit_trace/viz/util.py b/unit_trace/viz/util.py
index 430063b..12d65f4 100644
--- a/unit_trace/viz/util.py
+++ b/unit_trace/viz/util.py
@@ -63,6 +63,29 @@ class Sec(TimeUnit):
63 if time is None: return time 63 if time is None: return time
64 return time * 1000000000.0 64 return time * 1000000000.0
65 65
66def parse_time(text):
67 # perhaps the user didn't put a space between the number and
68 # the time unit
69 for i, char in enumerate(text):
70 if char == ' ':
71 break
72 elif char.isalpha():
73 text = text[0:i] + ' ' + text[i:]
74 break
75
76 tokens = text.split()
77
78 if len(tokens) > 2 or len(tokens) == 0:
79 raise ValueError
80
81 unit = None
82 if len(tokens) == 2:
83 unit = parse_unit(tokens[1])
84 else:
85 unit = MilliSec()
86
87 return unit.native_to_nsec(float(tokens[0]))
88
66def parse_unit(expr): 89def parse_unit(expr):
67 expr = expr.strip().lower() 90 expr = expr.strip().lower()
68 91
diff --git a/unit_trace/viz/viewer.py b/unit_trace/viz/viewer.py
index bb1385c..4613c47 100644
--- a/unit_trace/viz/viewer.py
+++ b/unit_trace/viz/viewer.py
@@ -856,14 +856,8 @@ class MainWindow(gtk.Window):
856 if ret == gtk.RESPONSE_ACCEPT: 856 if ret == gtk.RESPONSE_ACCEPT:
857 err, time = None, None 857 err, time = None, None
858 try: 858 try:
859 input_tokens = self.text_input_dialog.get_input().split() 859 time = util.parse_time(self.text_input_dialog.get_input())
860 if len(input_tokens) > 2:
861 raise ValueError
862 860
863 if len(input_tokens) > 1:
864 unit = util.parse_unit(input_tokens[1])
865
866 time = unit.native_to_nsec(float(input_tokens[0]))
867 start, end = self.notebook.get_nth_page(self.notebook.last_page).get_graph_area() \ 861 start, end = self.notebook.get_nth_page(self.notebook.last_page).get_graph_area() \
868 .get_schedule().get_time_bounds() 862 .get_schedule().get_time_bounds()
869 if time < start or time > end: 863 if time < start or time > end: