From Developer Documents
Jump to navigation Jump to search

There are two plug-ins to Simantics charts:

  • org.simantics.charts
  • org.simantics.trend


Charts is the UI plugin that ties trends to the Simantics Workbench environment. It contributes an editor part, preferences, DnD operations, context menu actions, tool bar buttons, ontology, etc to Simantics Workbench. The main class there is its EditorPart contribution TimeSeriesEditor.


org.simantics.trend is a visualization library that draws items as time-series lines. It supports lines and binary items on the same chart. It is the only current chart implementation. The code in this plugin is environment independent, it can be ran as POJO, EditorPart, ViewPart, or say, Java Applet. The trend visualizations are based on AWT/Swing.

Trend is configured with TrendSpec class. It describes how and with what items the trend is drawn. The info can be changed on the run.

The data source for a trend is one HistoryManager, an interface from org.simantics.history. History manager consists of groups and items. There is metadata associated with each item, such as, id, variableId (the item in datasource), format, deadband, interval, gain, bias, groupId, etc.

In typical simantics case, a variable is recorded with different sampling intervals, see TrendSamplingFormats (all samples, 100ms, 1s, 10s, 60s). The trend detects all available history items for a recorded variable, and selects the most suitable item to draw from.

Format-field determines the sampling format on the disc. All numeric types are supported: integer, float, double, etc. time and value fields are mandatory. If endTime exists the sample is interpreted as "value band" instead of a single sample. If quality field exists, the trend can have empty regions. min and max fields provide value deviation when the trend is zoomed out.

The trends can utilize these fields from a sample format:

  Describes the format of the packed sample. The sample must be a record.
  The record must have any combination of the following named fields.
  The field types must one of: byte, integer, long, float, double.
  time, endTime, value - are mandatory fields.
  time      -  Region start time, the time of the 1st source sample included into the band 
  endTime   -  Region end time, the time of the last source sample included into the band
  value     -  First value in the band
  lastValue -  Last value in the band
  avg       -  Average value of all included samples
  median    -  Median value of all samples in the band
  min       -  Lowest value in the band
  max       -  Highest value in the band
  quality   -  0 = Good, -1 = No value
  count     -  The number of included samples in the band