diff options
author | Gary Bressler <garybressler@nc.rr.com> | 2010-04-30 14:51:19 -0400 |
---|---|---|
committer | Gary Bressler <garybressler@nc.rr.com> | 2010-04-30 14:51:19 -0400 |
commit | 9f9bb86ed919bcb6be32b6818ca232f071fe90f3 (patch) | |
tree | 05d97562eb53b7958d022eda02d3f6134850e0d9 /unit_trace | |
parent | c21dea9f97dd31ad8a915469edc01f44345a469e (diff) |
Added ability to specify units along with -t command-line option
Diffstat (limited to 'unit_trace')
-rw-r--r-- | unit_trace/viz/__init__.py | 4 | ||||
-rw-r--r-- | unit_trace/viz/util.py | 23 | ||||
-rw-r--r-- | unit_trace/viz/viewer.py | 8 |
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: | |||
11 | except ImportError: | 11 | except 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 | ||
18 | gobject.signal_new('set-scroll-adjustments', viewer.GraphArea, gobject.SIGNAL_RUN_FIRST, | 18 | gobject.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 | ||
66 | def 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 | |||
66 | def parse_unit(expr): | 89 | def 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: |