XR08 recJs Example: Gantt and Event colors
Outline
This recJs example script shows colored events, gantt plots including labels and relations.
Platforms |
|
|||
Requirements |
|
|||
Parameters: |
|
|||
Content of example record files |
|
Output
Usage
- Copy the script code onto a file resource with "recJs" ending or use the impulse record examples.
- Open the impulse viewer with the file resource (e.g. double-click the file in the eclipse explorer).
R003 recJs Reader 10 Signal Script Script Examples impulse JDK Open JavaDoc
Script
The script creates several event signals with multiple colors.
//-recjs (keep this line) // generator : Record generator (de.toem.impulse.samples.ISingleDomainRecordGenerator) // file : File object of the executed recJs file (java.io.File) // p0..p9 : Parameters from the reader configuration (java.lang.String) // progress : Progress control (de.toem.impulse.cells.ports.IPortProgress) // console : Console output (de.toem.impulse.scripting.IScriptConsole) // Init the record generator.initRecord("Example Record",TimeBase.ns); // Create a record with scopes and some signals var signals = generator.addScope(null, "External Signals"); var int1 = generator.addSignal(signals, "Sin", "", ProcessType.Discrete, SignalType.Integer, SignalDescriptor.DEFAULT); var int2 = generator.addSignal(signals, "Load1", "", ProcessType.Discrete, SignalType.Integer, SignalDescriptor.DEFAULT); var int3 = generator.addSignal(signals, "Load2", "", ProcessType.Discrete, SignalType.Integer, SignalDescriptor.DEFAULT); var core1 = generator.addScope(null, "Core 1"); var task_1_1 = generator.addSignal(core1, "Task 1", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.EventGantt); var task_1_2 = generator.addSignal(core1, "Task 2", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.EventGantt); var task_1_3 = generator.addSignal(core1, "Automatic colors", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.EventGantt); var task_1_4 = generator.addSignal(core1, "Fixed Colors", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.EventGantt); var task_1_5 = generator.addSignal(core1, "Shade Colors", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.EventGantt); var task_1_6 = generator.addSignal(core1, "Automatic colors event", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.DEFAULT); var task_1_7 = generator.addSignal(core1, "Fixed Colors event", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.DEFAULT); var task_1_8 = generator.addSignal(core1, "Shade Colors event", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.DEFAULT); var task_1_9 = generator.addSignal(core1, "Task with Labels", "", ProcessType.Discrete, SignalType.Event, SignalDescriptor.EventGantt); var task_1_10 = generator.addSignal(core1, "User format", "", ProcessType.Discrete, SignalType.Float, new SignalDescriptor(SignalDescriptor.CONTENT_DEFAULT,ISample.FORMAT_DECIMAL_F1)); // We start at 0 ns var t = 0; // 0 ns generator.open(t); // get the writers var integerWriter /*:IIntegerSamplesWriter:*/ = generator.getWriter(int1); // And continue until 1000 ns integerWriter.writeInt(t, false, 0); t=14000; integerWriter.writeInt(t, false, 0); for (; t < 94000; t ++) { // write time as integer integerWriter.writeInt(t, false, (100 * Math.sin(t/1000.0))); } integerWriter.writeInt(t, false, 0); integerWriter.writeInt(100000, false, 0); // Add marker var marker /*:Marker:*/ = new Marker(Marker.BOOKMARK,"My Bookmark",""); marker.setLocation(new Link("@@@Time='40us'")); marker.setRelation(new Link(int2.getPath()+"@@@Time='80us'")); integerWriter.addMarker(marker); // task 1 var eventWriter /*:IEventSamplesWriter:*/= generator.getWriter(task_1_1); eventWriter.write(13000, false,"Running"); eventWriter.write(24000, false,"Waiting"); eventWriter.write(25000, false); eventWriter.attachRelation(task_1_3.getPath(), "", 0); eventWriter.write(35000, false,"Running"); eventWriter.write(65000, false); eventWriter.attachRelation(task_1_3.getPath(), "", 0); eventWriter.write(73000, false,"Running"); eventWriter.write(80000, false,"Storing"); eventWriter.write(84000, false,"Waiting"); eventWriter.write(88000, false,"Running"); eventWriter.write(06000, false); // task 2 eventWriter = generator.getWriter(task_1_2); eventWriter.write(10000, false,"A"); eventWriter.write(14000, false,"Comb"); eventWriter.attachRelation(int1.getPath(), "Enable", 0); eventWriter.write(17000, false,"X1"); eventWriter.write(20000, false); eventWriter.attachRelation(task_1_4.getPath(), "", 0); eventWriter.write(30000, false,"A"); eventWriter.write(34000, false,"Comb"); eventWriter.write(37000, false,"X1"); eventWriter.write(40000, false); eventWriter.attachRelation(task_1_4.getPath(), "", 0); eventWriter.write(50000, false,"A"); eventWriter.write(54000, false,"Comb"); eventWriter.write(57000, false,"X1"); eventWriter.write(60000, false); eventWriter.attachRelation(task_1_4.getPath(), "", 0); eventWriter.write(70000, false,"A"); eventWriter.write(74000, false,"Comb"); eventWriter.write(77000, false,"X1"); eventWriter.write(80000, false); eventWriter.attachRelation(task_1_4.getPath(), "", 0); eventWriter.write(90000, false,"A"); eventWriter.write(94000, false,"Comb"); eventWriter.attachRelation(int1.getPath(), "Disable", 0); eventWriter.write(97000, false,"X1"); eventWriter.write(100000, false); var n; // COLOR areas // cid = id&0xffff // for cid = 0x0000 - 0xbfff : 16 automatic colors // for cid = 0xc000 - 0xefff : 32 fixed colors // for cid = 0xf000 - 0xffff : 8 background colors // GANTT eventWriter = generator.getWriter(task_1_3); for (n=0;n<32;n++) eventWriter.write(n*1000*3, false,n); eventWriter.write(32*1000, false,0); eventWriter = generator.getWriter(task_1_4); for (n=0;n<32;n++) eventWriter.write(n*1000*3, false,0xc000+n); eventWriter.write(32*1000, false,0); eventWriter = generator.getWriter(task_1_5); for (n=0;n<32;n++) eventWriter.write(n*1000*3, false,0xf000+n); eventWriter.write(32*1000, false,0); // EVENTS eventWriter = generator.getWriter(task_1_6); for (n=0;n<32;n++) eventWriter.write(n*1000*3, false,n); eventWriter.write(32*1000, false,0); eventWriter = generator.getWriter(task_1_7); for (n=0;n<32;n++) eventWriter.write(n*1000*3, false,0xc000+n); eventWriter.write(32*1000, false,0); eventWriter = generator.getWriter(task_1_8); for (n=0;n<32;n++) eventWriter.write(n*1000*3, false,0xf000+n); eventWriter.write(32*1000, false,0); // LABELS and ASSOCIATIONS var eventWriter /*:IEventSamplesWriter:*/= generator.getWriter(task_1_9); eventWriter.write(13000, false,"Running"); eventWriter.write(24000, false,"Waiting"); eventWriter.write(25000, false); eventWriter.attachRelation(task_1_3.getPath(), "test/ff0000/line/no", 10000); eventWriter.attachRelation(task_1_3.getPath(), "test/00ff00/cubic/normal", 20000); eventWriter.attachRelation(task_1_3.getPath(), "test/ff00ff/line/normal", 30000); eventWriter.attachRelation(task_1_3.getPath(), "test/ffff00/cubic/no", 40000); eventWriter.attachLabel("hi label/ff0000/add",0,0); eventWriter.write(35000, false,"Running"); eventWriter.write(65000, false); eventWriter.attachRelation(task_1_3.getPath(), "", 0); eventWriter.write(73000, false,"Running"); eventWriter.write(80000, false,"Storing"); eventWriter.write(84000, false,"Waiting"); eventWriter.write(88000, false,"Running"); eventWriter.attachLabel("hi label/00ff00/star",0,0); eventWriter.write(06000, false); eventWriter = generator.getWriter(task_1_10); for (n=0;n<6;n++) eventWriter.write(n*1000*24, false,10.234*n); // And close finally generator.close(100000);