summaryrefslogtreecommitdiffstats
path: root/unit_trace/visualizer.py
blob: 6e14b185afa5e933e242bec885d71bb6d00495d8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/python

"""Runs the visualizer."""

import convert
import reader
import viz

import gtk

TIME_PER_MAJ = 10000000
MAX_NUM_SLOTS = 10000

def request_renderer_change(widget, file_list, params):
    try:      
        stream = reader.trace_reader.trace_reader(file_list)
        #stream = reader.sanitizer.sanitizer(stream)
        #stream = reader.gedf_test.gedf_test(stream)
        sched = viz.convert.convert_trace_to_schedule(stream)
    except reader.trace_reader.InvalidRecordError, e:
        dialog = gtk.MessageDialog(widget, gtk.DIALOG_DESTROY_WITH_PARENT,
                 gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, str(e))
        dialog.run()
        dialog.destroy()
        return
        
    sched.scan(TIME_PER_MAJ, MAX_NUM_SLOTS)
    
    task_renderer = viz.renderer.Renderer(sched)
    task_renderer.prepare_task_graph(attrs=viz.format.GraphFormat(time_per_maj=TIME_PER_MAJ))
    cpu_renderer = viz.renderer.Renderer(sched)
    cpu_renderer.prepare_cpu_graph(attrs=viz.format.GraphFormat(time_per_maj=TIME_PER_MAJ))
    widget.set_renderers({'Tasks' : task_renderer, 'CPUs' : cpu_renderer})
    
if __name__ == '__main__':   
    window = viz.viewer.MainWindow(request_renderer_change)
    gtk.main()