impulse 2.1

U010-Logging and Tracing 5 - Understanding Logs

Attach, View Anaylze and Solve!

Large logs are often a big mess. It is usually not easy to understand the relationship and order of the log entries of interest and to get rid of the large mass of non-relevant information. Besides the impulse viewer, which displays logs and traces (with other signals) on a domain axis, there are Sample Tables and Sample Inspectors that help to understand the chaos.

Sample Tables

The Sample Tables shows the different events within your signals as a table. This table displays the index and domain position (e.g., time) on the left-hand side and the value (plus optional value specific columns) of it on the right-hand side. When you choose to display multiple signals, the table additionally shows their names.

  • Domain: Shows the domain position of the samples.
  • Value: Shows the textual representation value of the samples.
  • Signal: Shows the signal/plot name if multiple signals are shown.
  • [Member]: Shows the members of struct values or arrays.
  • Labels: Show the attached labels of a sample.
  • Relation: Shows the attached relation of the selected sample.

You control the Value Table with the toolbar in the upper right-hand corner of it. There you find:

  • Synchronize Input Signals: If checked, any tree selection change of the active viewer will change the displayed signals (You may select multiple signals/plots). To freeze the Sample Tables input signals, un-check this field. 
  • Synchronize Position: With this button, you can synchronize the cursor of the viewer/editor with the table, which means the table displays the samples you choose with the cursor. This also works if you choose a sample within the table. The cursor will automatically change its position.
  • Continuoulsly Refresh Signal Data: The sample data of the displayed signal may change over time (on-line display or modified plot settings). With this flag, the viewer will continuously check for changes and update its data.

On the configuration page you can configure all columns and choose between multiple preference sets.

Input Signal

The input signal is synchronized with the selection of the active viewer.

Position

The selected sample is synchronized with the cursor position of the active viewer.

Streams

Signal data in the case of streams (online data) are continuously refreshed.

Filter

Filters (text pattern or a value range) can be applied to all columns.

Combine

Multiple signals can be combined in one table.

Configurable Columns

All columns are configurable (style, alignment, format and visibility).

To open a Sample Table, open the Window menu in the upper left tool-bar, then choose Show View->Other, and within the window that opens you select Impulse and select the Sample Table.

To show signals in this table, just select one or more signal in the viewer (assumes the default setting of the table). Instead of using selection, you can use the Show In context menu of the viewer or Navigator. This will automatically freeze the input.

You can display and use up to 4 tables. You can select the samples in the table and copy&paste to get CSV.

H210 View - How to add a cursor

Initially, one cursor is part of a new view.

  • To add more, press the "Add new Cursor" button in the toolbar or use the context menu of the Axis or Cursor Details.
  • Change color and/or name in the opened dialogue.
  • To get rid of a cursor, use the context menu of the cursor (right click on the grip), or the context menu of the axis to delete all cursors.
H211 View - How to switch between cursors

If you have more than one cursor, you may need to switch between them. You can activate a cursor or simply make the cursor visible (by changing the axis position).

  • In the context menu of a cursor, you find the commands:Activate previous/next/Cursor 0--3 to activate another cursor and make it visible (go to its location)
  • and Show active/Cursor 0--3 to only make a cursor visible (go to its location).
  • Single-click the cursors in Cursor Details to activate the cursor;
  • Double-click the cursors in Cursor Details to aktivate and make the cursor visible (go to its location).
  • It is even easier to use the keyboard shortcuts (see 18 Keyboard Shortcuts).
H212 View - How to move in time (or other domain)

You can move the the axis and cursor by:

  • Use the horizontal scrollbar.
  • Left click on the axis and move.
  • Use the mouse wheel plus the SHIFT key.
  • Left click on the wave area and move (this moves the active cursor).
H213 View - How to make a domain range visible

You can make a given range in time (or frequency,..) visible by:

  • To zoom in/out relative to the active cursor, use the buttons in the toolbar or use the keyboard (+,-).
  • To zoom in/out relative to the mouse, use the mouse wheel plus the CONTROL key.
  • To zoom fit, use the Zoom fit command in the toolbar.
  • Left click on the wave area (with the CONTROL key) and select the area that you want to zoom in or out. Release the mouse to zoom in/out.

Screen Cast: Logging and Tracing 5 - Understanding Logs

Synchronize multiple tables

One great feature of impulse is that you can sync the selection of the viewer and the value tables. You can disable sync in the tables tool-bar (Sync Position).

This means, if you move or change the active cursor, the tables will show the valid samples selected at that time. If you change the selection, the viewer and the other tables will change their selections too.

Search and filter

Beside the viewer, that allows you to define complex search expressions, the Samples Tables allow to filter and search for samples too - in a more easy way.

To limit the number of samples in the table, just type in an expression into the filter field. impulse will just show those samples that match the expression.

To find or traverse over certain samples, use the find dialogue. It looks like and behaves like a normal text find dialogue. You can search in any column.

You have the following options to set a filter:

  1. Filter signals using a text fragment
    • abc: Show signal if text contains 'abc'
  2. Filter signals using a regular expression - Indicate with any of: '[](){}|?*^$.'
    • ab[0-9]n? : Show signal if text contains 'abc0n', ....
  3. Filter signals using a numeric expression
    • 0.4 < 2.0: Show signal if value matches range - use float or integer numbers (e.g. 0.1; 12 ; 0x300)
    • < 0x400: ... if value less than argument
    • <=-4: ... if value less or equal than argument
    • > 2.7: ... if value greater than argument
    • >= 0.04: ... if value greater or equal than argument
    • == 1000: ... if value equals argument

Sample Inspector

The Sample Inspection window lets you inspect the details of a sample. If you've opened the sample editor, the window has additional controls that let's you edit the actual samples.
The toolbar options

  • Synchronize Input Signals: If checked, any tree selection change of the active viewer will change the displayed signals.
  • Synchronize Position: With this button, you can synchronize the cursor of the viewer/editor with the table.
  • Continuoulsly Refresh Signal Data: The sample data of the displayed signal may change over time (on-line display or modified plot settings). With this flag, the viewer will continuously check for changes and update its data.

are the same as in the Sample Table.  
In the head line (below the main toolbar) you find the the index of the sample displayed. On the right-hand side you see some button to iterate forward and back.
Below table shows the content of the selected sample:

  • Format: Show the value formatted in all selected types.
  • Info: Show the the selected sample information.
  • Member: Shows the members of struct values or arrays.
  • Labels: Show the attached labels of a sample.
  • Relation: Shows the attached relation of the selected sample.

At the bottom there are additional fields:

  • Details: Shows the content of a selected table row.
  • Bytes: Displays the byte representation of a value.
  • Image: If the value contains a compressed image, it will be shown in that field.

On the configuration page you can configure all fields and choose between multiple preference sets.

Filter

Filters can be applied to all columns.

Combine

Multiple signals can be combined along the index order.

Configurable Formats

A value representation can be configured for all types and members.

Input Signal

The input signal is synchronized with the selection of the active viewer.

Position

The selected sample is synchronized with the cursor position of the active viewer.

Streams

Signal data in the case of streams (online data) are continuously refreshed.

Complex Searching

The Find dialogue of the Viewer helps you to find signal patterns. It behaves like the standard find dialogue of the text editors. You type in a find expression, select if you want to search forwards or reverse, with or without wrapping and then click find. The active cursor will be placed at the found position.

To start searching, select the signals to search and press Ctrl-f. The Find dialogue pops up with a predefined expression. This expression contains all selected signals and compares them with the values at the active cursor position.

Modify the expression to your needs and press find. The active cursor will be placed at the found position. Click Reverse to do reverse searching, or Wrap to move from the end of the signal to its beginning. 

If the expression has an error, you will get a message in the status log below.

Text Synchronisation and Marker

If the log data is read from a text file using the pattern log reader, the table will offer the possibility to sync with the text log file. If you select Show-in Text Editor, impulse will open the file (if not already opened) and set the cursor to the sample position.

Last, not least, Markers can help to remember sample and event locations. Use the Plot context menu (Insert ...) to add markers at interesting positions. If you save the record into a file resource, the eclipse Bookmark and Task View can be used to open the file and find the defined marker locations.

Next Tutorial in thes series

U011 Logging and Tracing 6 - Creating statistics and charts

The output of this last article of the series Logging and Tracing shall be a nice chart with more or less important information. Before i will show you the Signal Table and its tabular statistics...
toem

technical software and tooling

Company

Contact Us

This email address is being protected from spambots. You need JavaScript enabled to view it.