TimeToPic Inputfile format

Primitives summary

Event

Item that has start and stop. Show as bar on views.

Visualization by TimeToPic

45.7389179;event;start;Test channel
45.8827432;event;stop;Test channel

Named event

Item that has start and stop and comment. Show as bar on views.

Visualization by TimeToPic

12.003;namedevent;start;testchannel;Some message in start event\n
13.203;namedevent;stop;testchannel;\n

State

State machine. Shows different state bars on views.

Visualization by TimeToPic

12.003;state;running;testchannel\n
13.203;state;idle;testchannel\n

ValueABS

Value type. Shows value as graph.

Visualization by TimeToPic

2014/02/11 21:35:27.000;valueabs;7;VALUEABS_example

Msg

Message type. Show messaging between entities.

Currently supported on TimeToPic Grapher only.

2018/08/05 16:59:44.601;msg;obj[6421984];ExampleQtObject;TimerTimeOut

File format

Here are all supported file formats. After reading this, you might want to refer to Log Item Syntax for details on log item primitives.

TimeToPic will support 4 different time stamp formats:

  1. TimeToPic own notation (default and datetime).
  2. Windows WinDbg
  3. Windows DebugView
  4. Linux syslog

Log item format briefly: <timestamp>;<data1>;...;<dataN>.

Separator character is ";".

TimeToPic file format

This format is intended for debug use since timestamp resolution is very good. Time starts always from 0. Values are seconds.

Default format:

1.5;valueabs;7;VALUEABS_example
1.5;state;State #67;STATE_example
1.8002;namedevent;stop;NAMEDEVENT_example;End comment
2;event;start;EVENT_example
2.1;event;stop;EVENT_example

TimeToPic dateTime format

This format is for general log analysis since timestamp has date 'dimension'. Timestamp formatter is "yyyy/MM/dd hh:mm:ss.zzz".

2014/02/11 21:35:27.000;valueabs;7;VALUEABS_example
2014/02/11 2135:28.000;state;State #67;STATE_example
2014/02/11 21:35:28.150;namedevent;stop;NAMEDEVENT_example;End comment
2014/02/11 21:35:28.200;event;start;EVENT_example
2014/02/11 21:35:28.210;event;stop;EVENT_example

Android logcat

01-17 21:11:17.955 I/TimeToPic( 2759): ;valueabs;15.279999999999847;mFuel
01-17 21:11:17.955 I/TimeToPic( 2759): ;event;start;THRUST
01-17 21:11:17.955 I/TimeToPic( 2759): ;state;ON;THRUSTER

WinDbg

Tue Jul 10 13:50:56.103 2012 (UTC + 3:00): ;event;start;test1
Tue Jul 10 13:50:56.103 2012 (UTC + 3:00): ;event;start;MyMacroEvent
Tue Jul 10 13:50:56.103 2012 (UTC + 3:00): Freetext
Tue Jul 10 13:50:56.113 2012 (UTC + 3:00): ;valueabs;0;MyValue
Tue Jul 10 13:50:56.114 2012 (UTC + 3:00): ;event;stop;MyMacroEvent

Linux syslog

[ 0.296017] bio: create slab <bio-0> at 0
[ 0.296017] ;event;start;ACPI
[ 0.296017] ACPI: Added _OSI(Module Device)
[ 0.296017] ACPI: Added _OSI(Processor Device)
[ 0.296017] ACPI: Added _OSI(3.0 _SCP Extensions)

Log item primitives

This page lists log item syntax for native TimeToPic format. Other formats have slightly different syntax and differences are explained in Log Format section.

Log item - Event

Event can be used for visualizing activity that has start and finish time. This is the log item type you generally use when you want to see how your program acts. This is the number one tool for finding out where you program executes and for how long.

Syntax

timestamp;event;start/stop;channelname[CR]LF

e.g.

12.003;event;start;Example channel
13.203;event;stop;Example channel

Syntax explanation

timestamp

  • Timestamps in logs are in seconds e.g. '12.002'. Resolution can be anything from nanosecond to thousands of seconds.

start/stop

  • Either 'start' or 'stop'.

channelname

  • Name of channel. This has to be unique between log item types - e.g. when channel 'test channel' has been used to identify events it cannot be used to identify namedevent, state or valueabs channels.

[CR]LF

  • Has to contain line feed. Carriage return is optional.

Limitations

Timestamps in same channel must be in timely order.

Events may not be nested (see examples) If event length is zero, it is indicated with small box.

Timestamp valid range is 0-1000000 seconds.

Example

0;event;start;Example channel
1;event;stop;Example channel
45.7389179;event;start;Test channel
45.8827432;event;stop;Test channel

Invalid example

12.73;event;start;DoSomething
13.24;event;start;DoSomething
13.69;event;stop;DoSomething
15.94;event;stop;DoSomething

Log item - Named event

This log item is very similar to event. Only difference is that this allows user to add comments into event data. The only obvious downside compared to event is that this takes slightly more space and it takes more time to log this item. Use this in your functions and tasks when you want to gather information on e.g. function parameters.

Syntax

timestamp;namedevent;start/stop;channelname;message[CR]LF

e.g.

12.003;namedevent;start;testchannel;Some message in start event\n
13.203;namedevent;stop;testchannel;\n

Syntax explanation

timestamp

  • Timestamps in logs are in seconds e.g. '12.002'. Resolution can be anything from nanosecond to thousands of seconds.

start/stop

  • Either 'start' or 'stop'.

channelname

  • Name of channel. This has to be unique between log item types - e.g. when channel 'test channel' has been used to identify events it cannot be used to identify namedevent, state or valueabs channels.

message

  • Free text message. Use this in start message. Message is optional and it can be left out.

[CR]LF

  • Has to contain line feed. Carriage return is optional.

Limitations

Timestamps in same channel must be in timely order.

Events may not be nested (see examples) If event length is zero, it is indicated with small box.

Timestamp valid range is 0-1000000 seconds.

Example

0;namedevent;start;Example channel;Channel ok
1;namedevent;stop;Example channel
45.7389179;namedevent;start;Test channel;Everything still ok
45.8827432;namedevent;stop;Test channel

Example of invalid log (nested events):

12.73;namedevent;start;DoSomething;This is ok
13.24;namedevent;start;DoSomething;Nested is not ok
13.69;namedevent;stop;DoSomething
15.94;namedevent;stop;DoSomething

Log item - State

This log item is used to show state of the program / part of the program. Most common cases are:

  • Show state of a state machine
  • Show state of a worker thread
  • Show state of main program when it is starting up / configuring or shutting down
  • State is very handy in showing completely different things, such as showing contents of received messages (small messages).

Syntax

timestamp;state;stateMessage;channelname[CR]LF

e.g.

12.003;state;running;testchannel\n
13.203;state;idle;testchannel\n

Syntax explanation

timestamp

  • Timestamps in logs are in seconds e.g. '12.002'. Resolution can be anything from nanosecond to thousands of seconds.

stateMessage

  • Free text message of current state.

channelname

  • Name of channel. This has to be unique between log item types - e.g. when channel 'test channel' has been used to identify events it cannot be used to identify namedevent, state or valueabs channels.

[CR]LF

  • Has to contain line feed. Carriage return is optional.

Limitations

Timestamps in same channel must be in timely order.

Events may not be nested (see examples) If event length is zero, it is indicated with small box.

Timestamp valid range is 0-1000000 seconds.

Examples

0;state;running;Example channel
1;state;idle;Example channel
45.7389179;state;interrupt handling;Test channel
45.8827432;state;idle;Test channel

This log item is used to show state of the program / part of the program. Most common cases are:

  • Show state of a state machine
  • Show state of a worker thread
  • Show state of main program when it is starting up / configuring or shutting down
  • State is very handy in showing completely different things, such as showing contents of received messages (small messages).

Syntax

timestamp;state;stateMessage;channelname[CR]LF

e.g.

12.003;state;running;testchannel\n
13.203;state;idle;testchannel\n

Syntax explanation

timestamp

  • Timestamps in logs are in seconds e.g. '12.002'. Resolution can be anything from nanosecond to thousands of seconds.

stateMessage

  • Free text message of current state.

channelname

  • Name of channel. This has to be unique between log item types - e.g. when channel 'test channel' has been used to identify events it cannot be used to identify namedevent, state or valueabs channels.

[CR]LF

  • Has to contain line feed. Carriage return is optional.

Limitations

Timestamps in same channel must be in timely order.

Events may not be nested (see examples) If event length is zero, it is indicated with small box.

Timestamp valid range is 0-1000000 seconds.

Examples

0;state;running;Example channel
1;state;idle;Example channel
45.7389179;state;interrupt handling;Test channel
45.8827432;state;idle;Test channel

Log item - Value

This log item is used for visualizing any integer/float value. You can display values as is, or do some math functionality such as a sum. Some examples where to use value:

  • Show power usage / battery capacity of an embedded gadget
  • Show processor/memory usage
  • Show queue lengths, stack sizes
  • Show sensor value

Syntax

timestamp;valueabs;value;channelname[CR]LF

e.g.

12.003;valueabs;5;testchannel\n
13.203;valueabs;12;testchannel\n

Syntax explanation

timestamp

  • Timestamps in logs are in seconds e.g. '12.002'. Resolution can be anything from nanosecond to thousands of seconds.

value

  • Integer or float value.

channelname

  • Name of channel. This has to be unique between log item types - e.g. when channel 'test channel' has been used to identify events it cannot be used to identify namedevent, state or valueabs channels.

[CR]LF

  • Has to contain line feed. Carriage return is optional.

Limitations

Timestamps in same channel must be in timely order.

Events may not be nested (see examples) If event length is zero, it is indicated with small box.

Timestamp valid range is 0-1000000 seconds.

Example

0;valueabs;0;Example channel
1;valueabs;10;Example channel
45.7389179;valueabs;12.54;Test channel
45.8827432;valueabs;-123.0002;Test channel

Log item - Message

This log item is used for visualizing communication between items simply by <source> - <destination> & <message name>

  • Show comms between objects

Syntax

timestamp;msg;<source>;<destination>;<message name>

e.g.

12.002;msg;obj[6421984];ExampleQtObject;TimerTimeOut

Syntax explanation

timestamp

  • Timestamps in logs are in seconds e.g. '12.002'. Resolution can be anything from nanosecond to thousands of seconds.

source

  • Name of item who is sending message

destination

  • Name of item who is receiving message. It is possible to send message to self.

message name

  • Message name to be sent.

[CR]LF

  • Has to contain line feed. Carriage return is optional.

Limitations

Timestamps in same channel must be in timely order.

Events may not be nested (see examples) If event length is zero, it is indicated with small box.

Timestamp valid range is 0-1000000 seconds.

Example

2018/08/05 16:37:13.557;msg;QML Mouse on box1;QML Mouse on box3;mouse transition
2018/08/05 16:37:13.713;msg;QML Mouse on box3;QML Mouse on box1;mouse transition
2018/08/05 16:37:13.863;msg;QML Mouse on box1;QML Mouse on box3;mouse transition