A Python tool to transform small traces, e.g., from SDF3 or CMLib into visually attractive Gantt charts or vector charts.
The cmtrace package can de cloned from GitHub
In a proper shell environment type:
python3 -m pip install cmtraceUse SDF3 to make a trace of the graph. E.g., for an FSM-SADF graph fsmsadfgraph.xml:
sdf3analyze-fsmsadf --algo trace --graph fsmsadfgraph.xml --seq a,b,b,a --traceFormat XML --traceFile trace.xml This produces a trace file trace.xml. With this trace file, make an SVG graph as follows:
cmtrace trace.xml gantt.svgThis uses default settings. Settings can be configured in a YAML file and used as follows.
cmtrace -s settings.yaml trace.xml gantt.svgMore information about the settings can be found below.
TODO: for a vector trace?
graphics: # width of the strokes of the firing rectangles firing-stroke-width: 0 # firing-color-mode is one of the following: by-actor, by-scenario, by-token, by-iteration firing-color-mode: by-actor # alternate light and darker versions of the color for subsequent firings, especially useful when stroke width is 0 alternate-color: true layout: trace-length: 12 font-size: 10 trace-width: 2.5 horizontal-scale: 5 unit: 1.0 # define how the numbers at the ticks on the horizontal axis are formatted in python format notation time-stamp-format: ":.2f" event-radius: 0.35 structure: # rows define the rows shown in the Gantt chart, referring to actors or actor groups defined in structure:groups rows: [A, B, C] # define groups of actors that can be referred on the row layout and in the color map # format: # RowName: [ list of actor names ] # actor names are fully qualified with their scenario: scenario@actor # as a special case, an actor name in the list can be replaced by a list of two lists, a list of scenarios and a list of actor names # in that case the full Cartesian product, all combinations of scenarios and actors are included (see the examples below) groups: A: [ a@A, b@A ] B: [ [ [a, b], [B] ] ] C: [ [ [a, b], [C] ] ] colors: palette: [ [255, 255, 0], [0, 255, 255], [255, 0, 255], [255, 0, 0], [0, 255, 0], [0, 0, 255] ] # map individual actor names, or groups of actors as defined in the structure section to color indices color-map: { A: 0, B: 1, C: 2 } # # map scenario names to color indices, used in by-scenario color mapping # color-map: { # ss: 0, # sl: 1, # ls: 2, # ll: 3, # m: 4 # } The package is licensed under the MIT license.