Online documentation covers basic concepts of tooling. The installer package contains more detailed guides. 

Idea


In short this is a log visualization software. If you generate ascii-format logs in one of supported file formats, give them to TimeToPic and it shows you a visual presentation of that log. It is much faster to understand from visual or from picture.

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


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