Tasks #880

Implement timeline-ish formatting style

Added by J. Moringen over 12 years ago. Updated about 12 years ago.

Status:ResolvedStart date:02/15/2012
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:Common Lisp Tools
Target version:rsb-0.7

Description

It would be cool to have a formatting style producing a timeline-like view similar to the following:

Scope                           ↓now      ↓-1 s     ↓-2 s     ↓-3 s     ↓-4 s     
/audio/card0/                  |━                                                         |
/nao/audio/all/                |◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾ ◾◾  ◾ |
/nao/odometry/                 |⋯╌⋯╌⋯⋯╌⋯╌⋯╌⋯╌⋯⋯╌⋯╌⋯╌⋯╌⋯⋯╌⋯╌⋯╌⋯╌⋯╌⋯╌⋯╌⋯╌⋯⋯╌⋯╌·╌╌⋯╌⋯╌⋯╌⋯╌⋯⋯╌|
/nao/proprioception/           |···· ··· ··· ······ ····· ····· ····· ····· ····· ····· ··|
/nao/system/battery/           |                                   ·                      |
/nao/system/cpumemory/         | ·     ·     ·    ·     ·     ·     ·     ·     ·         |
/nao/system/modules/           | ·           ·          ·           ·           ·         |
/nao/system/temperatures/      |         ·          ·           ·           ·             |
/nao/vision/top/               |╍╍◾╍◾∞◾◾╍◾╍◾╍∞◾╍◾╍◾╍◾╍╍◾╍╍◾╍╍╍◾◾╍◾╍◾╍◾╍╍◾╍◾◾╍◾╍◾∞◾╍╍◾╍╍◾╍╍|

Associated revisions

Revision 1cefb7a5
Added by J. Moringen over 12 years ago

Removed support for :self in formatting/delegating-mixin.lisp
refs #873, #880
  • formatting/protocol.lisp (delegate): new generic function; delegate
    to a sub-style of a formatting style
  • formatting/delegating-mixin.lisp (delegating-mixin): the sub-styles
    initarg is no longer required
    (delegating-mixin::sub-styles): added initarg
    (shared-initialize :after delegating-mixin t): removed; special
    initialization is no longer required
    (setf style-sub-styles :around sequence delegating-mixin): removed;
    special setter behavior is no longer required
    (delegate t delegating-mixin t): new method; delegate to sub-style
    (format-event t delegating-mixin t): call `delegate' method
  • formatting/event-style-compact.lisp (define-compact-style): define a
    method on `format-header'
  • formatting/package.lisp (package :rsb.formatting): added exported
    symbol delegate

Revision 8d5ed391
Added by J. Moringen over 12 years ago

Added format-header in formatting/protocol.lisp
refs #873, #880
  • formatting/protocol.lisp (format-header): new generic function;
    format a header for a thing onto a formatting target
  • formatting/columns-mixin.lisp (format-header columns-mixin t): use
    `format-header' for individual columns
  • formatting/columns.lisp (basic-column): new class; superclass for
    column classes
    (format-header basic-column t): new method; format column name as
    header
    (define-simple-column): add superclass `basic-column'
  • formatting/quantity-column.lisp (format-header quantity-column t):
    new method; print column name and, later, unit, if available
  • formatting/package.lisp (package rsb.formatting): added exported
    symbols format-header and basic-column

Revision 4ef5150a
Added by J. Moringen over 12 years ago

Added grouping-mixin in formatting/grouping-mixin.lisp
refs #873, #880
  • formatting/grouping-mixin.lisp: new file; contains
    `grouping-mixin' mixin class
  • formatting/protocol.lisp (make-sub-style-entry): new generic
    function; create a sub-style entry for a style
  • formatting/package.lisp (package rsb.formatting): added exported
    symbols make-sub-style-entry, grouping-mixin, style-key and
    style-test
  • cl-rsb-formatting.asd (system cl-rsb-formatting): added file
    formatting/grouping-mixin.lisp

Revision 495cf5de
Added by J. Moringen over 12 years ago

Added class column-constant in formatting/columns.lisp
refs #873, #880
  • formatting/columns.lisp (column-constant): new class; emit constant
    value
    (format-event t column-constant t): new method; emit the value
  • formatting/package.lisp (package rsb.formatting): added exported
    symbols column-constant, column-value and column-formatter

Revision 327f4e8c
Added by J. Moringen over 12 years ago

Updated initarg blacklist in formatting/help.lisp
refs #873, #880
  • formatting/help.lisp (make-style-help-string): added initargs
    sort-predicate and sort-key to blacklist

Revision 51cca974
Added by J. Moringen over 12 years ago

Improved sub-style-for in formatting/sub-style-grouping-mixin.lisp
refs #873, #880
  • formatting/sub-style-grouping-mixin.lisp
    (sub-style-for sub-style-grouping-mixin t): after adding the
    sub-style, retry the next method instead of initiating a new call to
    `sub-style-for'

Revision 3bf01fdd
Added by J. Moringen about 12 years ago

Added protocol and mixin in formatting/temporal-bounds-mixin.lisp
refs #880
  • formatting/types.lisp (timestamp/unix/nsec): new type; used by
    temporal bounds protocol
    (time-spec/variable): likewise
    (time-spec/operator): likewise
    (time-spec): likewise
    (time-spec-p): new function; helper for type `time-spec'
    (bounds-spec): new type; used by temporal bounds protocol
  • formatting/protocol.lisp (lower-bound): new generic function; part
    of temporal bounds protocol
    (setf lower-bound): likewise
    (upper-bound): likewise
    (setf upper-bounds): likewise
    (bounds): likewise
    (bounds/expanded): likewise
    (range/expanded): likewise
  • formatting/temporal-bounds-mixin.lisp: new file; contains
    `temporal-bounds-mixin' mixin class
  • formatting/package.lisp (package rsb.formatting): added exported
    symbols timestamp/unix/nsec, time-spec, bounds-spec, lower-bound,
    upper-bound, bounds, bounds/expanded, range/expanded and
    temporal-bounds-mixin
  • cl-rsb-formatting.asd (system cl-rsb-formatting): added file
    formatting/temporal-bounds-mixin.lisp

Revision 8996123f
Added by J. Moringen about 12 years ago

Added collects? protocol function in formatting/protocol.lisp
refs #880
  • formatting/protocol.lisp (collects?): new generic function;
    determine whether a things collects data or formats events
    immediately
  • formatting/periodic-printing-mixin.lisp
    (collects? periodic-printing-mixin): new method; indicate that
    instances collect events before producing output
  • formatting/quantity-column.lisp (collects? quantity-column):
    likewise
    (format-event :around t quantity-column t): new method; delegate
    non-trigger events to `update!'
    (format-event t quantity-column t): new method; required for
    dispatch; should not get called
  • formatting/event-style-statistics.lisp
    (statistics-columns-mixin::quantities): removed; no longer needed
    for dispatching
    (setf style-columns :after t statistics-columns-mixin): likewise
    (format-event :around t statistics-columns-mixin t): use `collects?'
    and `format-event' for dispatching
  • formatting/package.lisp (package rsb.formatting): added exported
    symbol collects?

Revision 38882677
Added by J. Moringen about 12 years ago

Added timeline stuff in formatting/{,event-style-}timeline.lisp
fixes #880
  • formatting/util.lisp (timestamp->unix/nsecs): new function; utility
    function
  • formatting/timeline.lisp: new file; contains a timeline column
  • formatting/event-style-timeline.lisp: new file; contains two
    timeline-based event formatting styles
  • cl-rsb-formatting.asd (system cl-rsb-formatting): added file
    formatting/timeline.lisp
    (system connection cl-rsb-formatting-and-cl-rsb-stats): added file
    formatting/event-style-monitor.lisp
  • CMakeLists.txt: added test cases for timeline styles

Revision e8943081
Added by J. Moringen about 12 years ago

Fixed deps of formatting/timeline.lisp in cl-rsb-formatting.asd
refs #880
  • cl-rsb-formatting.asd (system cl-rsb-formatting): removed file
    formatting/timeline.lisp
    (system connection cl-rsb-formatting-and-cl-rsb-stats): added file
    formatting/timeline.lisp

History

#1 Updated by J. Wienke over 12 years ago

Actually we have exactly this as a python gui tool ;)

#3 Updated by J. Moringen over 12 years ago

Johannes Wienke wrote:

RSB Event Time Visualization

Yes, I know that project. Writing "It would be cool" is just my kind of humor.

Seriously though:
  • The graphical event visualization has rather heavy dependencies (in my opinion)
  • It is inconvenient to obtain another tool in order to inspect a system (in my opinion)
  • In my tests, the graphical event visualization died under heavy load and produced quite some load itself
  • In my tests, the graphical event visualization died on unexpected payload types
  • The described formatting style could be modularly integrated into other styles
    (like the column-based statistics style or the scope monitor scope)

#4 Updated by J. Wienke over 12 years ago

Sure, bugs are expected. This is a very first version and phillip will continue to work on it when he's back from holidays.

Apart from the dependencies, I am sure there are more visualization and interaction possibilities with a graphical tool. But these are not implemented right now.

#5 Updated by J. Moringen over 12 years ago

  • Target version set to rsb-0.7

#6 Updated by J. Moringen over 12 years ago

  • % Done changed from 50 to 80

#7 Updated by J. Moringen about 12 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 80 to 100

Applied in changeset r3537.

Also available in: Atom PDF